Received: by 2002:a05:6358:16cc:b0:ea:6187:17c9 with SMTP id r12csp1753463rwl; Thu, 5 Jan 2023 19:29:36 -0800 (PST) X-Google-Smtp-Source: AMrXdXvriqNxi/CWMQ6S1SqOnxGyryfKF8A+Ft5br7lOM4OcfD2uQDeCIl4LDA6qT5J2elJ7qqTi X-Received: by 2002:a17:906:1c47:b0:7e9:db3d:6c60 with SMTP id l7-20020a1709061c4700b007e9db3d6c60mr43205896ejg.2.1672975775913; Thu, 05 Jan 2023 19:29:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672975775; cv=none; d=google.com; s=arc-20160816; b=wycDV7EO4rA1OW98n1Jw7ShcbByYMHjbcMtqqjnvNkKX72JCnDxSLinUXF1sYTQQtm cvnCvReXbGLMvjUhEliHXlbZsOAaEaowj0bABmt37EpxWUAE/21C7MgRst5HekWRCVGJ V2bIw+KylEXoY4iEJAgpH42h1/G+tL3dkqdYSWSkPBi0JFZnytIe2aKccWRd+BECLy/4 ki5ppwcxhyPNtyPRUvH87/4zaT4Rpcma4BHa7jNr4Ttew6fV8LDYRPoujrQ+4GnaSqP7 59mAC5kdlY5UyWss8vrlivNBb3r+2vp0unH8K7B+4aPfyvDiRcsoB5wmv577AP+pqjo+ 3Krg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:reply-to:references:in-reply-to:subject:to:from :mime-version:date:message-id:dkim-signature; bh=t1m4b98zZIOE/FlpkSdQxXMqeGSS8Lt/ObWHZoaJEFc=; b=E8MRUd6RF2OxGIlLiTNjdIlPxR36P63cik4TbC0U7LrU4m30x5Nk/J0iMoSJ0BrSFL bs1+sn9eVCOdt2NOp1oPi5QuFnC1ncVJePNC4Jxmr+qps0WIr8JblNxeaeeHcnlZ6+GE LfOQJgXzCVDsZh/E2rkhzgQyEdMSBpNfHjywgtQMBmwNEmGicSj9+imfbAz+BJrTL7kE GC0f6DYC0tixOG5VzO0Wpw982HUOMmxdhCTCeEzZ7/LUN4XKqV4RaZCYZnWrwVfX2ErH kIdrL28iCPsdmohHt4whdpNHLtovnz8ChyTbji/VsYCZBuL8EWgcjh/iZh2a3PI8VVRE xlLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=NCwEFx4t; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o13-20020a17090611cd00b007c16b3feca1si31462420eja.903.2023.01.05.19.29.01; Thu, 05 Jan 2023 19:29:35 -0800 (PST) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=NCwEFx4t; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230495AbjAFDXA (ORCPT + 99 others); Thu, 5 Jan 2023 22:23:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230220AbjAFDW4 (ORCPT ); Thu, 5 Jan 2023 22:22:56 -0500 Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 97FA4676CE for ; Thu, 5 Jan 2023 19:22:52 -0800 (PST) Received: by mail-pj1-x102d.google.com with SMTP id v13-20020a17090a6b0d00b00219c3be9830so444562pjj.4 for ; Thu, 05 Jan 2023 19:22:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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=t1m4b98zZIOE/FlpkSdQxXMqeGSS8Lt/ObWHZoaJEFc=; b=NCwEFx4tIpSRFIcNKj9/JjoDp1JqqnCOq6DsrZ2tEV9FIq/Q3fGuzn3LT1P9OFQR9A dLlCKdIkn3L9zYYjqKbeoGtmkvEX2BNW4N7WvS2mhcvCUSOsC7RnrBKcsaa9thZvpmzN oyryUDEgdDLLJAmc+e9SjrDaE1lWG4GqxHSBXDwCTpLMxgx3sqYX5dBOzTLveutT1hgP 9u9X/6wZR8GiYD1Heul6FAc0+e8ziX+V7Z2gGKs/qH3VkDBLjURyC9D2glNts83Zh7ru gUw2X6+ykydUFuq7YMmTE1QcCpgk11AAPo8qk4mpfG9PabknYJQMhA/Wn2dpzU7PK5kx vPaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=t1m4b98zZIOE/FlpkSdQxXMqeGSS8Lt/ObWHZoaJEFc=; b=n1cojbdC0HwDx6MER/RHtvruE5ikrpEvDTwvUBa2t8tMEYJvR/Ld/8guOTQrqQOrEX OtaLDlZlGI49HNt46X/kcOwVXIvvX6A9+NWEEYMN0kHNdq6AMR1dKeJPNG6JNuKSk4/n vbppkvZgFW2OeFeG37Ys5etw/i2S7Ou9XYLFvHr5wfYNFY3mnKZoBljICnp0LTOXltGY f4bJVtug+H1A54uCIgd/YoelYaqAzoRQP51E1cNaefAyQInuil/T/ItWbbZb/ufWJSUU jcl+ARn+VE573X9w41wF7MCJO3d2YR2NDRupy9pZH19Uv2FRoTrDRZZdgzR4QZ0SPNJc 5FNQ== X-Gm-Message-State: AFqh2krAcSs9x1+iMU/HMz4G6rlluntGIZ/+7i1oKyl6BiX+ld4mBy3g eHvAO5oXwcxfimtdVauJh9yh/+hZuUE= X-Received: by 2002:a17:902:70ca:b0:192:a1e0:261d with SMTP id l10-20020a17090270ca00b00192a1e0261dmr28207977plt.56.1672975370772; Thu, 05 Jan 2023 19:22:50 -0800 (PST) Received: from [172.17.0.2] ([13.83.14.128]) by smtp.gmail.com with ESMTPSA id h19-20020a170902eed300b00186c5e8a8d7sm17450178plb.171.2023.01.05.19.22.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 19:22:50 -0800 (PST) Message-ID: <63b7940a.170a0220.7b5ab.aac6@mx.google.com> Date: Thu, 05 Jan 2023 19:22:50 -0800 (PST) Content-Type: multipart/mixed; boundary="===============6603593386444459237==" MIME-Version: 1.0 From: bluez.test.bot@gmail.com To: linux-bluetooth@vger.kernel.org, jingq77@gmail.com Subject: RE: *** hcidump: fix array boundary issue le_meta_ev_dump *** In-Reply-To: <20230106013101.35016-2-jqian@calamp.com> References: <20230106013101.35016-2-jqian@calamp.com> Reply-To: linux-bluetooth@vger.kernel.org X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org --===============6603593386444459237== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9NzA5MzY5CgotLS1U ZXN0IHJlc3VsdC0tLQoKVGVzdCBTdW1tYXJ5OgpDaGVja1BhdGNoICAgICAgICAgICAgICAgICAg ICBQQVNTICAgICAgMC4zNiBzZWNvbmRzCkdpdExpbnQgICAgICAgICAgICAgICAgICAgICAgIFBB U1MgICAgICAwLjIzIHNlY29uZHMKQnVpbGRFbGwgICAgICAgICAgICAgICAgICAgICAgUEFTUyAg ICAgIDMyLjYzIHNlY29uZHMKQmx1ZXpNYWtlICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAg IDIzMS4zOSBzZWNvbmRzCk1ha2VDaGVjayAgICAgICAgICAgICAgICAgICAgIEZBSUwgICAgICAx My4wNiBzZWNvbmRzCk1ha2VEaXN0Y2hlY2sgICAgICAgICAgICAgICAgIFBBU1MgICAgICAxNzMu ODggc2Vjb25kcwpDaGVja1ZhbGdyaW5kICAgICAgICAgICAgICAgICBGQUlMICAgICAgMTY0LjQ1 IHNlY29uZHMKQ2hlY2tTbWF0Y2ggICAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDMxNi45OCBz ZWNvbmRzCmJsdWV6bWFrZWV4dGVsbCAgICAgICAgICAgICAgIEZBSUwgICAgICA4Ny41OSBzZWNv bmRzCkluY3JlbWVudGFsQnVpbGQgICAgICAgICAgICAgIEZBSUwgICAgICA3ODIuMTYgc2Vjb25k cwpTY2FuQnVpbGQgICAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgMTAwMi4yOSBzZWNvbmRz CgpEZXRhaWxzCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBCbHVlek1ha2Ug LSBGQUlMCkRlc2M6IEJ1aWxkIEJsdWVaCk91dHB1dDoKCnRvb2xzL21nbXQtdGVzdGVyLmM6IElu IGZ1bmN0aW9uIOKAmG1haW7igJk6CnRvb2xzL21nbXQtdGVzdGVyLmM6MTI1MTQ6NTogbm90ZTog dmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNr aW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CjEyNTE0IHwgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgp0b29scy9wYXJzZXIvaGNpLmM6 IEluIGZ1bmN0aW9uIOKAmGxlX21ldGFfZXZfZHVtcOKAmToKdG9vbHMvcGFyc2VyL2hjaS5jOjM2 NjE6MTU6IGVycm9yOiBjb21wYXJpc29uIGlzIGFsd2F5cyB0cnVlIGR1ZSB0byBsaW1pdGVkIHJh bmdlIG9mIGRhdGEgdHlwZSBbLVdlcnJvcj10eXBlLWxpbWl0c10KIDM2NjEgfCAgaWYgKHN1YmV2 ZW50ID49IDAgJiYgc3ViZXZlbnQgPD0gTEVfRVZfTlVNKSB7CiAgICAgIHwgICAgICAgICAgICAg ICBefgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAq KiogW01ha2VmaWxlOjc1NDU6IHRvb2xzL3BhcnNlci9oY2kub10gRXJyb3IgMQptYWtlWzFdOiAq KiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQ0 ODI6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogTWFr ZUNoZWNrIC0gRkFJTApEZXNjOiBSdW4gQmx1ZXogTWFrZSBDaGVjawpPdXRwdXQ6Cgp0b29scy9w YXJzZXIvaGNpLmM6IEluIGZ1bmN0aW9uIOKAmGxlX21ldGFfZXZfZHVtcOKAmToKdG9vbHMvcGFy c2VyL2hjaS5jOjM2NjE6MTU6IGVycm9yOiBjb21wYXJpc29uIGlzIGFsd2F5cyB0cnVlIGR1ZSB0 byBsaW1pdGVkIHJhbmdlIG9mIGRhdGEgdHlwZSBbLVdlcnJvcj10eXBlLWxpbWl0c10KIDM2NjEg fCAgaWYgKHN1YmV2ZW50ID49IDAgJiYgc3ViZXZlbnQgPD0gTEVfRVZfTlVNKSB7CiAgICAgIHwg ICAgICAgICAgICAgICBefgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9y cwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjc1NDU6IHRvb2xzL3BhcnNlci9oY2kub10gRXJyb3Ig MQptYWtlOiAqKiogW01ha2VmaWxlOjExNjg0OiBjaGVja10gRXJyb3IgMgojIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogQ2hlY2tWYWxncmluZCAtIEZBSUwKRGVzYzogUnVuIEJs dWV6IE1ha2UgQ2hlY2sgd2l0aCBWYWxncmluZApPdXRwdXQ6Cgp0b29scy9tZ210LXRlc3Rlci5j OiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rlci5jOjEyNTE0OjU6IG5v dGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10 cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAoxMjUxNCB8IGludCBtYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KdG9vbHMvcGFyc2VyL2hj aS5jOiBJbiBmdW5jdGlvbiDigJhsZV9tZXRhX2V2X2R1bXDigJk6CnRvb2xzL3BhcnNlci9oY2ku YzozNjYxOjE1OiBlcnJvcjogY29tcGFyaXNvbiBpcyBhbHdheXMgdHJ1ZSBkdWUgdG8gbGltaXRl ZCByYW5nZSBvZiBkYXRhIHR5cGUgWy1XZXJyb3I9dHlwZS1saW1pdHNdCiAzNjYxIHwgIGlmIChz dWJldmVudCA+PSAwICYmIHN1YmV2ZW50IDw9IExFX0VWX05VTSkgewogICAgICB8ICAgICAgICAg ICAgICAgXn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsx XTogKioqIFtNYWtlZmlsZTo3NTQ1OiB0b29scy9wYXJzZXIvaGNpLm9dIEVycm9yIDEKbWFrZVsx XTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmls ZToxMTY4NDogY2hlY2tdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRl c3Q6IENoZWNrU21hdGNoIC0gRkFJTApEZXNjOiBSdW4gc21hdGNoIHRvb2wgd2l0aCBzb3VyY2UK T3V0cHV0OgoKc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzE6MjE6IHdhcm5pbmc6IFZhcmlhYmxlIGxl bmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2NyeXB0by5jOjI3MjoyMzogd2FybmluZzog VmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6 NzY4OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJl ZC9nYXR0LWhlbHBlcnMuYzo4MzA6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBp cyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjEzMjM6MzE6IHdhcm5pbmc6IFZhcmlh YmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjEzNTQ6 MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dh dHQtc2VydmVyLmM6Mjc1OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNl ZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjYxODoyNTogd2FybmluZzogVmFyaWFibGUgbGVu Z3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo3MTc6MjU6IHdhcm5p bmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50 LmM6Mjc0MzozMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9z aGFyZWQvZ2F0dC1jbGllbnQuYzoyOTczOjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJy YXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMwNTQ6MjM6IHdhcm5pbmc6IFZh cmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzQ5 MzoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQv c2hlbGwuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVh ZGxpbmUvcmVhZGxpbmUuaCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6 MjM6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdG dW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2Fybmlu Zzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicK L3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFO U0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5j bHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0 aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKc3JjL3NoYXJlZC9zaGVs bC5jOjYwOToyMTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVu Y3Rpb24gJ2J0X3NoZWxsX3VzYWdlJwpzcmMvc2hhcmVkL2NyeXB0by5jOjI3MToyMTogd2Fybmlu ZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvY3J5cHRvLmM6Mjcy OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9n YXR0LWhlbHBlcnMuYzo3Njg6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjgzMDozMTogd2FybmluZzogVmFyaWFibGUg bGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6MTMyMzozMTog d2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1o ZWxwZXJzLmM6MTM1NDoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQu CnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzoyNzU6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0 aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NjE4OjI1OiB3YXJuaW5n OiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5j OjcxNzoyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzoyNzQzOjMzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkg aXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjI5NzM6MjM6IHdhcm5pbmc6IFZhcmlh YmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzA1NDoy Mzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0 dC1jbGllbnQuYzozNDkzOjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNl ZC4Kc3JjL3NoYXJlZC9zaGVsbC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91 c3IvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3Js dHlwZWRlZnMuaDozNToyMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24g b2YgZnVuY3Rpb24gJ0Z1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5o OjM2OjI1OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlv biAnVkZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3 YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5j dGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzog bm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwpz cmMvc2hhcmVkL3NoZWxsLmM6NjA5OjIxOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNs YXJhdGlvbiBvZiBmdW5jdGlvbiAnYnRfc2hlbGxfdXNhZ2UnCnRvb2xzL21lc2gtY2ZndGVzdC5j OjEzMDU6MTc6IHdhcm5pbmc6IHVua25vd24gZXNjYXBlIHNlcXVlbmNlOiAnXCUnCnRvb2xzL3Nj by10ZXN0ZXIuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9saWIvYmx1ZXRvb3RoLmg6MTg2 OjE1OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCi4vbGliL2JsdWV0b290 aC5oOjE5MTozMTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwp0b29scy9i bmVwdGVzdC5jOjYzNDozOTogd2FybmluZzogdW5rbm93biBlc2NhcGUgc2VxdWVuY2U6ICdcJScK dG9vbHMvc2VxMmJzZXEuYzo1NzoyNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlz IHVzZWQuCnRvb2xzL29iZXgtY2xpZW50LXRvb2wuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZSAo dGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxpbmUuaCk6Ci91c3IvaW5jbHVkZS9y ZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRl Y2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3Js dHlwZWRlZnMuaDozNjoyNTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24g b2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMu aDozNzoyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rp b24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzg6Mjk6 IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUFBG dW5jdGlvbicKYW5kcm9pZC9hdmN0cC5jOjUwNTozNDogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCmFuZHJvaWQvYXZjdHAuYzo1NTY6MzQ6IHdhcm5pbmc6IFZhcmlhYmxl IGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rlc3QtYXZyY3AuYzozNzM6MjY6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rlc3QtYXZyY3AuYzozOTg6MjY6 IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rlc3QtYXZyY3Au Yzo0MTQ6MjQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgphbmRyb2lk L2F2cmNwLWxpYi5jOjEwODU6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgphbmRyb2lkL2F2cmNwLWxpYi5jOjE1ODM6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0 aCBhcnJheSBpcyB1c2VkLgphbmRyb2lkL2F2cmNwLWxpYi5jOjE2MTI6MzQ6IHdhcm5pbmc6IFZh cmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgphbmRyb2lkL2F2cmNwLWxpYi5jOjE2Mzg6MzQ6 IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rlc3QtbWVzaC1j cnlwdG8uYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9tZXNoL2NyeXB0by5jOjEwMjM6MzA6 IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdtZXNo X2NyeXB0b19jaGVja19hdmFpbCcKcHJvZmlsZXMvaW5wdXQvZGV2aWNlLmM6MTY1OjI2OiB3YXJu aW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KbWVzaC9tZXNoLWlvLW1nbXQuYzo1 MDY6Njc6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgptZXNoL21hbmFn ZXIuYzo2NjozNTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVu Y3Rpb24gJ2ZyZWVfcGVuZGluZ19hZGRfY2FsbCcKY2xpZW50L2Rpc3BsYXkuYzogbm90ZTogaW4g aW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxpbmUuaCk6 Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5pbmc6IG5vbi1B TlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5jdGlvbicKL3Vzci9pbmNs dWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rp b24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRs aW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFy YXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5 cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9m IGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzE6MjE6IHdhcm5p bmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2NyeXB0by5jOjI3 MjoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQv Z2F0dC1oZWxwZXJzLmM6NzY4OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzo4MzA6MzE6IHdhcm5pbmc6IFZhcmlhYmxl IGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjEzMjM6MzE6 IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQt aGVscGVycy5jOjEzNTQ6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2Vk LgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6Mjc1OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5n dGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjYxODoyNTogd2Fybmlu ZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIu Yzo3MTc6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hh cmVkL2dhdHQtY2xpZW50LmM6Mjc0MzozMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5 IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyOTczOjIzOiB3YXJuaW5nOiBWYXJp YWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMwNTQ6 MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MzQ5MzoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVz ZWQuCnNyYy9zaGFyZWQvc2hlbGwuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAv dXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxpbmUuaCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9y bHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9u IG9mIGZ1bmN0aW9uICdGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMu aDozNjoyNTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rp b24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzog d2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVu Y3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6 IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicK c3JjL3NoYXJlZC9zaGVsbC5jOjYwOToyMTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVj bGFyYXRpb24gb2YgZnVuY3Rpb24gJ2J0X3NoZWxsX3VzYWdlJwptb25pdG9yL3BhY2tldC5jOiBu b3RlOiBpbiBpbmNsdWRlZCBmaWxlOgptb25pdG9yL2Rpc3BsYXkuaDo4MjoyNjogd2FybmluZzog VmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCm1vbml0b3IvcGFja2V0LmM6MTc5OToyNjog d2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCm1vbml0b3IvcGFja2V0LmM6 IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Cm1vbml0b3IvYnQuaDozNTUxOjUyOiB3YXJuaW5nOiBh cnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCm1vbml0b3IvYnQuaDozNTM5OjQwOiB3YXJuaW5n OiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCm1vbml0b3IvbDJjYXAuYzogbm90ZTogaW4g aW5jbHVkZWQgZmlsZToKbW9uaXRvci9kaXNwbGF5Lmg6ODI6MjY6IHdhcm5pbmc6IFZhcmlhYmxl IGxlbmd0aCBhcnJheSBpcyB1c2VkLgptb25pdG9yL21zZnQuYzogbm90ZTogaW4gaW5jbHVkZWQg ZmlsZToKbW9uaXRvci9tc2Z0Lmg6ODg6NDQ6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0 cnVjdHVyZXMKbW9uaXRvci9hdHQuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKbW9uaXRvci9k aXNwbGF5Lmg6ODI6MjY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp0 b29scy9yY3Rlc3QuYzo2MjQ6MzM6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uICdhdXRvbWF0ZWRfc2VuZF9yZWN2Jwp0b29scy9oZXgyaGNkLmM6MTM1 OjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdG9vbHMvbWVzaGN0 bC5jOjMyNDozMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVu Y3Rpb24gJ2ZvcmdldF9tZXNoX2RldmljZXMnCnRvb2xzL21lc2gtZ2F0dC9ub2RlLmM6NDU2OjM5 OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnbm9k ZV9nZXRfbG9jYWxfbm9kZScKdG9vbHMvbWVzaC1nYXR0L25ldC5jOjEyMzk6MzA6IHdhcm5pbmc6 IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdnZXRfbmV4dF9zZXEn CnRvb2xzL21lc2gtZ2F0dC9uZXQuYzoyMTkzOjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlv biBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnbmV0X2dldF9kZWZhdWx0X3R0bCcKdG9vbHMvbWVz aC1nYXR0L25ldC5jOjIyMDc6MjY6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uICduZXRfZ2V0X3NlcV9udW0nCnRvb2xzL21lc2gtZ2F0dC9wcm92LmM6 IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3Jl YWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJu aW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24n Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1B TlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5j bHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0 aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVh ZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNs YXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCnRvb2xzL21lc2gtZ2F0dC9vbm9mZi1t b2RlbC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3IvaW5jbHVkZS9yZWFk bGluZS9yZWFkbGluZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNToy Mzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0Z1 bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM2OjI1OiB3YXJuaW5n OiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnVkZ1bmN0aW9uJwov dXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3YXJuaW5nOiBub24tQU5T SSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5jdGlvbicKL3Vzci9pbmNs dWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rp b24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwptZXNoL2NyeXB0by5jOjEw MjM6MzA6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9u ICdtZXNoX2NyeXB0b19jaGVja19hdmFpbCcKZWxsL2xvZy5jOjQ0Njo2NTogd2FybmluZzogbm9u LUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ3JlZ2lzdGVyX2RlYnVnX3Nl Y3Rpb24nCmVsbC9sb2cuYzo0NTQ6Njg6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xh cmF0aW9uIG9mIGZ1bmN0aW9uICdmcmVlX2RlYnVnX3NlY3Rpb25zJwplbGwvcmFuZG9tLmM6NzU6 NDI6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICds X2dldHJhbmRvbV9pc19zdXBwb3J0ZWQnCmVsbC9jaXBoZXIuYzo2NzA6Mjg6IHdhcm5pbmc6IG5v bi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdpbml0X3N1cHBvcnRlZCcK ZWxsL2NoZWNrc3VtLmM6Mzg3OjI4OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJh dGlvbiBvZiBmdW5jdGlvbiAnaW5pdF9zdXBwb3J0ZWQnCmVsbC9jaGVja3N1bS5jOjQ0OTo0Nzog d2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2xfY2hl Y2tzdW1fY21hY19hZXNfc3VwcG9ydGVkJwplbGwvY2lwaGVyLmM6NTI5OjI0OiB3YXJuaW5nOiBW YXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KZWxsL2NlcnQtY3J5cHRvLmM6NTE6MzM6IHdh cm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvY2VydC1jcnlwdG8uYzox NDc6MzY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvY2VydC1j cnlwdG8uYzoyMDM6MzY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpl bGwvY2VydC1jcnlwdG8uYzoyNTY6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBp cyB1c2VkLgplbGwva2V5LmM6NTUzOjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkg aXMgdXNlZC4KZWxsL2RidXMtc2VydmljZS5jOjU2Mzo0OTogd2FybmluZzogbm9uLUFOU0kgZnVu Y3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ19kYnVzX29iamVjdF90cmVlX25ldycKZWxs L2RidXMtZmlsdGVyLmM6MjQ3OjQ2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4KZWxsL3Rscy5jOjU4OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4KZWxsL3Rscy5jOjk5OjIyOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4KZWxsL3Rscy5jOjk5OjQ2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4KZWxsL3Rscy5jOjE4MzI6MjY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBp cyB1c2VkLgplbGwvdGxzLXN1aXRlcy5jOjEwOTE6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0 aCBhcnJheSBpcyB1c2VkLgplbGwvdGxzLXN1aXRlcy5jOjEwOTM6MzQ6IHdhcm5pbmc6IFZhcmlh YmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvdGxzLXN1aXRlcy5jOjEwOTY6NDE6IHdhcm5p bmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgplbGwvdGxzLXN1aXRlcy5jOjExNDU6 NDE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp0b29scy9wYXJzZXIv aGNpLmM6IEluIGZ1bmN0aW9uIOKAmGxlX21ldGFfZXZfZHVtcOKAmToKdG9vbHMvcGFyc2VyL2hj aS5jOjM2NjE6MTU6IGVycm9yOiBjb21wYXJpc29uIGlzIGFsd2F5cyB0cnVlIGR1ZSB0byBsaW1p dGVkIHJhbmdlIG9mIGRhdGEgdHlwZSBbLVdlcnJvcj10eXBlLWxpbWl0c10KIDM2NjEgfCAgaWYg KHN1YmV2ZW50ID49IDAgJiYgc3ViZXZlbnQgPD0gTEVfRVZfTlVNKSB7CiAgICAgIHwgICAgICAg ICAgICAgICBefgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtl WzFdOiAqKiogW01ha2VmaWxlOjc1NDU6IHRvb2xzL3BhcnNlci9oY2kub10gRXJyb3IgMQptYWtl WzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2Vm aWxlOjQ0ODI6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVz dDogYmx1ZXptYWtlZXh0ZWxsIC0gRkFJTApEZXNjOiBCdWlsZCBCbHVleiB3aXRoIEV4dGVybmFs IEVMTApPdXRwdXQ6Cgp0b29scy9wYXJzZXIvaGNpLmM6IEluIGZ1bmN0aW9uIOKAmGxlX21ldGFf ZXZfZHVtcOKAmToKdG9vbHMvcGFyc2VyL2hjaS5jOjM2NjE6MTU6IGVycm9yOiBjb21wYXJpc29u IGlzIGFsd2F5cyB0cnVlIGR1ZSB0byBsaW1pdGVkIHJhbmdlIG9mIGRhdGEgdHlwZSBbLVdlcnJv cj10eXBlLWxpbWl0c10KIDM2NjEgfCAgaWYgKHN1YmV2ZW50ID49IDAgJiYgc3ViZXZlbnQgPD0g TEVfRVZfTlVNKSB7CiAgICAgIHwgICAgICAgICAgICAgICBefgpjYzE6IGFsbCB3YXJuaW5ncyBi ZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjc1NDU6IHRvb2xz L3BhcnNlci9oY2kub10gRXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hl ZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQ0ODI6IGFsbF0gRXJyb3IgMgojIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogSW5jcmVtZW50YWxCdWlsZCAtIEZBSUwKRGVz YzogSW5jcmVtZW50YWwgYnVpbGQgd2l0aCB0aGUgcGF0Y2hlcyBpbiB0aGUgc2VyaWVzCk91dHB1 dDoKW0JsdWVaLDEvMV0gaGNpZHVtcDpmaXggYXJyYXkgYm91bmRhcnkgaXNzdWUgbGVfbWV0YV9l dl9kdW1wKCkKCnRvb2xzL21nbXQtdGVzdGVyLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnRv b2xzL21nbXQtdGVzdGVyLmM6MTI1MTQ6NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBs aW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRy eWluZyB3aXRob3V0CjEyNTE0IHwgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAg ICAgfCAgICAgXn5+fgp1bml0L3Rlc3QtYXZkdHAuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToK dW5pdC90ZXN0LWF2ZHRwLmM6NzY2OjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGlt aXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlp bmcgd2l0aG91dAogIDc2NiB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAg IHwgICAgIF5+fn4KdW5pdC90ZXN0LWF2cmNwLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnVu aXQvdGVzdC1hdnJjcC5jOjk4OTo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0 IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5n IHdpdGhvdXQKICA5ODkgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8 ICAgICBefn5+CnRvb2xzL3BhcnNlci9oY2kuYzogSW4gZnVuY3Rpb24g4oCYbGVfbWV0YV9ldl9k dW1w4oCZOgp0b29scy9wYXJzZXIvaGNpLmM6MzY2MToxNTogZXJyb3I6IGNvbXBhcmlzb24gaXMg YWx3YXlzIHRydWUgZHVlIHRvIGxpbWl0ZWQgcmFuZ2Ugb2YgZGF0YSB0eXBlIFstV2Vycm9yPXR5 cGUtbGltaXRzXQogMzY2MSB8ICBpZiAoc3ViZXZlbnQgPj0gMCAmJiBzdWJldmVudCA8PSBMRV9F Vl9OVU0pIHsKICAgICAgfCAgICAgICAgICAgICAgIF5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5n IHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6NzU0NTogdG9vbHMvcGFy c2VyL2hjaS5vXSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpv YnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDQ4MjogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBTY2FuQnVpbGQgLSBGQUlMCkRlc2M6IFJ1biBTY2Fu IEJ1aWxkCk91dHB1dDoKCnNyYy9zaGFyZWQvYWQuYzozNjk6MTk6IHdhcm5pbmc6IFVzZSBvZiB6 ZXJvLWFsbG9jYXRlZCBtZW1vcnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZb KCpwb3MpKytdID0gYWRfdHlwZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KMSB3YXJuaW5nIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5j OjM4NzoyMTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg IGdhdHRfZGJfdW5yZWdpc3RlcihvcC0+Y2xpZW50LT5kYiwgb3AtPmRiX2lkKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6NjMy OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNj b3Zlcnlfb3BfY29tcGxldGUob3AsIGZhbHNlLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVu dC5jOjkyOToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVk L2dhdHQtY2xpZW50LmM6MTAzNToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlz IGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNv ZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTIyNzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5 IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNj ZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTI5MjoyOiB3YXJuaW5nOiBV c2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBs ZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTU2Mzo2 OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJl YWRfZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVk L2dhdHQtY2xpZW50LmM6MTU2ODoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlz IGZyZWVkCiAgICAgICAgZGlzY292ZXJfYWxsKG9wKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+ CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMDcwOjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkg YWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMDc4Ojg6IHdh cm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNjb3Zlcnlfb3BfcmVmKG9w KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzE2MToyOiB3 YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgY29tcGxldGVf d3JpdGVfbG9uZ19vcChyZXEsIHN1Y2Nlc3MsIDAsIGZhbHNlKTsKICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGll bnQuYzozMTgzOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAg ICAgICByZXF1ZXN0X3VucmVmKHJlcSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEyIHdh cm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9zaGVsbC5jOjExODA6MTM6IHdhcm5pbmc6IEFj Y2VzcyB0byBmaWVsZCAnb3B0aW9ucycgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVs bCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnb3B0JykKICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKGMgIT0gb3B0LT5vcHRpb25zW2luZGV4IC0gb2Zmc2V0XS52YWwpIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0 ZWQuCnNyYy9zaGFyZWQvYWQuYzozNjk6MTk6IHdhcm5pbmc6IFVzZSBvZiB6ZXJvLWFsbG9jYXRl ZCBtZW1vcnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZbKCpwb3MpKytdID0g YWRfdHlwZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K MSB3YXJuaW5nIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjM4NzoyMTogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGdhdHRfZGJfdW5y ZWdpc3RlcihvcC0+Y2xpZW50LT5kYiwgb3AtPmRiX2lkKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6NjMyOjI6IHdhcm5pbmc6 IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29t cGxldGUob3AsIGZhbHNlLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjkyOToyOiB3 YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5 X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50 LmM6MTAzNToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVk L2dhdHQtY2xpZW50LmM6MTIyNzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlz IGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNv ZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTI5MjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5 IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNj ZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTU2Mzo2OiB3YXJuaW5nOiBV c2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChv cCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50 LmM6MTU2ODoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgZGlzY292ZXJfYWxsKG9wKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQv Z2F0dC1jbGllbnQuYzoyMDcwOjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMg ZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMDc4Ojg6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNjb3Zlcnlfb3BfcmVmKG9wKSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzE2MToyOiB3YXJuaW5nOiBVc2Ug b2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgY29tcGxldGVfd3JpdGVfbG9uZ19v cChyZXEsIHN1Y2Nlc3MsIDAsIGZhbHNlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMTgzOjI6 IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICByZXF1ZXN0 X3VucmVmKHJlcSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEyIHdhcm5pbmdzIGdlbmVy YXRlZC4Kc3JjL3NoYXJlZC9zaGVsbC5jOjExODA6MTM6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVs ZCAnb3B0aW9ucycgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyIChs b2FkZWQgZnJvbSB2YXJpYWJsZSAnb3B0JykKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMg IT0gb3B0LT5vcHRpb25zW2luZGV4IC0gb2Zmc2V0XS52YWwpIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL2hj aWF0dGFjaC5jOjgxNjo3OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICdu JyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVy IGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChm ZCwgcmVzcCwgMTApKSA8IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFjaC5jOjg2NDo3OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUg dmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwg dGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAgICBpZiAoKG4g PSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgNCkpIDwgMCkgewogICAgICAgICAgICAgXiAgIH5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo4ODY6ODogd2Fybmlu ZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9z aW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24n CiAgICAgICAgICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgMTApKSA8 IDApIHsKICAgICAgICAgICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvaGNpYXR0YWNoLmM6OTA4Ojc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBz dG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFs dWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgIGlmICgobiA9IHJlYWRf aGNpX2V2ZW50KGZkLCByZXNwLCA0KSkgPCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFjaC5jOjkyOTo3OiB3YXJuaW5nOiBBbHRo b3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhw cmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAg ICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgNCkpIDwgMCkgewogICAgICAgICAg ICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5NzM6 Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0 aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFk IGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDYpKSA8 IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KNiB3YXJu aW5ncyBnZW5lcmF0ZWQuCnNyYy9vdWkuYzo1MDoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8g J2h3ZGInIGlzIG5ldmVyIHJlYWQKICAgICAgICBod2RiID0gdWRldl9od2RiX3VucmVmKGh3ZGIp OwogICAgICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL291aS5jOjUzOjI6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAndWRldicgaXMgbmV2ZXIgcmVhZAogICAgICAgIHVkZXYg PSB1ZGV2X3VucmVmKHVkZXYpOwogICAgICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+CjIgd2Fy bmluZ3MgZ2VuZXJhdGVkLgp0b29scy9oY2lkdW1wLmM6MTgwOjk6IHdhcm5pbmc6IFBvdGVudGlh bCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdkcCcKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoZmRzW2ldLmZkID09IHNvY2spCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fgp0b29scy9oY2lkdW1wLmM6MjQ4OjE3OiB3YXJuaW5nOiBBc3NpZ25l ZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRoLT50c19zZWMgID0gaHRvYmwoZnJtLnRzLnR2X3NlYyk7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29s cy9oY2lkdW1wLmM6MzI2Ojk6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlz IGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoYmUzMnRvaChkcC5mbGFncykgJiAweDAyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS9lbmRpYW4uaDo0NjoyMjog bm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUzMnRvaCcKIyAgZGVmaW5lIGJlMzJ0b2goeCkg X19ic3dhcF8zMiAoeCkKICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KdG9vbHMv aGNpZHVtcC5jOjM0MToyMDogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMg YW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZy bS5kYXRhX2xlbiA9IGJlMzJ0b2goZHAubGVuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2VuZGlhbi5o OjQ2OjIyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdiZTMydG9oJwojICBkZWZpbmUgYmUz MnRvaCh4KSBfX2Jzd2FwXzMyICh4KQogICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fgp0b29scy9oY2lkdW1wLmM6MzQ2OjE0OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1 bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb3Bjb2RlID0gYmUzMnRvaChkcC5mbGFncykgJiAweGZmZmY7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRl L2VuZGlhbi5oOjQ2OjIyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdiZTMydG9oJwojICBk ZWZpbmUgYmUzMnRvaCh4KSBfX2Jzd2FwXzMyICh4KQogICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6Mzg0OjE3OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1 ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICBmcm0uZGF0 YV9sZW4gPSBidG9ocyhkaC5sZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXiB+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAuYzozOTQ6MTE6IHdhcm5pbmc6IEFzc2ln bmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICBmcm0ubGVu ID0gZnJtLmRhdGFfbGVuOwogICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+fgp0 b29scy9oY2lkdW1wLmM6Mzk4Ojk6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50 IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgdHMgPSBi ZTY0dG9oKHBoLnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fgovdXNyL2luY2x1ZGUvZW5kaWFuLmg6NTE6MjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8g J2JlNjR0b2gnCiMgIGRlZmluZSBiZTY0dG9oKHgpIF9fYnN3YXBfNjQgKHgpCiAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAuYzo0MDM6MTM6IHdhcm5pbmc6 IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAg ICAgICAgICAgICAgICAgICAgICAgZnJtLmluID0gYmUzMnRvaChkcC5mbGFncykgJiAweDAxOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgovdXNyL2lu Y2x1ZGUvZW5kaWFuLmg6NDY6MjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2JlMzJ0b2gn CiMgIGRlZmluZSBiZTMydG9oKHgpIF9fYnN3YXBfMzIgKHgpCiAgICAgICAgICAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAuYzo0MDg6MTE6IHdhcm5pbmc6IEFzc2lnbmVk IHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGZy bS5pbiA9IGRoLmluOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fgp0b29s cy9oY2lkdW1wLmM6NDM3Ojc6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBh cmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgZmQgPSBvcGVuKGZpbGUsIG9wZW5f ZmxhZ3MsIDA2NDQpOwogICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgox MSB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL3JmY29tbS5jOjIyODozOiB3YXJuaW5nOiBWYWx1 ZSBzdG9yZWQgdG8gJ2knIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGkgPSBleGVjdnAo Y21kYXJndlswXSwgY21kYXJndik7CiAgICAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29tbS5jOjIyODo3OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIg cGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgICAgICAg ICAgaSA9IGV4ZWN2cChjbWRhcmd2WzBdLCBjbWRhcmd2KTsKICAgICAgICAgICAgICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6MzQ4Ojg6IHdhcm5pbmc6 IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyB1c2VkIGluIHRoZSBlbmNsb3Np bmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnZmQn CiAgICAgICAgICAgICAgICBpZiAoKGZkID0gb3BlbihkZXZuYW1lLCBPX1JET05MWSB8IE9fTk9D VFRZKSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgIF4gICAgfn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0uYzo0OTE6MTQ6IHdhcm5pbmc6IEFzc2lnbmVk IHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgcmVxLmNoYW5uZWwgPSByYWRk ci5yY19jaGFubmVsOwogICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fn5+fgp0b29s cy9yZmNvbW0uYzo1MDk6ODogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAn ZmQnIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2 ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICdmZCcKICAgICAgICAgICAgICAgIGlmICgoZmQgPSBvcGVu KGRldm5hbWUsIE9fUkRPTkxZIHwgT19OT0NUVFkpKSA8IDApIHsKICAgICAgICAgICAgICAgICAg ICAgXiAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjUgd2FybmluZ3MgZ2Vu ZXJhdGVkLgpzcmMvc2RwLXhtbC5jOjEyNjoxMDogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMg Z2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFd OwogICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzozMDA6 MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAg ICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgpzcmMvc2RwLXhtbC5jOjMzODoxMTogd2Fybmlu ZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAg ICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeIH5+fn5+fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9jaXB0b29sLmM6 MzUwOjc6IHdhcm5pbmc6IDV0aCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlh bGl6ZWQgdmFsdWUKICAgICAgICBzayA9IGRvX2Nvbm5lY3QoY3RsLCBkZXZfaWQsICZzcmMsICZk c3QsIHBzbSwgKDEgPDwgQ01UUF9MT09QQkFDSykpOwogICAgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJu aW5nIGdlbmVyYXRlZC4KdG9vbHMvc2RwdG9vbC5jOjk0MToyNjogd2FybmluZzogUmVzdWx0IG9m ICdtYWxsb2MnIGlzIGNvbnZlcnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAndWludDMyX3QnLCB3 aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCBzaXplb2Ygb3BlcmFuZCB0eXBlICdpbnQnCiAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICp2YWx1ZV9pbnQgPSBtYWxsb2Moc2l6ZW9mKGlu dCkpOwogICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+ICAgICAgICAgICAgXn5+fn5+ IH5+fn5+fn5+fn5+CnRvb2xzL3NkcHRvb2wuYzo5ODA6NDogd2FybmluZzogMXN0IGZ1bmN0aW9u IGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgICAgICAgICAg ICAgICAgICBmcmVlKGFsbG9jQXJyYXlbaV0pOwogICAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3NkcHRvb2wuYzozNzc3OjI6IHdhcm5pbmc6IFBvdGVudGlh bCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdzaS5uYW1lJwogICAgICAgIHJldHVybiBh ZGRfc2VydmljZSgwLCAmc2kpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRv b2xzL3NkcHRvb2wuYzo0MTEyOjQ6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBw b2ludGVkIHRvIGJ5ICdjb250ZXh0LnN2YycKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IC0xOwogICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn4KNCB3YXJuaW5ncyBnZW5lcmF0 ZWQuCnRvb2xzL2F2dGVzdC5jOjIyNDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicg aXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRl KHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjIzNDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl biA9IHdyaXRlKHNrLCBidWYsIDQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4g ICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI0Mzo1OiB3YXJuaW5nOiBWYWx1 ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI1Nzo1OiB3YXJu aW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjY0OjU6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyNzE6NTog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI3ODo1 OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mjg5 OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgNCk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0 ZXN0LmM6MjkzOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFk CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4K dG9vbHMvYXZ0ZXN0LmM6MzAyOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ss IGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+ fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzA2OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn bGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0g d3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAg fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzE1OjU6IHdhcm5pbmc6IFZhbHVlIHN0 b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzIyOjU6IHdhcm5pbmc6 IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzQ0OjU6 IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgNCk7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0 LmM6MzQ4OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9v bHMvYXZ0ZXN0LmM6MzU3OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZl ciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1 ZiwgMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+ fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzYxOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVu JyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3Jp dGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mzc0OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGVuID0gd3JpdGUoc2ssIGJ1ZiwgNCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mzc4OjU6IHdhcm5pbmc6IFZh bHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mzg1OjQ6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAg ICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAg ICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozOTU6NDogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAg ICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAgICAgICAgIF4gICAg IH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjU1OTozOiB3YXJuaW5nOiBWYWx1ZSBz dG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUo c2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29s cy9hdnRlc3QuYzo1Njc6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVy IHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIGludmFsaWQgPyAyIDog Myk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CnRvb2xzL2F2dGVzdC5jOjU4MTozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMg bmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgNCArIHNpemVv ZihtZWRpYV90cmFuc3BvcnQpKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NTk0OjM6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBs ZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+ fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjYwNDozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xl bicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7 CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2 MTY6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAg ICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAg fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjMxOjM6IHdhcm5pbmc6IFZhbHVlIHN0 b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShz aywgYnVmLCAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xz L2F2dGVzdC5jOjY0MzozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIg cmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAg ICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2NTI6Mzogd2Fybmlu ZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxl biA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+ fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjU5OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVu JyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsK ICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY5 NToyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAg IGxlbiA9IHdyaXRlKHNrLCBidWYsIEFWQ1RQX0hFQURFUl9MRU5HVEggKyBzaXplb2YocGxheV9w cmVzc2VkKSk7CiAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgozMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2J0 cHJveHkuYzo4MzY6MTU6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFt ZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgICAgICAgICAgICAgICAgIHRjcF9wb3J0 ID0gYXRvaShvcHRhcmcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fgp0b29scy9idHByb3h5LmM6ODM5Ojg6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNz ZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgICAgICAgICAg ICAgICAgIGlmIChzdHJsZW4ob3B0YXJnKSA+IDMgJiYgIXN0cm5jbXAob3B0YXJnLCAiaGNpIiwg MykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdz IGdlbmVyYXRlZC4KdG9vbHMvY3JlYXRlLWltYWdlLmM6NzY6Mzogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdmZCcgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgZmQgPSAtMTsKICAgICAg ICAgICAgICAgIF4gICAgfn4KdG9vbHMvY3JlYXRlLWltYWdlLmM6ODQ6Mzogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdmZCcgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgZmQgPSAtMTsK ICAgICAgICAgICAgICAgIF4gICAgfn4KdG9vbHMvY3JlYXRlLWltYWdlLmM6OTI6Mzogd2Fybmlu ZzogVmFsdWUgc3RvcmVkIHRvICdmZCcgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgZmQg PSAtMTsKICAgICAgICAgICAgICAgIF4gICAgfn4KdG9vbHMvY3JlYXRlLWltYWdlLmM6MTA1OjI6 IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQKICAgICAgICBmZCA9 IC0xOwogICAgICAgIF4gICAgfn4KNCB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2J0Z2F0dC1j bGllbnQuYzoxNTk3OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYXJndicgaXMgbmV2ZXIg cmVhZAogICAgICAgIGFyZ3YgKz0gb3B0aW5kOwogICAgICAgIF4gICAgICAgfn5+fn5+CjEgd2Fy bmluZyBnZW5lcmF0ZWQuCnRvb2xzL2J0Z2F0dC1zZXJ2ZXIuYzoxMjEyOjI6IHdhcm5pbmc6IFZh bHVlIHN0b3JlZCB0byAnYXJndicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGFyZ3YgLT0gb3B0aW5k OwogICAgICAgIF4gICAgICAgfn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL2NoZWNr LXNlbGZ0ZXN0LmM6NDI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdwdHInIGlzIG5ldmVy IHJlYWQKICAgICAgICAgICAgICAgIHB0ciA9IGZnZXRzKHJlc3VsdCwgc2l6ZW9mKHJlc3VsdCks IGZwKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9nYXR0LXNlcnZpY2UuYzoyOTQ6Mjogd2Fy bmluZzogMm5kIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1 ZQogICAgICAgIGNocl93cml0ZShjaHIsIHZhbHVlLCBsZW4pOwogICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL29iZXgtc2VydmVyLXRv b2wuYzoxMzM6MTM6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRl ciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgZGF0YS0+ZmQgPSBvcGVuKG5hbWUsIE9fV1JP TkxZIHwgT19DUkVBVCB8IE9fTk9DVFRZLCAwNjAwKTsKICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL29iZXgtc2Vy dmVyLXRvb2wuYzoxOTI6MTM6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBh cmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgZGF0YS0+ZmQgPSBvcGVuKG5hbWUs IE9fUkRPTkxZIHwgT19OT0NUVFksIDApOwogICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvYnRwY2xp ZW50Y3RsLmM6NDAyOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYml0JyBpcyBuZXZlciBy ZWFkCiAgICAgICAgICAgICAgICBiaXQgPSAwOwogICAgICAgICAgICAgICAgXiAgICAgfgp0b29s cy9idHBjbGllbnRjdGwuYzoxNjU1OjI6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8g Mm5kIHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgbWVtY3B5KGNwLT5kYXRh LCBhZF9kYXRhLCBhZF9sZW4pOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NkcGQtcmVxdWVzdC5jOjIxMToxMzogd2Fy bmluZzogUmVzdWx0IG9mICdtYWxsb2MnIGlzIGNvbnZlcnRlZCB0byBhIHBvaW50ZXIgb2YgdHlw ZSAnY2hhcicsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUg J3VpbnQxNl90JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBFbGVtID0gbWFsbG9j KHNpemVvZih1aW50MTZfdCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+IH5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NkcGQtcmVxdWVzdC5jOjIzOToxMzogd2Fy bmluZzogUmVzdWx0IG9mICdtYWxsb2MnIGlzIGNvbnZlcnRlZCB0byBhIHBvaW50ZXIgb2YgdHlw ZSAnY2hhcicsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUg J3VpbnQzMl90JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBFbGVtID0gbWFsbG9j KHNpemVvZih1aW50MzJfdCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+IH5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCmFuZHJvaWQv YXZyY3AtbGliLmM6MTk2ODozOiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBp cyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICBnX2ZyZWUodGV4dFtpXSk7 CiAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdW5p dC90ZXN0LW1pZGkuYzo1NDE6ODI6IGVycm9yOiBmdW5jdGlvbiBkZWZpbml0aW9uIGlzIG5vdCBh bGxvd2VkIGhlcmUKICAgICAgICB2b2lkIGNvbXBhcmVfZXZlbnRzX2NiKGNvbnN0IHN0cnVjdCBt aWRpX3dyaXRlX3BhcnNlciAqcGFyc2VyLCB2b2lkICp1c2VyX2RhdGEpIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KdW5pdC90ZXN0LW1pZGkuYzo1ODc6MTc6IGVycm9yOiB1c2Ug b2YgdW5kZWNsYXJlZCBpZGVudGlmaWVyICdjb21wYXJlX2V2ZW50c19jYic7IGRpZCB5b3UgbWVh biAnY29tcGFyZV9ldmVudHMnPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29tcGFyZV9ldmVudHNfY2IsICZtaWRpX2RhdGEpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbXBhcmVfZXZlbnRzCnVuaXQvdGVzdC1taWRpLmM6MjM3OjEzOiBub3RlOiAn Y29tcGFyZV9ldmVudHMnIGRlY2xhcmVkIGhlcmUKc3RhdGljIHZvaWQgY29tcGFyZV9ldmVudHMo Y29uc3Qgc25kX3NlcV9ldmVudF90ICpldjEsCiAgICAgICAgICAgIF4KMiBlcnJvcnMgZ2VuZXJh dGVkLgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gdW5pdC90ZXN0LW1lc2gtY3J5cHRvLmM6MjA6Cklu IGZpbGUgaW5jbHVkZWQgZnJvbSAuL21lc2gvY3J5cHRvLmM6MTg6CkluIGZpbGUgaW5jbHVkZWQg ZnJvbSAuL2VsbC9lbGwuaDoxOgouL2VsbC91dGlsLmg6MTg3Ojk6IHdhcm5pbmc6IDFzdCBmdW5j dGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICByZXR1 cm4gTF9CRTMyX1RPX0NQVShMX0dFVF9VTkFMSUdORUQoKGNvbnN0IHVpbnQzMl90ICopIHB0cikp OwogICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KLi9lbGwvdXRpbC5oOjg5OjI4OiBub3RlOiBleHBhbmRlZCBmcm9tIG1h Y3JvICdMX0JFMzJfVE9fQ1BVJwojZGVmaW5lIExfQkUzMl9UT19DUFUodmFsKSBic3dhcF8zMih2 YWwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRl L2J5dGVzd2FwLmg6MzQ6MjE6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2Jzd2FwXzMyJwoj ZGVmaW5lIGJzd2FwXzMyKHgpIF9fYnN3YXBfMzIgKHgpCiAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn4KdW5pdC90ZXN0LW1lc2gtY3J5cHRvLmM6OTY1OjExOiB3YXJuaW5nOiBUaGUg bGVmdCBleHByZXNzaW9uIG9mIHRoZSBjb21wb3VuZCBhc3NpZ25tZW50IGlzIGFuIHVuaW5pdGlh bGl6ZWQgdmFsdWUuIFRoZSBjb21wdXRlZCB2YWx1ZSB3aWxsIGFsc28gYmUgZ2FyYmFnZQogICAg ICAgICAgICAgICAga2V5X2FpZCB8PSBLRVlfSURfQUtGOwogICAgICAgICAgICAgICAgfn5+fn5+ fiBeCnVuaXQvdGVzdC1tZXNoLWNyeXB0by5jOjEwMDg6Mjogd2FybmluZzogNHRoIGZ1bmN0aW9u IGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIHZlcmlmeV91 aW50OCgiTklEIiwgMCwga2V5cy0+bmV0X25pZCwgbmlkKTsKICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdW5pdC90ZXN0LW1lc2gtY3J5cHRvLmM6MTI4 OTo2OiB3YXJuaW5nOiBCcmFuY2ggY29uZGl0aW9uIGV2YWx1YXRlcyB0byBhIGdhcmJhZ2UgdmFs dWUKICAgICAgICBpZiAoY3RsKSB7CiAgICAgICAgICAgIF5+fgp1bml0L3Rlc3QtbWVzaC1jcnlw dG8uYzoxNTA5Ojc6IHdhcm5pbmc6IEJyYW5jaCBjb25kaXRpb24gZXZhbHVhdGVzIHRvIGEgZ2Fy YmFnZSB2YWx1ZQogICAgICAgICAgICAgICAgaWYgKG5ldF9jdGwpIHsKICAgICAgICAgICAgICAg ICAgICBefn5+fn5+CnVuaXQvdGVzdC1tZXNoLWNyeXB0by5jOjE3NjM6Mjogd2FybmluZzogMXN0 IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAg IGxfcHV0X2JlNjQoY21hY190bXAsIGNtYWMpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CjYgd2FybmluZ3MgZ2VuZXJhdGVkLgpwcm9maWxlcy9oZWFsdGgvaGRwLmM6NjQ0OjM6 IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAg IGhkcF90bXBfZGNfZGF0YV91bnJlZihkY19kYXRhKTsKICAgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpwcm9maWxlcy9oZWFsdGgvaGRwLmM6ODAwOjE5OiB3YXJu aW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICBwYXRo ID0gZ19zdHJkdXAoY2hhbi0+cGF0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fgpwcm9maWxlcy9oZWFsdGgvaGRwLmM6MTc3OTo2OiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBoZHBfdG1wX2RjX2RhdGFfcmVmKGhkcF9jb25uKSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnByb2Zp bGVzL2hlYWx0aC9oZHAuYzoxODM2OjMwOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0 IGlzIGZyZWVkCiAgICAgICAgcmVwbHkgPSBnX2RidXNfY3JlYXRlX2Vycm9yKGRhdGEtPm1zZywg RVJST1JfSU5URVJGQUNFICIuSGVhbHRoRXJyb3IiLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn4KNCB3YXJuaW5ncyBnZW5lcmF0ZWQuCnByb2ZpbGVzL2hlYWx0 aC9oZHBfdXRpbC5jOjEwNTM6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBm cmVlZAogICAgICAgIGNvbm5fZGF0YS0+ZnVuYyhjb25uX2RhdGEtPmRhdGEsIGdlcnIpOwogICAg ICAgIF5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpwcm9maWxlcy9taWRpL21p ZGkuYzo2MTo3NTogZXJyb3I6IGZ1bmN0aW9uIGRlZmluaXRpb24gaXMgbm90IGFsbG93ZWQgaGVy ZQogICAgICAgIHZvaWQgZm9yZWFjaF9jYihjb25zdCBzdHJ1Y3QgbWlkaV93cml0ZV9wYXJzZXIg KnBhcnNlciwgdm9pZCAqdXNlcl9kYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KcHJv ZmlsZXMvbWlkaS9taWRpLmM6Nzg6NDA6IGVycm9yOiB1c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlm aWVyICdmb3JlYWNoX2NiJwogICAgICAgICAgICAgICAgbWlkaV9yZWFkX2V2KCZtaWRpLT5taWRp X291dCwgZXZlbnQsIGZvcmVhY2hfY2IsIG1pZGkpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KMiBlcnJvcnMgZ2VuZXJhdGVkLgphdHRyaWIv Z2F0dC5jOjk3MDoyOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0 byBieSAnbG9uZ193cml0ZScKICAgICAgICByZXR1cm4gcHJlcGFyZV93cml0ZShsb25nX3dyaXRl KTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2Vu ZXJhdGVkLgpzcmMvc2RwZC1yZXF1ZXN0LmM6MjExOjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21h bGxvYycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMg aW5jb21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAndWludDE2X3QnCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQxNl90KSk7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+ fn5+fn5+fgpzcmMvc2RwZC1yZXF1ZXN0LmM6MjM5OjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21h bGxvYycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMg aW5jb21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAndWludDMyX3QnCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQzMl90KSk7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+ fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NkcC14bWwuYzoxMjY6MTA6IHdhcm5p bmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAg ICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+ fn5+CnNyYy9zZHAteG1sLmM6MzAwOjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJi YWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kg KyAxXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3Nk cC14bWwuYzozMzg6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5k ZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgozIHdhcm5pbmdzIGdlbmVy YXRlZC4Kc3JjL3NkcC1jbGllbnQuYzozNTM6MTQ6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAn Y2InIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlcgogICAgICAgICgq Y3R4dCktPmNiID0gY2I7CiAgICAgICAgfn5+fn5+fn5+fn5+Xn5+fgoxIHdhcm5pbmcgZ2VuZXJh dGVkLgpzcmMvZ2F0dC1kYXRhYmFzZS5jOjExMzg6MTA6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0 byAnYml0cycgZHVyaW5nIGl0cyBpbml0aWFsaXphdGlvbiBpcyBuZXZlciByZWFkCiAgICAgICAg dWludDhfdCBiaXRzW10gPSB7IEJUX0dBVFRfQ0hSQ19DTElfRkVBVF9ST0JVU1RfQ0FDSElORywK ICAgICAgICAgICAgICAgIF5+fn4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpzcmMvYWR2ZXJ0aXNpbmcuYzo4OTg6Mjogd2Fy bmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAybmQgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9u bnVsbCcKICAgICAgICBtZW1jcHkoY3AtPmRhdGEgKyBhZHZfZGF0YV9sZW4sIHNjYW5fcnNwLCBz Y2FuX3JzcF9sZW4pOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KZ29iZXgvZ29iZXgtaGVh ZGVyLmM6Njc6Mjogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAybmQgcGFyYW1ldGVy IGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICBtZW1jcHkodG8sIGZyb20sIGNvdW50KTsKICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpnb2JleC9n b2JleC10cmFuc2Zlci5jOjQyMzo3OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlz IGZyZWVkCiAgICAgICAgaWYgKCFnX3NsaXN0X2ZpbmQodHJhbnNmZXJzLCB0cmFuc2ZlcikpCiAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdl bmVyYXRlZC4KZ2RidXMvd2F0Y2guYzoyMDQ6Mzogd2FybmluZzogQXR0ZW1wdCB0byBmcmVlIHJl bGVhc2VkIG1lbW9yeQogICAgICAgICAgICAgICAgZ19mcmVlKGwtPmRhdGEpOwogICAgICAgICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvYWQu YzozNjk6MTk6IHdhcm5pbmc6IFVzZSBvZiB6ZXJvLWFsbG9jYXRlZCBtZW1vcnkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBidWZbKCpwb3MpKytdID0gYWRfdHlwZTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KMSB3YXJuaW5nIGdlbmVyYXRl ZC4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjM4NzoyMTogd2FybmluZzogVXNlIG9mIG1lbW9y eSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGdhdHRfZGJfdW5yZWdpc3RlcihvcC0+Y2xpZW50 LT5kYiwgb3AtPmRiX2lkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpz cmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6NjMyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0 ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIGZhbHNlLCBh dHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjkyOToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBz dWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTAzNToyOiB3YXJuaW5n OiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2Nv bXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTIy NzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlz 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 c2hhcmVkL2dhdHQtY2xpZW50LmM6MTU2Mzo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVy IGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTU2ODoyOiB3YXJuaW5n OiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJfYWxsKG9w KTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMDcw OjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAo cmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzoyMDc4Ojg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkaXNjb3Zlcnlfb3BfcmVmKG9wKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hh cmVkL2dhdHQtY2xpZW50LmM6MzE2MToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0 IGlzIGZyZWVkCiAgICAgICAgY29tcGxldGVfd3JpdGVfbG9uZ19vcChyZXEsIHN1Y2Nlc3MsIDAs IGZhbHNlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMTgzOjI6IHdhcm5pbmc6IFVzZSBvZiBt ZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICByZXF1ZXN0X3VucmVmKHJlcSk7CiAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9z aGVsbC5jOjExODA6MTM6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnb3B0aW9ucycgcmVzdWx0 cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJs ZSAnb3B0JykKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gb3B0LT5vcHRpb25zW2lu ZGV4IC0gb2Zmc2V0XS52YWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCm1vbml0b3IvbDJjYXAuYzoxNjE2OjQ6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnZGF0YScgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAg ICAgICAgICAgICBkYXRhICs9IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgICB+ fn4KbW9uaXRvci9sMmNhcC5jOjE2MTc6NDogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdzaXpl JyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgLT0gbGVuOwogICAg ICAgICAgICAgICAgICAgICAgICBeICAgICAgIH5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KbW9u aXRvci9od2RiLmM6NTk6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdod2RiJyBpcyBuZXZl ciByZWFkCiAgICAgICAgaHdkYiA9IHVkZXZfaHdkYl91bnJlZihod2RiKTsKICAgICAgICBeICAg ICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+Cm1vbml0b3IvaHdkYi5jOjY0OjI6IHdhcm5pbmc6IFZh bHVlIHN0b3JlZCB0byAndWRldicgaXMgbmV2ZXIgcmVhZAogICAgICAgIHVkZXYgPSB1ZGV2X3Vu cmVmKHVkZXYpOwogICAgICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+Cm1vbml0b3IvaHdkYi5j OjEwNjoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2h3ZGInIGlzIG5ldmVyIHJlYWQKICAg ICAgICBod2RiID0gdWRldl9od2RiX3VucmVmKGh3ZGIpOwogICAgICAgIF4gICAgICB+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KbW9uaXRvci9od2RiLmM6MTExOjI6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAndWRldicgaXMgbmV2ZXIgcmVhZAogICAgICAgIHVkZXYgPSB1ZGV2X3VucmVmKHVkZXYp OwogICAgICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+CjQgd2FybmluZ3MgZ2VuZXJhdGVkLgps aWIvaGNpLmM6OTc6NDogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdwdHInIGlzIG5ldmVyIHJl YWQKICAgICAgICAgICAgICAgICAgICAgICAgcHRyICs9IHNwcmludGYocHRyLCAiJXMiLCBtLT5z dHIpOwogICAgICAgICAgICAgICAgICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvYmx1ZW1vb24uYzoxMTAxOjg6IHdhcm5p bmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51 bGwnCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJsZW4ob3B0YXJnKSA+IDMgJiYgIXN0 cm5jbXAob3B0YXJnLCAiaGNpIiwgMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9tZXNoY3RsLmM6MzI2OjE5OiB3 YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ21lc2hfZGV2aWNlcycgcmVzdWx0cyBpbiBhIGRlcmVm ZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnZGVmYXVsdF9j dHJsJykKICAgICAgICBnX2xpc3RfZnJlZV9mdWxsKGRlZmF1bHRfY3RybC0+bWVzaF9kZXZpY2Vz LCBnX2ZyZWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KdG9vbHMvbWVzaGN0bC5jOjc2MjoyOiB3YXJuaW5nOiAybmQgZnVuY3Rpb24gY2FsbCBh cmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgYnRfc2hlbGxfcHJpbnRm KCJBdHRlbXB0aW5nIHRvIGRpc2Nvbm5lY3QgZnJvbSAlc1xuIiwgYWRkcik7CiAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K dG9vbHMvbWVzaGN0bC5jOjE5NTc6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlz IG5ldmVyIHJlYWQKICAgICAgICBsZW4gPSBsZW4gKyBleHRyYSArIHN0cmxlbigibG9jYWxfbm9k ZS5qc29uIik7CiAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgpsaWIvc2RwLmM6NTA3OjE2OiB3YXJuaW5nOiBE ZXJlZmVyZW5jZSBvZiB1bmRlZmluZWQgcG9pbnRlciB2YWx1ZQogICAgICAgICAgICAgICAgaW50 OF90IGR0ZCA9ICoodWludDhfdCAqKSBkdGRzW2ldOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CmxpYi9zZHAuYzo1MzU6MTc6IHdhcm5pbmc6IERlcmVm ZXJlbmNlIG9mIHVuZGVmaW5lZCBwb2ludGVyIHZhbHVlCiAgICAgICAgICAgICAgICB1aW50OF90 IGR0ZCA9ICoodWludDhfdCAqKSBkdGRzW2ldOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fgpsaWIvc2RwLmM6NTgwOjEyOiB3YXJuaW5nOiBBY2Nlc3Mg dG8gZmllbGQgJ2F0dHJJZCcgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBwb2lu dGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnZCcpCiAgICAgICAgZC0+YXR0cklkID0gYXR0cjsK ICAgICAgICB+ICAgICAgICAgXgpsaWIvc2RwLmM6MTg3MDoyNjogd2FybmluZzogUG90ZW50aWFs IGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2FwJwogICAgICAgIGZvciAoOyBwZGxpc3Q7 IHBkbGlzdCA9IHBkbGlzdC0+bmV4dCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5+fn5+fgpsaWIvc2RwLmM6MTg4NDo2OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1v cnkgcG9pbnRlZCB0byBieSAncGRzJwogICAgICAgICAgICAgICAgYXAgPSBzZHBfbGlzdF9hcHBl bmQoYXAsIHBkcyk7CiAgICAgICAgICAgICAgICB+fn5efn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgpsaWIvc2RwLmM6MTkyOToxMDogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBv aW50ZWQgdG8gYnkgJ3UnCiAgICAgICAgICAgICAgICAgICAgICAgICpzZXFwID0gc2RwX2xpc3Rf YXBwZW5kKCpzZXFwLCB1KTsKICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+Xn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CmxpYi9zZHAuYzoyMDM0OjQ6IHdhcm5pbmc6IFBvdGVudGlhbCBs ZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdsYW5nJwogICAgICAgICAgICAgICAgICAgICAg ICBzZHBfbGlzdF9mcmVlKCpsYW5nU2VxLCBmcmVlKTsKICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fgpsaWIvc2RwLmM6MjEyMzo5OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBv ZiBtZW1vcnkgcG9pbnRlZCB0byBieSAncHJvZkRlc2MnCiAgICAgICAgcmV0dXJuIDA7CiAgICAg ICAgICAgICAgIF4KbGliL3NkcC5jOjMyNTA6ODogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2Yg bWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3BTdmNSZWMnCiAgICAgICAgICAgICAgICBwU2VxID0gc2Rw X2xpc3RfYXBwZW5kKHBTZXEsIHBTdmNSZWMpOwogICAgICAgICAgICAgICAgfn5+fn5efn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpsaWIvc2RwLmM6MzI1MTo5OiB3YXJuaW5nOiBQb3Rl bnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAncFNlcScKICAgICAgICAgICAgICAg IHBkYXRhICs9IHNpemVvZih1aW50MzJfdCk7CiAgICAgICAgICAgICAgICB+fn5+fn5efn5+fn5+ fn5+fn5+fn5+fn5+CmxpYi9zZHAuYzo0NTg3OjEzOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBv ZiBtZW1vcnkgcG9pbnRlZCB0byBieSAncmVjX2xpc3QnCiAgICAgICAgICAgICAgICAgICAgICAg IH0gd2hpbGUgKHNjYW5uZWQgPCBhdHRyX2xpc3RfbGVuICYmIHBkYXRhX2xlbiA+IDApOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+CmxpYi9zZHAuYzo0ODgzOjQwOiB3 YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAndHNlcScKICAg ICAgICBmb3IgKGQgPSBzZHBkYXRhLT52YWwuZGF0YXNlcTsgZDsgZCA9IGQtPm5leHQpIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KbGliL3NkcC5jOjQ5 MTk6ODogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3N1 YnNlcScKICAgICAgICAgICAgICAgIHRzZXEgPSBzZHBfbGlzdF9hcHBlbmQodHNlcSwgc3Vic2Vx KTsKICAgICAgICAgICAgICAgIH5+fn5+Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgox MyB3YXJuaW5ncyBnZW5lcmF0ZWQuCkluIGZpbGUgaW5jbHVkZWQgZnJvbSB0b29scy9tZXNoLWdh dHQvY3J5cHRvLmM6MzI6Ci4vc3JjL3NoYXJlZC91dGlsLmg6MTY5Ojk6IHdhcm5pbmc6IDFzdCBm dW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICBy ZXR1cm4gYmUzMl90b19jcHUoZ2V0X3VuYWxpZ25lZCgoY29uc3QgdWludDMyX3QgKikgcHRyKSk7 CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+Ci4vc3JjL3NoYXJlZC91dGlsLmg6MzE6MjY6IG5vdGU6IGV4cGFuZGVkIGZyb20g bWFjcm8gJ2JlMzJfdG9fY3B1JwojZGVmaW5lIGJlMzJfdG9fY3B1KHZhbCkgYnN3YXBfMzIodmFs KQogICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvYnl0 ZXN3YXAuaDozNDoyMTogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYnN3YXBfMzInCiNkZWZp bmUgYnN3YXBfMzIoeCkgX19ic3dhcF8zMiAoeCkKICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gdG9vbHMvbWVzaC1nYXR0L2NyeXB0by5jOjMy OgouL3NyYy9zaGFyZWQvdXRpbC5oOjE3OTo5OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBh cmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgcmV0dXJuIGJlNjRfdG9f Y3B1KGdldF91bmFsaWduZWQoKGNvbnN0IHVpbnQ2NF90ICopIHB0cikpOwogICAgICAgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgouL3Ny Yy9zaGFyZWQvdXRpbC5oOjMyOjI2OiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdiZTY0X3Rv X2NwdScKI2RlZmluZSBiZTY0X3RvX2NwdSh2YWwpIGJzd2FwXzY0KHZhbCkKICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2J5dGVzd2FwLmg6Mzc6MjE6 IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2Jzd2FwXzY0JwojZGVmaW5lIGJzd2FwXzY0KHgp IF9fYnN3YXBfNjQgKHgpCiAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KMiB3YXJu aW5ncyBnZW5lcmF0ZWQuCmVsbC9xdWV1ZS5jOjUyOTo0OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2VudHJ5JyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5ID0g ZW50cnktPm5leHQ7CiAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgICAgfn5+fn5+fn5+fn4K MSB3YXJuaW5nIGdlbmVyYXRlZC4KZWxsL3BlbS5jOjE0Njo4OiB3YXJuaW5nOiBEZXJlZmVyZW5j ZSBvZiBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdlb2wnKQogICAgICAgICAg ICAgICAgICAgICAgICBpZiAoKmVvbCA9PSAnXHInIHx8ICplb2wgPT0gJ1xuJykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF5+fn4KZWxsL3BlbS5jOjE4MToxODogd2FybmluZzogRGVyZWZl cmVuY2Ugb2YgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnZW9sJykKICAgICAg ICAgICAgICAgIGlmIChidWZfbGVuICYmICplb2wgPT0gJ1xyJyAmJiAqYnVmX3B0ciA9PSAnXG4n KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+CmVsbC9wZW0uYzoxODE6MzQ6 IHdhcm5pbmc6IERlcmVmZXJlbmNlIG9mIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFi bGUgJ2J1Zl9wdHInKQogICAgICAgICAgICAgICAgaWYgKGJ1Zl9sZW4gJiYgKmVvbCA9PSAnXHIn ICYmICpidWZfcHRyID09ICdcbicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fgplbGwvcGVtLmM6MzE5OjExOiB3YXJuaW5nOiAxc3QgZnVu Y3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgcmVz dWx0ID0gcGVtX2xvYWRfYnVmZmVyKGZpbGUuZGF0YSwgZmlsZS5zdC5zdF9zaXplLAogICAgICAg ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZWxs L3BlbS5jOjQ4NDo5OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1 bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgbGlzdCA9IGxfcGVtX2xvYWRfY2VydGlmaWNhdGVf bGlzdF9mcm9tX2RhdGEoZmlsZS5kYXRhLAogICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KNSB3YXJuaW5ncyBnZW5lcmF0ZWQuCmVs bC9jZXJ0LmM6NjU3OjQxOiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ2FzbjFfbGVuJyByZXN1 bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlh YmxlICdjZXJ0JykKICAgICAgICBrZXkgPSBsX2tleV9uZXcoTF9LRVlfUlNBLCBjZXJ0LT5hc24x LCBjZXJ0LT5hc24xX2xlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn4KZWxsL2NlcnQuYzoxNjkwOjg6IHdhcm5pbmc6IEFsdGhv dWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ2VsZW1fZGF0YScgaXMgdXNlZCBpbiB0aGUgZW5jbG9z aW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ2Vs ZW1fZGF0YScKICAgICAgICBpZiAoIShlbGVtX2RhdGEgPSBhc24xX2Rlcl9maW5kX2VsZW0oc2Vx LCBzZXFfbGVuLAogICAgICAgICAgICAgIF4gICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgplbGwvZGJ1cy5jOjE3MDc6MTA6IHdh cm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ3R5cGUnIGlzIHVzZWQgaW4gdGhl IGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBm cm9tICd0eXBlJwogICAgICAgIHdoaWxlICgodHlwZSA9IHZhX2FyZyhhcmdzLCBlbnVtIGxfZGJ1 c19tYXRjaF90eXBlKSkgIT0KICAgICAgICAgICAgICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KZWxsL2d2YXJpYW50LXV0 aWwuYzoxNTg6MTg6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJz4nIGlzIGEgZ2FyYmFn ZSB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxpZ25tZW50ID4gbWF4X2FsaWdu bWVudCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fiBeCmVsbC9ndmFyaWFu dC11dGlsLmM6NDcxOjU6IHdhcm5pbmc6IERlcmVmZXJlbmNlIG9mIG51bGwgcG9pbnRlcgogICAg ICAgICAgICAgICAgICAgICAgICAhY2hpbGRyZW5bMF0uZml4ZWRfc2l6ZSkgewogICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fgplbGwvZ3ZhcmlhbnQtdXRpbC5j Ojg2MToyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2knIGlzIG5ldmVyIHJlYWQKICAgICAg ICBpID0gY29udGFpbmVyLT5vZmZzZXRfaW5kZXggLSAxOwogICAgICAgIF4gICB+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KMyB3YXJuaW5ncyBnZW5lcmF0ZWQuCmVsbC9lY2MtZXh0ZXJuYWwu Yzo2ODoyNDogd2FybmluZzogVGhlIGxlZnQgb3BlcmFuZCBvZiAnJicgaXMgYSBnYXJiYWdlIHZh bHVlCiAgICAgICAgcmV0dXJuICh2bGlbYml0IC8gNjRdICYgKCh1aW50NjRfdCkgMSA8PCAoYml0 ICUgNjQpKSk7CiAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+IF4KZWxsL2VjYy1leHRlcm5h bC5jOjE2MDoxODogd2FybmluZzogVGhlIHJpZ2h0IG9wZXJhbmQgb2YgJy0nIGlzIGEgZ2FyYmFn ZSB2YWx1ZQogICAgICAgICAgICAgICAgZGlmZiA9IGxlZnRbaV0gLSByaWdodFtpXSAtIGJvcnJv dzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn4KMiB3YXJuaW5ncyBn ZW5lcmF0ZWQuCnRvb2xzL3BhcnNlci9oY2kuYzogSW4gZnVuY3Rpb24g4oCYbGVfbWV0YV9ldl9k dW1w4oCZOgp0b29scy9wYXJzZXIvaGNpLmM6MzY2MToxNTogZXJyb3I6IGNvbXBhcmlzb24gaXMg YWx3YXlzIHRydWUgZHVlIHRvIGxpbWl0ZWQgcmFuZ2Ugb2YgZGF0YSB0eXBlIFstV2Vycm9yPXR5 cGUtbGltaXRzXQogMzY2MSB8ICBpZiAoc3ViZXZlbnQgPj0gMCAmJiBzdWJldmVudCA8PSBMRV9F Vl9OVU0pIHsKICAgICAgfCAgICAgICAgICAgICAgIF5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5n IHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6NzU0NTogdG9vbHMvcGFy c2VyL2hjaS5vXSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpv YnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDQ4MjogYWxsXSBFcnJvciAyCgoKLS0tClJlZ2Fy ZHMsCkxpbnV4IEJsdWV0b290aAoK --===============6603593386444459237==--