From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D0680D6DDE0 for ; Fri, 15 Nov 2024 07:37:24 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tBqrn-00009Q-6s; Fri, 15 Nov 2024 02:35:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tBqrY-00008I-UT for grub-devel@gnu.org; Fri, 15 Nov 2024 02:35:31 -0500 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tBqrR-0008Rt-Co for grub-devel@gnu.org; Fri, 15 Nov 2024 02:35:27 -0500 Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-53d9ff92b14so1544471e87.1 for ; Thu, 14 Nov 2024 23:35:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1731656116; x=1732260916; darn=gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=vzy0d5VoG7BbfGhJOidtTxtzxOsJyCSoAVEZbYrVeW8=; b=DvEkwXUfrV6BSHMvBn6flQ5FDEJ5Vp+vBrkQA+XuHmKnpUAuyMcAdK4Nr7Zs8eMoTJ PEcfQhL8/Ge+l/V7FnvfKCsyYb2Q8ctBvJsV5H9at5pIkT80nI6a61flIAdjGy/SYOZr F9zMoaL6AhLcH7FH5Fq5msjkLLUKwl8JLMjDfOVmjhyIpV/5Nuc2x5ZqWQvNnulOHhPy oBU5ZJuJNgKj7FcWg1k58CMVjB3IrI2JTWr1D5JXHLPU81hZ0cOv9tzLaxhNTuPqGnZx SUFs1COe44+1D6ZyV6MBkvWT8qeIrzXLLuDEnB5GFKTa5ENp4ynSfDfRnq/pkgl+NsNN ZIEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731656116; x=1732260916; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=vzy0d5VoG7BbfGhJOidtTxtzxOsJyCSoAVEZbYrVeW8=; b=p8OmKnu05wdimFJw9RhYQ687tZYC9+n99EkxwRli2KFOWD0jXNFxZ6miIgRZdcMphw jM45m3/ZMgHWSPgDfPBeE1becwIXsQLVzoxduJcprZb0bV/LlF5e3NwehZ0Thim4TWR5 td5K0Pckx/mxRvIYwkSqHSMmVRbyUbXFWKpJSVcswV8fUTGg/1pudPySdzuoeME5d4j4 5vVtbImsAhTvnipJ7OrgW2PICLDgVbNK24ZvXuFkOLRpe7WgCzzciWQQqMxTHj2jJAzZ PzVBVSbhKx8hCjEXRawkzvYVXvS3UzFC20ex1wUhIZwtTASHK02FuJpQqYJFzqWpHfL4 Wm6w== X-Gm-Message-State: AOJu0YxODl7vMwSDy3EgpF+jk8/2roXUSc/bRyPmyJRbGcqzJrgbgyEE PpXqs9r1JFh8DDrozDQJpjGeyotT85H4op4+/Tk/ao1RX21NTKVqi036L1wbSjwKh0trlI3aW7R w X-Google-Smtp-Source: AGHT+IF+kSk4IBGDaoY54ZAHRJGu3ZdcC6ZZrVnNDmhBkAHiCtGhBGo+8wOmvwNCi4+9I+wUfJiFPw== X-Received: by 2002:a05:6512:696:b0:539:968a:9196 with SMTP id 2adb3069b0e04-53dab3bbf56mr509847e87.48.1731656115873; Thu, 14 Nov 2024 23:35:15 -0800 (PST) Received: from localhost (111-240-136-29.dynamic-ip.hinet.net. [111.240.136.29]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-7f8c1c62895sm717791a12.41.2024.11.14.23.35.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Nov 2024 23:35:15 -0800 (PST) To: The development of GNU GRUB Subject: [PATCH v23 00/33] Automatic Disk Unlock with TPM2 Date: Fri, 15 Nov 2024 15:34:28 +0800 Message-ID: <20241115073506.2784-1-glin@suse.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::129; envelope-from=glin@suse.com; helo=mail-lf1-x129.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Gary Lin via Grub-devel Reply-To: The development of GNU GRUB Cc: Gary Lin , Daniel Kiper , Hernan Gatta , Daniel Axtens , shkhisti@microsoft.com, jaskaran.khurana@microsoft.com, christopher.co@microsoft.com, daniel.mihai@microsoft.com, jaredz@redhat.com, development@efficientek.com, jejb@linux.ibm.com, mchang@suse.com, patrick.colp@oracle.com, Stefan Berger , Vladimir Serbinenko Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org R0lUIHJlcG8gZm9yIHYyMzogaHR0cHM6Ly9naXRodWIuY29tL2xjcC9ncnViMi90cmVlL3RwbTIt dW5sb2NrLXYyMwoKVGhpcyBwYXRjaCBzZXJpZXMgaXMgYmFzZWQgb24gIkF1dG9tYXRpYyBUUE0g RGlzayBVbmxvY2siKCoxKSBwb3N0ZWQgYnkKSGVybmFuIEdhdHRhIHRvIGludHJvZHVjZSB0aGUg a2V5IHByb3RlY3RvciBmcmFtZXdvcmsgYW5kIFRQTTIgc3RhY2sKdG8gR1JVQiwgYW5kIHRoaXMg Y291bGQgYmUgYSB1c2VmdWwgZmVhdHVyZSBmb3IgdGhlIHN5c3RlbXMgdG8KaW1wbGVtZW50IGZ1 bGwgZGlzayBlbmNyeXB0aW9uLgoKVG8gc3VwcG9ydCBUUE0gMi4wIEtleSBGaWxlIGZvcm1hdCgq MiksIHBhdGNoIDF+Nyw5LTE3IGFyZSBncmFiYmVkIGZyb20KRGFuaWVsIEF4dGVucydzICJhcHBl bmRlZCBzaWduYXR1cmUgc2VjdXJlIGJvb3Qgc3VwcG9ydCIgKCozKSB0byBpbXBvcnQKbGlidGFz bjEgaW50byBHUlVCLiBCZXNpZGVzLCB0aGUgbGlidGFzbjEgdmVyc2lvbiBpcyB1cGdyYWRlZCB0 bwo0LjE5LjAgaW5zdGVhZCBvZiA0LjE2LjAgaW4gdGhlIG9yaWdpbmFsIHBhdGNoLgoKUGF0Y2gg OCBmaXhlcyBhIHBvdGVudGlhbCBidWZmZXIgb3ZlcnJ1biBpbiBsaWJ0YXNuMS4KKGh0dHBzOi8v Z2l0bGFiLmNvbS9nbnV0bHMvbGlidGFzbjEvLS9pc3N1ZXMvNDkpCgpQYXRjaCAxNyBhZGRzIHRo ZSBkb2N1bWVudCBmb3IgbGlidGFzbjEgYW5kIHRoZSBzdGVwcyB0byB1cGdyYWRlIHRoZQpsaWJy YXJ5LgoKUGF0Y2ggMTl+MjUgYXJlIGJhc2VkIG9uIEhlcm5hbiBHYXR0YSdzIHBhdGNoZXMgd2l0 aCB0aGUgZm9sbG93LXVwIGZpeGVzCmFuZCBpbXByb3ZlbWVudHM6Ci0gQ29udmVydGluZyA4IHNw YWNlcyBpbnRvIDEgdGFiCi0gTWVyZ2luZyB0aGUgbWlub3IgYnVpbGQgZml4IGZyb20gTWljaGFl bCBDaGFuZwogIC0gUmVwbGFjaW5nICJsdSIgd2l0aCAiUFJJdUdSVUJfU0laRSIgZm9yIGdydWJf ZHByaW50ZgogIC0gQWRkaW5nICJlbmFibGUgPSBlZmkiIHRvIHRoZSB0cG0yIG1vZHVsZSBpbiBn cnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYKLSBSZWJhc2luZyAiY3J5cHRvZGlzazogU3VwcG9y dCBrZXkgcHJvdGVjdG9ycyIgdG8gdGhlIGdpdCBtYXN0ZXIKLSBSZW1vdmluZyB0aGUgbWVhc3Vy ZW1lbnQgb24gdGhlIHNlYWxlZCBrZXkKICAtIEJhc2VkIG9uIHRoZSBwYXRjaCBmcm9tIE9sYWYg S2lyY2ggPE9LaXJAc3VzZS5jb20+Ci0gQWRqdXN0aW5nIHRoZSBpbnB1dCBwYXJhbWV0ZXJzIG9m IFRQTTJfRXZpY3RDb250cm9sIHRvIG1hdGNoIHRoZSBvcmRlcgogIGluICJUQ0cgVFBNMiBQYXJ0 MyBDb21tYW5kcyIKLSBEZWNsYXJpbmcgdGhlIGlucHV0IGFyZ3VtZW50cyBvZiBUUE0yIGZ1bmN0 aW9ucyBhcyBjb25zdAotIFJlc2VuZGluZyBUUE0yIGNvbW1hbmRzIG9uIFRQTV9SQ19SRVRSWQot IEFkZGluZyBjaGVja3MgZm9yIHRoZSBwYXJhbWV0ZXJzIG9mIFRQTTIgY29tbWFuZHMKLSBQYWNr aW5nIHRoZSBtaXNzaW5nIGF1dGhvcml6YXRpb24gY29tbWFuZCBmb3IgVFBNMl9QQ1JfUmVhZAot IFR3ZWFraW5nIHRoZSBUUE0yIGNvbW1hbmQgZnVuY3Rpb25zIHRvIGFsbG93IHNvbWUgcGFyYW1l dGVycyB0byBiZQogIE5VTEwgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGRlY2xhcmUgZW1wdHkg dmFyaWFibGVzCi0gVXNpbmcgZ3J1Yl9jcHVfdG9fYmUqKCkgaW4gdGhlIFRQTTIgc3RhY2sgaW5z dGVhZCBvZiBncnViX3N3YXBfYnl0ZXMqKCkKICB3aGljaCBtYXkgY2F1c2UgcHJvYmxlbXMgaW4g YmlnLWluZGlhbiBtYWNoaW5lcwotIENoYW5naW5nIHRoZSBzaG9ydCBuYW1lIG9mICItLXByb3Rl Y3RvciIgb2YgImNyeXB0b21vdW50IiBmcm9tICItayIgdG8KICAiLVAiIHRvIGF2b2lkIHRoZSBj b25mbGljdCB3aXRoICItLWtleS1maWxlIgotIFN1cHBvcnRpbmcgVFBNIDIuMCBLZXkgRmlsZSBG b3JtYXQgYmVzaWRlcyB0aGUgcmF3IHNlYWxlZCBrZXkKLSBBZGRpbmcgdGhlIGV4dGVybmFsIGxp YnRhc24xIGRlcGVuZGVuY3kgdG8gZ3J1Yi1wcm90ZWN0IHRvIHdyaXRlIHRoZQogIFRQTSAyLjAg S2V5IGZpbGVzCi0gRXh0ZW5kaW5nIHRoZSBUUE0yIFRTUyBzdGFjayB0byBzdXBwb3J0IGF1dGhv cml6ZWQgcG9saWN5CgpQYXRjaCAyNiBpbXBsZW1lbnRzIHRoZSBhdXRob3JpemVkIHBvbGljeSBz dXBwb3J0LgoKUGF0Y2ggMjcgaW1wbGVtZW50cyB0aGUgbWlzc2luZyBOViBpbmRleCBtb2RlLiAo VGhhbmtzIHRvIFBhdHJpY2sgQ29scCkKClBhdGNoIDI4IGltcHJvdmVzIHRoZSAnY3J5cHRvbW91 bnQnIGNvbW1hbmQgdG8gZmFsbCBiYWNrIHRvIHRoZQpwYXNzcGhyYXNlIG1vZGUgd2hlbiB0aGUg a2V5IHByb3RlY3RvciBmYWlscyB0byB1bmxvY2sgdGhlIGVuY3J5cHRlZApwYXJ0aXRpb24uIChB bm90aGVyIHBhdGNoIGZyb20gUGF0cmljayBDb2xwKQoKUGF0Y2ggMjkgYW5kIDMwIGZpeCB0aGUg cG90ZW50aWFsIHNlY3VyaXR5IGlzc3VlcyBzcG90dGVkIGJ5IEZhYmlhbiBWb2d0LgoKUGF0Y2gg MzEgYW5kIDMyIGltcGxlbWVudCB0aGUgVFBNMiBrZXkgdW5zZWFsaW5nIHRlc3RjYXNlcy4KClBh dGNoIDMzIGRvY3VtZW50cyBUUE0yIGtleSBwcm90ZWN0b3IgaW5jbHVkaW5nIHRoZSBuZXcgR1JV QiBjb21tYW5kcyBhbmQKdGhlIHVzZXItc3BhY2UgdXRpbGl0eS4KClRvIHV0aWxpemUgdGhlIFRQ TTIga2V5IHByb3RlY3RvciB0byB1bmxvY2sgdGhlIGVuY3J5cHRlZCBwYXJ0aXRpb24KKHNkYjEp LCBoZXJlIGFyZSB0aGUgc2FtcGxlIHN0ZXBzOgoKMS4gQWRkIGFuIGV4dHJhIHJhbmRvbSBrZXkg Zm9yIExVS1MgKGx1a3Mta2V5KQogICAkIGRkIGlmPS9kZXYvdXJhbmRvbSBvZj1sdWtzLWtleSBi cz0xIGNvdW50PTMyCiAgICQgc3VkbyBjcnlwdHNldHVwIGx1a3NBZGRLZXkgL2Rldi9zZGIxIGx1 a3Mta2V5IC0tcGJrZGY9cGJrZGYyCgoyLiBTZWFsIHRoZSBrZXkKICAgJCBzdWRvIGdydWItcHJv dGVjdCAtLWFjdGlvbj1hZGQgXAogICAgICAgICAgICAgICAgICAgICAgIC0tcHJvdGVjdG9yPXRw bTIgXAogICAgICAgICAgICAgICAgICAgICAgIC0tdHBtMmtleSBcCiAgICAgICAgICAgICAgICAg ICAgICAgLS10cG0yLWtleWZpbGU9bHVrcy1rZXkgXAogICAgICAgICAgICAgICAgICAgICAgIC0t dHBtMi1vdXRmaWxlPS9ib290L2VmaS9lZmkvZ3J1Yi9zZWFsZWQudHBtCgozLiBVbnNlYWwgdGhl IGtleSB3aXRoIHRoZSBwcm9wZXIgY29tbWFuZHMgaW4gZ3J1Yi5jZmc6CiAgIHRwbTJfa2V5X3By b3RlY3Rvcl9pbml0IC0tdHBtMmtleT0oaGQwLGdwdDEpL2VmaS9ncnViL3NlYWxlZC50cG0KICAg Y3J5cHRvbW91bnQgLXUgPFNEQjFfVVVJRD4gLVAgdHBtMgoKKCoxKSBodHRwczovL2xpc3RzLmdu dS5vcmcvYXJjaGl2ZS9odG1sL2dydWItZGV2ZWwvMjAyMi0wMi9tc2cwMDAwNi5odG1sCigqMikg aHR0cHM6Ly93d3cuaGFuc2VucGFydG5lcnNoaXAuY29tL2RyYWZ0LWJvdHRvbWxleS10cG0yLWtl eXMuaHRtbAooKjMpIGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvZ3J1Yi1kZXZl bC8yMDIxLTA2L21zZzAwMDQ0Lmh0bWwKCnYyMzoKLSBGaXhpbmcgdGhlIHR5cGUgb2YgdGhlIG1l bWJlciwgY291bnQsIG9mIFRQTUxfRElHRVNUX1ZBTFVFU190Ci0gRml4aW5nIHRoZSB0cG0yX2No YW5nZWF1dGggY29tbWFuZCBpbiB0aGUgZG9jdW1lbnQKCnYyMjoKLSBodHRwczovL2xpc3RzLmdu dS5vcmcvYXJjaGl2ZS9odG1sL2dydWItZGV2ZWwvMjAyNC0xMS9tc2cwMDA5NC5odG1sCi0gR0lU IHJlcG86IGh0dHBzOi8vZ2l0aHViLmNvbS9sY3AvZ3J1YjIvdHJlZS90cG0yLXVubG9jay12MjIK LSBDaGFuZ2luZyBUUE1fTUFYX1BDUlMgZnJvbSAzMiB0byAyNCBzaW5jZSBtb3N0IG9mIFRQTSAy LjAKICBpbXBsZW1lbnRhdGlvbnMgaGF2ZSAyNCBQQ1JzCi0gRml4aW5nIHRoZSBQQ1IgbnVtYmVy IGNoZWNrCi0gRml4aW5nIHRoZSB0eXBlcyBvZiB0cG0yX2V2aWN0IGFuZCB0cG0yX3RwbTJrZXkg aW4gcHJvdGVjdF9hcmdzX3QKLSBSZW1vdmluZyBTZWFCSU9TIGZyb20gdGhlIGRvY3VtZW50IHNp bmNlIHRoZXJlIGlzIG5vIHBsYW4gdG8gc3VwcG9ydAogIFNlYUJJT1MgeWV0Ci0gRml4aW5nIGFu IGVycm9yIG1lc3NhZ2UgYW5kIGEgY29kaW5nIHN0eWxlIGVycm9yIGluIGdydWItcHJvdGVjdAot IFVwZGF0aW5nIHRoZSBkb2N1bWVudAogIC0gVmFyaW91cyB0eXBvIGZpeGVzCiAgLSBBZGRyZXNz aW5nIHRoYXQgdGhlIFRQTTIga2V5IHByb3RlY3RvciBkb2Vzbid0IGV4cGVjdCB0aGUgcGFzc3dv cmQKICAgIHByb3RlY3Rpb24gZm9yIHRoZSBvd25lciBoaWVyYXJjaHkKCnYyMToKLSBodHRwczov L2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2dydWItZGV2ZWwvMjAyNC0xMS9tc2cwMDAxOS5o dG1sCi0gR0lUIHJlcG86IGh0dHBzOi8vZ2l0aHViLmNvbS9sY3AvZ3J1YjIvdHJlZS90cG0yLXVu bG9jay12MjEKLSBVcGRhdGluZyB0aGUgY29tbWl0IG1lc3NhZ2Ugb2YgYSBhc24xIHRlc3QgcGF0 Y2gKLSBsaWJ0YXNuMSBwYXRjaGVzIGFyZSBjcmVhdGVkIGJ5IHRoZSBmb2xsb3dpbmcgcmVwbyBh Z2FpbnN0IHRoZQogIGxpYnRhc24xLTQuMTkuMC1iYXNlLXY1IHRhZzoKICBodHRwczovL2dpdGh1 Yi5jb20vbGNwL2dydWIyL3RyZWUvaW1wb3J0LWxpYnRhc24xLTQuMTkuMC12NQotIEFkZGluZyB0 aGUgVFBNIHJlc3BvbnNlIGhlYWRlciBzdHJ1Y3QgdG8gY2FsY3VsYXRlIHRoZSBtaW5pbXVtIHNp emUgb2YKICB0aGUgVFBNIDIuMCByZXNwb25zZQotIEZpeGluZyB0aGUgZ3J1Yl9lcnJvciBtZXNz YWdlcwotIE1hcmtpbmcgc29tZSBlcnJvciBtZXNzYWdlcyBmb3IgdHJhbnNsYXRpb24KLSBBZGRp bmcgJ2V4dGVybicgdG8gdGhlIGdsb2JhbCBmdW5jdGlvbnMgb2YgdGhlIHRwbTIga2V5IHByb3Rl Y3RvcgotIFVwZGF0aW5nIGdydWItcHJvdGVjdAogIC0gQWRkaW5nIG1vcmUgZXJyb3IgbWVzc2Fn ZXMKICAtIENvbW1lbnRpbmcgaWQtc2VhbGVka2V5IE9JRAogIC0gQW1lbmRpbmcgdGhlIGFyZ3Vt ZW50IHZlcmlmaWNhdGlvbiBmdW5jdGlvbgogIC0gRml4aW5nIGEgY29tbWVudAogIC0gRml4aW5n IHRoZSBleGl0IHZhbHVlCi0gVXBkYXRpbmcgdGhlIGRvY3VtZW50Cgp2MjA6Ci0gaHR0cHM6Ly9s aXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ncnViLWRldmVsLzIwMjQtMTAvbXNnMDAyNjYuaHRt bAotIEdJVCByZXBvOiBodHRwczovL2dpdGh1Yi5jb20vbGNwL2dydWIyL3RyZWUvdHBtMi11bmxv Y2stdjIwCi0gUmVhcnJhbmdpbmcgdGhlIG9yZGVyIG9mIHRoZSBsaWJ0YXNuMSBwYXRjaGVzCi0g bGlidGFzbjEgcGF0Y2hlcyBhcmUgY3JlYXRlZCBieSB0aGUgZm9sbG93aW5nIHJlcG8gYWdhaW5z dCB0aGUKICBsaWJ0YXNuMS00LjE5LjAtYmFzZS12NCB0YWc6CiAgaHR0cHM6Ly9naXRodWIuY29t L2xjcC9ncnViMi90cmVlL2ltcG9ydC1saWJ0YXNuMS00LjE5LjAtdjQKLSBFeGNsdWRpbmcgYSBs aWJ0YXNuMSB0ZXN0Y2FzZSB0byBhdm9pZCBhIHBvdGVudGlhbCBnY2Mgd2FybmluZyB3aGVuCiAg J2xvbmcnIGlzIHRoZSBzYW1lIGFzICdpbnQnCi0gUmVwbGFjaW5nIGdydWJfc3dhcF9ieXRlczMy KCkgd2l0aCBncnViX2NwdV90b19iZTMyKCkgdG8gbWFrZSB0aGUgVFBNCiAgY29tbWFuZCBzaXpl IGFsd2F5cyBiaWcgZW5kaWFuCi0gQ29ycmVjdGluZyB0aGUgR1JVQiBwYXRoIGluIHRoZSBjb21t aXQgbWVzc2FnZXMgYW5kIHRoZSBkb2N1bWVudAogIC0gIi9lZmkvZ3J1YjIiID0+ICIvZWZpL2dy dWIiCiAgLSAiL2Jvb3QvZWZpL2Jvb3QvZ3J1YjIiID0+ICIvYm9vdC9lZmkvZWZpL2dydWIvIgog IC0gIihoZDAsZ3B0MSkvYm9vdC9ncnViMi8iID0+ICIoaGQwLGdwdDEpL2VmaS9ncnViIgotIFJl bW92aW5nIHRoZSB1bm5lY2Vzc2FyeSAiZ3J1Yl9lcnJubyA9IEdSVUJfRVJSX05PTkU7IgotIFJl cGxhY2luZyAnbHUnIHdpdGggJ1BSSXVHUlVCX1VJTlQ2NF9UJyB3aGVuIHNldHRpbmcgdGhlIGVy cm9yCiAgbWVzc2FnZSBmb3IgJ3VpbnQ2NF90JyB0byBhdm9pZCB0aGUgcG9ydGFiaWxpdHkgaXNz dWUKLSBSZW1vdmluZyB0aGUgJ2dydWJfJyBhbmQgJ0dSVUJfJyBwcmVmaXhlcyBmcm9tIHRoZSBs b2NhbCB0eXBlcywKICBmdW5jdGlvbnMsIGFuZCB2YXJpYWJsZXMKLSBEb2N1bWVudGluZyB0aGUg b3B0aW9uICctUCcgZm9yICdjcnlwdG9tb3VudCcKLSBGaXhpbmcgY29kaW5nIHN0eWxlIGlzc3Vl cwotIFJlbW92aW5nIHRoZSB1bnVzZWQgaGVhZGVycyBmcm9tIGdydWItY29yZS9saWIvdHNzMi90 Y2cyX2VtdS5jCi0gVXBkYXRpbmcgdGhlIFRQTTIga2V5IHByb3RlY3RvciBpbiB1c2VyIG1hbnVh bAoKdjE5OgotIGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvZ3J1Yi1kZXZlbC8y MDI0LTA5L21zZzAwMDU1Lmh0bWwKLSBHSVQgcmVwbzogaHR0cHM6Ly9naXRodWIuY29tL2xjcC9n cnViMi90cmVlL3RwbTItdW5sb2NrLXYxOQotIFVwZGF0aW5nIHRoZSBjb3Zlcml0eSByZXBvcnQg Zm9yIGxpYnRhc24xCi0gU3BsaXR0aW5nIHRoZSBzdHJjYXQoKSBwYXRjaCBmb3IgbGlidGFzbjEK LSBBZGRyZXNzaW5nIHdoeSB0aGUgaGVhZGVyIHBhdGhzIGFyZSBhZGp1c3RlZCBpbiBsaWJ0YXNu MS5oCi0gRml4aW5nIHRoZSBvcmRlciBvZiB0aGUgY29weXJpZ2h0IGhlYWRlcnMKLSBCcmVha2lu ZyBkb3duIHRoZSBwYXRjaCBmb3IgYXNuMSB0ZXN0cyBpbnRvIHRoZSBzbWFsbGVyIHBhdGNoZXMK LSBsaWJ0YXNuMSBwYXRjaGVzIGFyZSBjcmVhdGVkIGJ5IHRoZSBmb2xsb3dpbmcgcmVwbyBhZ2Fp bnN0IHRoZQogIGxpYnRhc24xLTQuMTkuMC1iYXNlLXYzIHRhZzoKICBodHRwczovL2dpdGh1Yi5j b20vbGNwL2dydWIyL3RyZWUvaW1wb3J0LWxpYnRhc24xLTQuMTkuMC12MwotIE1hcmtpbmcgdGhl ICdleHRlcm4nIGZ1bmN0aW9ucwotIEFtZW5kaW5nIHRoZSBzdHJpbmcgbGVuZ3RoIGNoZWNrcwot IFVubWFya2luZyB0aGUgdGVjaG5pY2FsIHN0cmluZ3MgZm9yIHRyYW5zbGF0aW9uCi0gRml4aW5n IG1vcmUgbGluZSBmb2xkaW5ncyBhbmQgY29kaW5nIHN0eWxlIGlzc3VlcwotIFJlbmFtaW5nIHRo ZSBUUE0yIHR5cGVzIHRvIGFkZCB0aGUgJ190JyBwb3N0Zml4IGZvciB0eXBlZGVmcwotIEFkZGlu ZyB0aGUgJ2dydWJfJyBwcmVmaXggdG8gdGhlIGdsb2JhbCBmdW5jdGlvbnMgZnJvbSB0c3MyIGFu ZAogIHJlbW92aW5nIHRoZSAnZ3J1Yl8nIHByZWZpeCBmcm9tIHRoZSBsb2NhdGlvbiBmdW5jdGlv bnMKLSBBZGRpbmcgbW9yZSBjb21tZW50cyBhYm91dCB0aGUgcGFzc3BocmFzZSBmYWxsYmFjawot IFNpbXBseWluZyB0aGUgZGlza2ZpbHRlciBjaGVjawotIERvY3VtZW50aW5nIFRQTTIga2V5IHBy b3RlY3RvciBpbiB0aGUgdXNlciBtYW51YWwKCnYxODoKLSBodHRwczovL2xpc3RzLmdudS5vcmcv YXJjaGl2ZS9odG1sL2dydWItZGV2ZWwvMjAyNC0wNi9tc2cwMDIyOC5odG1sCi0gR0lUIHJlcG86 IGh0dHBzOi8vZ2l0aHViLmNvbS9sY3AvZ3J1YjIvdHJlZS90cG0yLXVubG9jay12MTgKLSBVcGRh dGluZyB0aGUgc3RlcHMgdG8gaW1wb3J0IGxpYnRhc24xCiAgLSBJbXBvcnRpbmcgdGVzdCBjYXNl cyBmcm9tIGxpYnRhc24xIGFuZCB0aGVuIGFwcGx5aW5nIHRoZSBmb2xsb3ctdXAKICAgIHBhdGNo IGJ5IGF1dG9nZW4uc2gKICAtIFRoZSBwYXRjaCBmaWxlcyBpbiBwYXRjaCAzfjggYXJlIGNyZWF0 ZWQgd2l0aCB0aGUgZm9sbG93aW5nIHJlcG8KICAgIGFnYWluc3QgdGhlIGxpYnRhc24xLTQuMTku MC1iYXNlLXYyIHRhZzoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9sY3AvZ3J1YjIvdHJlZS9pbXBv cnQtbGlidGFzbjEtNC4xOS4wLXYyCi0gU3BsaXR0aW5nIHRoZSBncnViIGNvbXBhdGliaWxpdHkg cGF0Y2ggZm9yIGxpYnRhc24xCi0gTW92aW5nIHRoZSBUU1MyIGNvZGUgdG8gZ3J1Yi1jb3JlL2xp Yi90c3MyIGFuZCByZW5hbWluZwogIGdydWJfdHBtMl9tdV8qKCkgZnVuY3Rpb25zIHRvIGdydWJf VHNzMl9NVV8qKCkKLSBTcGxpdHRpbmcgdGhlIFRTUzIgcGF0Y2ggaW50byAzIHBhdGNoZXMKLSBG aXhpbmcgdGhlIHR5cGVzIG9mIFRQTUFfU0VTU0lPTiwgVFBNQV9PQkpFQ1QsIGFuZCBUUE1BX0xP Q0FMSVRZIAotIFJlbmFtaW5nIHRoZSB0cG0yIG1vZHVsZSB0byB0cG0yX2tleV9wcm90ZWN0b3IK LSBBZGRpbmcgbW9yZSBjb21tZW50cyB0byBhc24xX3JlYWRfdWludDMyKCkgYW5kIGRlZmluaW5n IHRoZSBsb3dlciBhbmQKICB1cHBlciBib3VuZHMgZm9yIHRwbTJrZXkgZWxlbWVudHMKICAtIEFs c28gZml4aW5nIGEgYnVnIHRoYXQgYWxsb3dzIDEwMCBlbGVtZW50cyBpbiB0aGUga2V5IGZpbGUK LSBGaXhpbmcgdGhlIGNvcHlyaWdodCBoZWFkZXJzCi0gRml4aW5nIHRoZSBjb2Rpbmcgc3R5bGUK CnYxNzoKLSBodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2dydWItZGV2ZWwvMjAy NC0wNi9tc2cwMDEwOC5odG1sCi0gR0lUIHJlcG86IGh0dHBzOi8vZ2l0aHViLmNvbS9sY3AvZ3J1 YjIvdHJlZS90cG0yLXVubG9jay12MTcKLSBGaXhpbmcgdGhlIG1pc3Npbmcgc3BhY2UgaW4gc3Ry bmNhdCgpCi0gVXBkYXRpbmcgdGhlIHN0ZXBzIHRvIGltcG9ydCBsaWJ0YXNuMQotIE1vdmluZyBs aWJ0YXNuMS5oIHRvIGdydWItY29yZS9saWIvbGlidGFzbjEvIGFuZCBmaXhpbmcgdGhlIGFmZmVj dGVkCiAgcGF0Y2hlcwogIC0gbGlidGFzbjEuaCBpcyBpbmNsdWRlZCBpbiB0cG0ya2V5LmgsIHNv IHRoZXJlIGlzIG5vIG5lZWQgdG8gaW5jbHVkZQogICAgdGhlIGhlYWRlciBhZ2FpbiBpbiBtb2R1 bGUuYyBhbmQgdHBtMmtleS5jLiAKLSBBcHBseWluZyB0aGUgbGlidGFzbjEgcGF0Y2hlcyBpbiBh IGRpZmZlcmVudCB3YXkKICAtIEluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoZXMgZGlyZWN0 bHkgaW4gdGhlIGdydWIyIHNvdXJjZSBjb2RlLAogICAgbGlidGFzbjEgaXMgY29waWVkIHRvIGdy dWItY29yZS9saWIvbGlidGFzbjEtZ3J1YiBieSBhdXRvZ2VuLnNoIGFuZAogICAgdGhlbiB0aGUg c2NyaXB0IGFwcGxpZXMgdGhlIGxpYnRhc24xIHBhdGNoZXMgdG8gbGlidGFzbjEtZ3J1Yi4KICAt IFRoZSBwYXRjaCBmaWxlcyBpbiBwYXRjaCAzLCA0LCBhbmQgNSBhcmUgY3JlYXRlZCBieSB0aGUg Zm9sbG93aW5nCiAgICByZXBvIGFnYWluc3QgdGhlIGxpYnRhc24xLTQuMTkuMC1iYXNlIHRhZy4K ICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9sY3AvZ3J1YjIvdHJlZS9pbXBvcnQtbGlidGFzbjEtNC4x OS4wCi0gQ29ycmVjdGluZyB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIHRwbTJfdGVzdCBjb21taXQg dG8gcmVwbGFjZQogIHN3dHBtX2N1c2Ugd2l0aCAic3d0cG0gY2hhcmRldiIKCnYxNjoKLSBodHRw czovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2dydWItZGV2ZWwvMjAyNC0wNS9tc2cwMDA5 My5odG1sCi0gR0lUIHJlcG86IGh0dHBzOi8vZ2l0aHViLmNvbS9sY3AvZ3J1YjIvdHJlZS90cG0y LXVubG9jay12MTYKLSBSZWJhc2luZyBwYXRjaCA2LCAxMiwgYW5kIDE2IHRvIGZpeCB0aGUgY29u ZmxpY3RzIHdpdGggdGhlIGxhdGVzdAogIG1hc3RlciBicmFuY2gKLSBDaGFuZ2VzIGluIGNyeXB0 b2Rpc2s6CiAgLSBEaXNhbGxvd2luZyB0aGF0IGJvdGggT1BUSU9OX0tFWUZJTEUgYW5kIE9QVElP Tl9QUk9URUNUT1IgYXJlIHNldAogICAgc2luY2UgdGhlIGtleSBkYXRhIGZvciAiLS1rZXktZmls ZSIgd291bGQgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIGtleQogICAgcHJvdGVjdG9ycwogIC0gUmVz ZXR0aW5nIHRoZSBjYXJncyBrZXkgZGF0YSB3aGVuIHRoZSBrZXkgZnJvbSBhIGtleSBwcm90ZWN0 b3IKICAgIGRvZXNuJ3Qgd29yayBmb3IgdGhlIGRpc2sgdG8gZW5zdXJlIHRoZSBwYXNzcGhyYXNl IHByb21wdCB3aWxsIGJlCiAgICB0cmlnZ2VyZWQgbGF0ZXIKICAtIEFkZGluZyB0aGUgY29tbWVu dCB0byBhZGRyZXNzIHdoeSBncnViX2Vycm5vIGlzIG9ubHkgY2xlYXJlZCBmb3IKICAgIGNhcmdz LT5rZXlfbGVuID09IDAKCnYxNToKLSBodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1s L2dydWItZGV2ZWwvMjAyNC0wNS9tc2cwMDA1OS5odG1sIAotIEdJVCByZXBvOiBodHRwczovL2dp dGh1Yi5jb20vbGNwL2dydWIyL3RyZWUvdHBtMi11bmxvY2stdjE1Ci0gQ2hhbmdlcyBpbiB0cG0y X3Rlc3QKICAtIFF1b3RpbmcgdGhlIHZhcmlhYmxlcyB3aGljaCBjb250YWluIGZpbGUgcGF0aHMK ICAtIENvcnJlY3RpbmcgdGhlIGV4aXQgY29kZSBmb3Igc2V2ZXJhbCBjb21tYW5kcwogIC0gV3Jp dGluZyB0aGUgdmVyaWZpY2F0aW9uIHRleHQgZGlyZWN0bHkgaW50byB0aGUgTFVLUyBkZXZpY2UK ICAtIEFtZW5kaW5nIHRoZSB3YWl0aW5nIGxvb3AgZm9yIHN3dHBtCiAgLSBSZXBsYWNpbmcgZXhp dCB3aXRoIHJldHVybiBpbiB0cG0yX3NlYWxfdW5zZWFsKCkgYW5kCiAgICB0cG0yX3NlYWxfdW5z ZWFsX252KCkKICAtIENvbGxlY3RpbmcgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBTUksgbW9kZSB0 ZXN0Y2FzZXMgaW4gYW4gYXJyYXkKICAgIGFuZCBpbnZva2luZyB0cG0yX3NlYWxfdW5zZWFsKCkg d2l0aCBhIGZvciBsb29wCiAgLSBNb3ZpbmcgdGhlIHRwbTItdG9vbHMgY29tbWFuZHMgZm9yIHRo ZSBOViBpbmRleCBtb2RlIHRvIGEgc2VwYXJhdGUKICAgIGZ1bmN0aW9uICAKICAtIFVzaW5nIHRw bTJfZXZpY3Rjb250cm9sIHRvIHJlbW92ZSB0aGUgb2JqZWN0IGZyb20gdGhlIE5WIGluZGV4IHRv CiAgICBtYXRjaCB0aGUga2V5IHNlYWxpbmcgY29tbWFuZHMKICAtIFByaW50aW5nIHRoZSB0ZXN0 IHJlc3VsdHMKICAtIFByaW50aW5nIGVycm9yIG1lc3NhZ2VzIHRvIHN0ZGVycgoKdjE0OgotIGh0 dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvZ3J1Yi1kZXZlbC8yMDI0LTA1L21zZzAw MDExLmh0bWwKLSBHSVQgcmVwbzogaHR0cHM6Ly9naXRodWIuY29tL2xjcC9ncnViMi90cmVlL3Rw bTItdW5sb2NrLXYxNAotIEFkZHJlc3NpbmcgdGhlIGxpYnRhc24xIHBhdGNoZXMgbW9yZSBpbiB0 aGUgZG9jdW1lbnQKLSBWYXJpb3VzIGltcHJvdmVtZW50cyBpbiB0cG0yX3Rlc3QKICAtIFZlcmlm eWluZyB0aGUgdGVzdCBpbnNpZGUgdGhlIExVS1MgZGV2aWNlCiAgLSBJbXByb3ZpbmcgdGhlIHJl dHVybiBzdGF0dXMgY2hlY2tzIGFuZCB0aGUgd2FpdGluZyBsb29wIGZvciBzd3RwbQogIC0gRml4 aW5nIHRoZSBwb3J0YWJpbGl0eSBpc3N1ZXMKICAtIE1ha2luZyBhbGwgdmFyaWFibGVzIGJyYWNl ZAotIFJlbmFtaW5nIGdydWItZW11LW9wdHMgdG8gLS1lbXUtb3B0cyAoZ3J1Yi1zaGVsbCkKCnYx MzoKLSBodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2dydWItZGV2ZWwvMjAyNC0w NC9tc2cwMDE1NS5odG1sCi0gR0lUIHJlcG86IGh0dHBzOi8vZ2l0aHViLmNvbS9sY3AvZ3J1YjIv dHJlZS90cG0yLXVubG9jay12MTMKLSBGaXhpbmcgdHlwb3MgYW5kIGEgZmV3IG11bHRpLWxpbmUg Y29tbWVudHMKLSBJbXByb3ZpbmcgdGhlIGNvbmRpdGlvbmFsIGNoZWNrcyBmb3IgdGhlIGFyZ3Vt ZW50cyBvZgogIHRwbTJfa2V5X3Byb3RlY3Rvcl9pbml0IAotIFVwZGF0aW5nIHRvIHRoZSBsYXRl c3QgVFBNIDIuMCBLZXkgRmlsZSBmb3JtYXQKICAtIEFkZGluZyB0aGUgbmV3IG9wdGlvbmFsIGZp ZWxkczogZGVzY3JpcHRpb24gYW5kIHJzYVBhcmVudAogIC0gSGFuZGxpbmcgInJzYVBhcmVudCA9 PSBUUlVFIiB3aGVuIHVuc2VhbGluZyB0aGUgdHBtMmtleQogIC0gU2V0dGluZyAicnNhUGFyZW50 IiB0byAiVFJVRSIgd2hlbiBzZWFsaW5nIHRoZSBrZXkgd2l0aCBSU0EgU1JLCi0gUmVtb3Zpbmcg bm9uLXN0YW5kYXJkIFNSS3M6IFJTQTMwNzIsIFJTQTQwOTYsIEVDQ19OSVNUX1AzODQsCiAgRUND X05JU1RfUDUyMSwgYW5kIEVDQ19TTTJfUDI1NgotIEFkZGluZyBtb3JlIGVycm9yIG1lc3NhZ2Vz IHRvIGdydWItcHJvdGVjdAotIEltcHJvdmluZyB0aGUgZXJyb3IgY2hlY2tpbmcgZm9yIHRoZSBz d3RwbSBjaGFyZGV2IGluc3RhbmNlCi0gRXhpdGluZyB0aGUgdHBtMl90ZXN0IHNjcmlwdCBpZiBn cnViLXByb3RlY3QgZmFpbGVkIHRvIHNlYWwgdGhlIGtleSAgIAoKdjEyOgotIGh0dHBzOi8vbGlz dHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvZ3J1Yi1kZXZlbC8yMDI0LTA0L21zZzAwMTA4Lmh0bWwK LSBHSVQgcmVwbzogaHR0cHM6Ly9naXRodWIuY29tL2xjcC9ncnViMi90cmVlL3RwbTItdW5sb2Nr LXYxMgotIEZpeGluZyB0eXBvcyBhbmQgaW5kZW50YXRpb24KLSBSZW1vdmluZyB0aGUgdW51c2Vk IFRQTSBjb21tYW5kczogVFBNMl9IYXNoU2VxdWVuY2VTdGFydCwKICBUUE0yX1NlcXVlbmNlVXBk YXRlLCBhbmQgVFBNMl9TZXF1ZW5jZUNvbXBsZXRlLAotIEZvbGxvd2luZyB0aGUgVENHIEVLIHRl bXBsYXRlcyB0byBzZXQgdGhlIHBhcmFtZXRlcnMgb2YgU1JLCi0gUmVtb3ZpbmcgRUNDX0JOX1Ay NTYgYW5kIEVDQ19CTl9QNjM4IGZyb20gdGhlIFNSSyBhbGdvcml0aG0gbGlzdCBzaW5jZQogIHRo b3NlIHR3byBhbGdvcml0aG1zIGFyZSBub3QgbWVudGlvbmVkIGluIHRoZSBUQ0cgRUsgdGVtcGxh dGVzCi0gVXBkYXRpbmcgdGhlIGhlbHAgbWVzc2FnZXMgb2YgdGhlIHRwbTIgbW9kdWxlIGFuZCBn cnViLXByb3RlY3QKLSBSZW1vdmluZyB0aGUgdW5uZWNlc3NhcnkgTlVMTCBjaGVja3MKLSBBZGRp bmcgdGhlIG1hbnBhZ2UgZm9yIGdydWItcHJvdGVjdAotIFJlcGxhY2luZyBncnViX2NyeXB0b19o YXNoKCkgd2l0aCBUUE0yX0hhc2goKSBpbiBncnViLXByb3RlY3QgdG8KICBzdXBwb3J0IFNIQTM4 NCBQQ1IgYmFua3MKLSBVc2luZyAnc3d0cG0gY2hhcmRldicgdG8gc3RhcnQgc3d0cG0gaW5zdGVh ZCBvZiAnc3d0cG1fY3VzZScgc2luY2UKICBzb21lIGRpc3Ryb3MgbWF5IG5vdCBidWlsZCBzd3Rw bSB3aXRoIGN1c2UKLSBBZGRpbmcgYSBuZXcgdGVzdGNhc2Ugd2l0aG91dCBzcGVjaWZ5aW5nIHRo ZSBTUksgdHlwZSB0byB0ZXN0IHRoZQogIGRlZmF1bHQgU1JLIHNldHRpbmdzCi0gQW1lbmRpbmcg dHBtMl90ZXN0IHRvIHJlbW92ZSB0aGUgZHVwbGljYXRlIGVycm9yIGNoZWNraW5nIGNvZGUKLSBT aWxlbmNpbmcgdGhlIHRwbTItdG9vbHMgY29tbWFuZHMgaW4gdHBtMl90ZXN0Ci0gRml4aW5nIHRo ZSBleGl0IHRyYXAgb2YgdHBtMl90ZXN0IHRvIHJlbW92aW5nIHRoZSB3b3JraW5nIGRpcmVjdG9y eQogIG9uIHN1Y2Nlc3MKCnYxMToKLSBodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1s L2dydWItZGV2ZWwvMjAyNC0wNC9tc2cwMDA1Mi5odG1sCi0gR0lUIHJlcG86IGh0dHBzOi8vZ2l0 aHViLmNvbS9sY3AvZ3J1YjIvdHJlZS90cG0yLXVubG9jay12MTEKLSBBZGRpbmcgdGhlIG1pc3Np bmcgZGVmYXVsdDogaGFuZGxlcnMgaW4gZ3J1Yi1jb3JlL3RwbTIvbXUuYwotIFVwZGF0aW5nIHRo ZSBoZWxwIG1lc3NhZ2VzIGFuZCBjb21taXQgbWVzc2FnZXMgdG8gcmVmbGVjdCB0aGUgY2hhbmdl CiAgb2YgdGhlIGRlZmF1bHQgU1JLIGFsZ29yaXRobSAoUlNBMjA0OCAtPiBFQ0NfTklTVF9QMjU2 KQotIEFkZGluZyB0aGUgdGVzdGNhc2UgZm9yIHRoZSBOViBpbmRleCBtb2RlCgp2MTA6Ci0gaHR0 cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ncnViLWRldmVsLzIwMjQtMDQvbXNnMDAw MTkuaHRtbAotIEdJVCByZXBvOiBodHRwczovL2dpdGh1Yi5jb20vbGNwL2dydWIyL3RyZWUvdHBt Mi11bmxvY2stdjEwCi0gRml4aW5nIHRoZSBjb3Zlcml0eSBpc3N1ZXM6IENJRCA0MzU3NzUsIENJ RCA0MzU3NzEsIENJRCA0MzU3NzAsIENJRAogIDQzNTc2OSwgQ0lEIDQzNTc2NywgQ0lEIDQzNTc2 MQogIGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvZ3J1Yi1kZXZlbC8yMDI0LTAy L3R4dEtJdVViNWxmM08udHh0CiAgLSBGaXhpbmcgdGhlIHBvdGVudGlhbCBtZW1vcnkgbGVhayAo Q0lEIDQzNTc3NSkKICAtIFJlbW92aW5nIHRoZSB1bm5lY2Vzc2FyeSBncnViX3Byb3RlY3RfZ2V0 X2dydWJfZHJpdmVfZm9yX2ZpbGUoKSBmcm9tCiAgICB1dGlsL2dydWItcHJvdGVjdC5jIChDSUQg NDM1NzcxKQogIC0gVXNpbmcgdGhlIGdydWJfdHBtMl9tdV9UUE0yQl8qX1VubWFyc2hhbCBmdW5j dGlvbnMgdG8gdW5tYXJzaGFsIHRoZQogICAgVFBNMkIgc3RydWN0cyBpbnN0ZWFkIG9mIGEgZ2Vu ZXJpYyBncnViX3RwbTJfbXVfVFBNMkJfVW5tYXJzaGFsCiAgICAoQ0lEIDQzNTc3MCkKICAtIEZp eGluZyBOdWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgKENJRCA0MzU3NjkpCiAgLSBBZGRpbmcgYm91 bmQgY2hlY2tzIHRvIGdydWJfdHBtMl9tdV9UUE1MX0RJR0VTVF9Vbm1hcnNoYWwoKQogICAgKENJ RCA0MzU3NjcpCiAgLSBJbXByb3ZpbmcgdGhlIGNoZWNrIGZvciB0aGUgcmV0dXJuIHZhbHVlIG9m IGZ0ZWxsKCkgKENJRCA0MzU3NjEpCi0gQWRkaW5nIGEgcXVpY2sgZml4IGZvciBDSUQgNDM1NzYy Ci0gUmVtb3ZpbmcgdGhlIGVtcHR5IGVuZGluZyBsaW5lIGluIHRlc3RzL2FzbjFfdGVzdC5pbgot IEZpeGluZyBkb2NzL2dydWItZGV2LnRleGkgYW5kIHVwZGF0aW5nIHRoZSBsaWJ0YXNuMSBwYXRj aGVzIGluCiAgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS1wYXRjaGVzLwotIE1lcmdpbmcgYWxsIHRo ZSBUUE0yIFRTUyBzdGFjayBwYXRjaGVzIGludG8gb25lIHRvIHJlZHVjZSB0aGUgdG90YWwKICBw YXRjaCBudW1iZXIKLSBTd2l0Y2hpbmcgdGhlIGRlZmF1bHQgYXN5bW1ldHJpYyBhbGdvcml0aG0g ZnJvbSBSU0EyMDQ4IHRvCiAgVFBNX0VDQ19OSVNUX1AyNTYgZm9yIHRoZSBmYXN0ZXIga2V5IGdl bmVyYXRpb24KLSBBZGRpbmcgdGhlIGZhbGxiYWNrIFNSSyB0ZW1wbGF0ZXMgdG8gdHJ5IGEgZmV3 IG1vcmUgU1JLIHR5cGVzIGluIGNhc2UKICBncnViMiBmYWlsZWQgdG8gYXNzb2NpYXRlIHRoZSBz ZWFsZWQga2V5IHdpdGggdGhlIFNSSyBpbiB0aGUgcGVyc2lzdGVudAogIGhhbmRsZSBvciB0aGUg ZGVmYXVsdCBTUksKLSBJbXByb3ZpbmcgdGhlIHRlc3Qgc2NyaXB0IHRvIGFkZCB0ZXN0cyBmb3Ig dGhlIHBlcnNpc3RlbnQgaGFuZGxlIGFuZAogIHRoZSBmYWxsYmFjayBTUktzCgp2OToKLSBodHRw czovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2dydWItZGV2ZWwvMjAyNC0wMi9tc2cwMDAw Ny5odG1sCi0gR0lUIHJlcG86IGh0dHBzOi8vZ2l0aHViLmNvbS9sY3AvZ3J1YjIvdHJlZS90cG0y LXVubG9jay12OQotIEludHJvZHVjaW5nIGMtY3R5cGUuaCB0byBwb3NpeF93cmFwIGFuZCBpbXBs ZW1lbnRpbmcgc3RybmNhdAotIEFkZGluZyB0aGUgZGVzY3JpcHRpdmUgY29tbWVudHMgdG8gdGhl IGRpc2FibGVkIGNvZGUgaW4gbGlidGFzbjEKLSBSZXBsYWNpbmcgc3RyY2F0IHdpdGggdGhlIGJv dW5kLWNoZWNrZWQgX2FzbjFfc3RyX2NhdCBpbiBsaWJ0YXNuMSBhbmQKICBpbmNsdWRpbmcgYy1j dHlwZS5oIGRpcmVjdGx5Ci0gSW50ZWdyYXRpbmcgdGhlIGFzbjEgdGVzdGNhc2VzIGludG8gImZ1 bmN0aW9uYWxfdGVzdCIKLSBVcGRhdGluZyB0aGUgbGlidGFzbjEgcGF0Y2hlcyBtZW50aW9uZWQg aW4gdGhlIGRvY3VtZW50YXRpb24gCi0gTW92aW5nIHRoZSBrZXkgcHJvdGVjdG9yIHRvIGEgbW9k dWxlCi0gQW1lbmRpbmcgY29uZmlndXJlLmFjIHRvIGVuYWJsZS9kaXNhYmxlIGdydWItcHJvdGVj dAotIEZpeGluZyBhbiB0aW1lb3V0IGlzc3VlIGluIHRoZSB0cG0yX3Rlc3Qgc2NyaXB0IGJ5IGZl ZWRpbmcgdGhlIGNvbmZpZwogIHRocm91Z2ggc3RkaW4KCnY4OgotIGh0dHBzOi8vbGlzdHMuZ251 Lm9yZy9hcmNoaXZlL2h0bWwvZ3J1Yi1kZXZlbC8yMDI0LTAxL21zZzAwMDEzLmh0bWwKLSBHSVQg cmVwbzogaHR0cHM6Ly9naXRodWIuY29tL2xjcC9ncnViMi90cmVlL3RwbTItdW5sb2NrLXY4Ci0g SW50cm9kdWNpbmcgVFBNIGRldmljZSBzdXBwb3J0IHRvIGdydWItZW11IGFuZCBhZGRpbmcgdGhl IFRQTSBrZXkKICB1bnNlYWxpbmcgdGVzdGNhc2UKCnY3OgotIGh0dHBzOi8vbGlzdHMuZ251Lm9y Zy9hcmNoaXZlL2h0bWwvZ3J1Yi1kZXZlbC8yMDIzLTExL21zZzAwMTI3Lmh0bWwKLSBHSVQgcmVw bzogaHR0cHM6Ly9naXRodWIuY29tL2xjcC9ncnViMi90cmVlL3RwbTItdW5sb2NrLXY3Ci0gU3Rv cHBpbmcgcmVhZGluZyBTUksgZnJvbSB0aGUgd2VsbC1rbm93biBwZXJzaXN0ZW50IGhhbmRsZSAo VFBNMl9TUktfSEFORExFLAogIGkuZS4gMHg4MTAwMDAwMSkgYnkgZGVmYXVsdCBzaW5jZSB0aGUg cGVyc2lzdGVudCBoYW5kbGUgbWF5IGJlIGNyZWF0ZWQKICBieSBvdGhlciBPUyBhbmQgY2F1c2Vz IHVuc2VhbGluZyBmYWlsdXJlIGR1ZSB0byBTUksgbWlzbWF0Y2hpbmcKICAtIFRoZSB1c2VyIG5v dyBoYXMgdG8gc3BlY2lmeSB0aGUgcGVyc2lzdGVudCBoYW5kbGUgd2l0aCAiLS1zcmsiCiAgICBl eHBsaWNpdGx5LgotIFV0aWxpemluZyBncnViX2Vycm9yKCkgdG8gcHJpbnQgbW9yZSBlcnJvciBt ZXNzYWdlcyAKLSBVbmlmeWluZyB0aGUgZm9ybWF0IG9mIHRoZSBlcnJvciBtZXNzYWdlcyBmcm9t IFRQTTIgY29tbWFuZHMKCnY2OgotIGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwv Z3J1Yi1kZXZlbC8yMDIzLTEwL21zZzAwMDI2Lmh0bWwKLSBHSVQgcmVwbzogaHR0cHM6Ly9naXRo dWIuY29tL2xjcC9ncnViMi90cmVlL3RwbTItdW5sb2NrLXY2Ci0gU3VwcG9ydGluZyBtb3JlIFNS SyB0eXBlcyB0aGFuIFJTQTIwNDggYW5kIEVDQ19OSVNUX1AyNTYKLSBEb2N1bWVudGluZyBTSEE1 MTIgYXMgdGhlIHN1cHBvcnRlZCBQQ1IgYmFuayB0eXBlIGluIHRoZSB0cG0yCiAgcHJvdGVjdG9y Ci0gUmVtb3ZpbmcgdGhlIHJlZHVuZGFudCBlcnJvciBtZXNzYWdlIGZvciBncnViX3RwbTJfcHJv dGVjdG9yX3Nya19nZXQoKQogIHNpbmNlIGl0IG1heSBvdmVyd3JpdGUgdGhlIHJlYWwgZXJyb3Ig bWVzc2FnZS4KLSBVcGRhdGluZyB0aGUgc3VwcG9ydGVkIFNSSyB0eXBlcyBhbmQgUENSIGJhbmsg dHlwZXMgaW4gZ3J1Yi1wcm90ZWN0IAotIFJlbW92aW5nIHRoZSB1bnVzZWQgdHlwZTogVFBNMl9F Q0NfQ1VSVkUKCnY1OgotIGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvZ3J1Yi1k ZXZlbC8yMDIzLTA4L21zZzAwMTEzLmh0bWwKLSBHSVQgcmVwbzogaHR0cHM6Ly9naXRodWIuY29t L2xjcC9ncnViMi90cmVlL3RwbTItdW5sb2NrLXY1Ci0gUmViYXNpbmcgdG8gdGhlIGxhdGVzdCBn aXQgSEVBRCBhbmQgaW1wcm92aW5nIHRoZSBjb21taXQgbWVzc2FnZXMKLSBJbXBsZW1lbnRpbmcg YXV0aG9yaXplZCBwb2lsY3kgc3VwcG9ydAotIEltcGxlbWVudGluZyBOViBpbmRleCBtb2RlCi0g SW1wcm92aW5nIHRoZSAnY3J5cHRvbW91bnQnIGNvbW1hbmQgdG8gZmFsbCBiYWNrIHRvIHRoZSBw YXNzcGhyYXNlCiAgbW9kZSB3aGVuIHRoZSBrZXkgcHJvdGVjdG9yIGZhaWxzIHRvIHVubG9jayB0 aGUgZW5jcnlwdGVkIHBhcnRpdGlvbgotIEZpeGluZyB0aGUgcG90ZW50aWFsIHNlY3VyaXR5IGlz c3VlcwoKdjQ6Ci0gaHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ncnViLWRldmVs LzIwMjMtMDQvbXNnMDAxMDQuaHRtbAotIEdJVCByZXBvOiBodHRwczovL2dpdGh1Yi5jb20vbGNw L2dydWIyL3RyZWUvdHBtMi11bmxvY2stdjQKLSBJbXByb3ZpbmcgdGhlIGVycm9yIGNvbmRpdGlv biBjaGVja3MgaW4gY3J5cHRvZGlzay5jCi0gTW92aW5nIHRoZSBjb2RlIHRvIHVuc2VhbCB3aXRo IHRoZSBzdGFuZGFsb25lIHBvbGljeSBzZXF1ZW5jZSBiZWxvdwogIHRoZSBjb2RlIGZvciBhdXRo cG9saWN5IHNlcXVlbmNlCiAgLSBUaGUgc3RhbmRhbG9uZSBwb2xpY3kgc2VxdWVuY2Ugd2FzIG1p c3Rha2VubHkgcHJlcGVuZGVkIHRvIHRvIHRoZQogICAgYXV0aHBvbGljeSBzZXF1ZW5jZSB3aXRo IGdydWJfbGlzdF9wdXNoKCkgd2hpbGUgaXQgc2hvdWxkIGJlCiAgICBhcHBlbmRlZC4KLSBQdXNo aW5nIHRoZSBlcnJvciBtZXNzYWdlcyBmcm9tIHRoZSBhdXRocG9saWN5IHNlcXVlbmNlIGludG8g dGhlCiAgZ3J1Yl9lcnJvciBzdGFjayBzbyB0aGF0IHdlIGNhbiBsaXN0IGFsbCBlcnJvcnMgZnJv bSB0aGUgc2VxdWVuY2UKLSBJbXByb3ZpbmcgdGhlIGVycm9yIG1lc3NhZ2VzIGluIHRoZSBUUE0y IHByb3RlY3RvcgotIEFtZW5kaW5nIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgbWF4IHN0cmluZyBs ZW5ndGhzIG9mICdQb2xpY3knLAogICdDb21tYW5kQ29kZScgYW5kICdDb21tYW5kUG9saWN5Jwot IFNraXBwaW5nIHRoZSBlcnJvciBwYXRoIGluIGdydWJfdHBtMmtleV9nZXRfYXV0aHBvbGljeV9z ZXEoKSBvbgogIHN1Y2Nlc3MgdG8gYXZvaWQgZnJlZWluZyB0aGUgYXV0aHBvbGljeSBzZXF1ZW5j ZQoKdjM6Ci0gaHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ncnViLWRldmVsLzIw MjMtMDQvbXNnMDAwNTUuaHRtbAotIEdJVCByZXBvOiBodHRwczovL2dpdGh1Yi5jb20vbGNwL2dy dWIyL3RyZWUvdHBtMi11bmxvY2stdjMKLSBBZGRpbmcgdGhlIGRvY3VtZW50IGZvciBsaWJ0YXNu MQotIEltcHJvdmluZyB0aGUgZXJyb3IgY29uZGl0aW9uIGNoZWNrcwogIGV4OiAiaWYgKCFwdHIp IiA9PT4gImlmIChwdHIgPT0gTlVMTCkiCiAgICAgICJpZiAoZXJyKSIgPT0+ICJpZiAoZXJyICE9 IEdSVUJfRVJSX05PTkUpIgogICAgICAiaWYgKHJjKSIgPT0+ICJpZiAocmMgIT0gVFBNX1JDX1NV Q0NFU1MpIgotIFN1cHBvcnRpbmcgdGhlICJUUE1Qb2xpY3kiIGFuZCAiVFBNQXV0aFBvbGljeSIg c2VxdWVuY2UgaW4gdGhlIFRQTSAyLjAKICBrZXkgRmlsZQotIFJlZmFjdG9yaW5nIHRoZSBrZXkg cmVjb3ZlciBmdW5jdGlvbiB0byBzdXBwb3J0ICJUUE1Qb2xpY3kiIGFuZAogICJUUE1BdXRoUG9s aWN5IiBzZXF1ZW5jZQotIFVzaW5nIFRQTVNfUENSX1NFTEVDVElPTl9TZWxlY3RQQ1IoKSB0byBz ZXQgdGhlIFBDUiBiaXQgbWFzawogIC0gQWxzbyBkcm9wcGluZyBUUE0yX1BDUl9UT19TRUxFQ1Qo KSBhbmQgVFBNMl9QQ1JfVE9fQklUKCkgd2hpY2ggYXJlCiAgICBub3QgbmVjZXNzYXJ5IGFueW1v cmUKLSBSZW1vdmluZyB0aGUgcmVkdW5kYW50IHZhcmlhYmxlLCAnY3JkJywgZnJvbQogIGdydWJf Y3J5cHRvZGlza19zY2FuX2RldmljZV9yZWFsKCkKLSBGaXhpbmcgdGhlIHNwYWNlcy90YWJzIGlu IGNyeXB0b2Rpc2suYwotIEZpeGluZyB0aGUgY29tbWVudCBmb3JtYXQgaW4gY3J5cHRvZGlzay5o Ci0gQWRkaW5nIHRoZSBkZWZlbnNpdmUgY2hlY2sgZm9yICJjYXJncy0+cHJvdGVjdG9ycyIgaW4K ICBncnViX2NyeXB0b2Rpc2tfc2Nhbl9kZXZpY2UoKQotIEltcHJvdmluZyAnZ3J1Yi1wcm90ZWN0 JyBmb3IgdGhlIGJldHRlciBzdXBwb3J0IG9mIFRQTSAyLjAgS2V5IEZpbGUKLSBBZGRpbmcgbW9y ZSBjb21tZW50cwoKdjI6Ci0gaHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ncnVi LWRldmVsLzIwMjMtMDMvbXNnMDAwOTQuaHRtbAotIEdJVCByZXBvOiBodHRwczovL2dpdGh1Yi5j b20vbGNwL2dydWIyL3RyZWUvdHBtMi11bmxvY2stdjIKCnYxOgotIGh0dHBzOi8vbGlzdHMuZ251 Lm9yZy9hcmNoaXZlL2h0bWwvZ3J1Yi1kZXZlbC8yMDIzLTAyL21zZzAwMTMwLmh0bWwKLSBHSVQg cmVwbzogaHR0cHM6Ly9naXRodWIuY29tL2xjcC9ncnViMi90cmVlL3RwbTItdW5sb2NrCgoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqIEFuYXlsc2lzIG9mIGxpYnRh c24xIENvdmVyaXR5IGlzc3VzZXMgKgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgoKMiBNZW1vcnkgY29ycnVwdGlvbnM6IENJRCA0MzU3NjIsIENJRCA0MzU3NjYKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCioqKiBDSUQgNDM1 NzYyOiAgTWVtb3J5IC0gY29ycnVwdGlvbnMgIChPVkVSUlVOKQovZ3J1Yi1jb3JlL2xpYi9saWJ0 YXNuMS9saWIvY29kaW5nLmM6IDE1MiBpbiBfYXNuMV90YWdfZGVyKCkKMTQ2ICAgICAJICBpZiAo ayA+IEFTTjFfTUFYX1RBR19TSVpFIC0gMSkKMTQ3ICAgICAJICAgIGJyZWFrOwkJLyogd2lsbCBu b3QgZW5jb2RlIGxhcmdlciB0YWdzICovCjE0OCAgICAgCX0KMTQ5ICAgICAgICAgICAqYW5zX2xl biA9IGsgKyAxOwoxNTAgICAgICAgICAgIHdoaWxlIChrLS0pCjE1MSAgICAgCWFuc1sqYW5zX2xl biAtIDEgLSBrXSA9IHRlbXBba10gKyAxMjg7Cj4+PiAgICAgQ0lEIDQzNTc2MjogIE1lbW9yeSAt IGNvcnJ1cHRpb25zICAoT1ZFUlJVTikKPj4+ICAgICBPdmVycnVubmluZyBhcnJheSBvZiA0IGJ5 dGVzIGF0IGJ5dGUgb2Zmc2V0IDQgYnkgZGVyZWZlcmVuY2luZyBwb2ludGVyICJhbnMgKyAoKmFu c19sZW4gLSAxKSIuCjE1MiAgICAgICAgICAgYW5zWyphbnNfbGVuIC0gMV0gLT0gMTI4OwoxNTMg ICAgICAgICB9CjE1NCAgICAgfQoxNTUgICAgIAoxNTYgICAgIC8qKgoxNTcgICAgICAqIGFzbjFf b2N0ZXRfZGVyOgoKUmVwb3J0ZWQgdG8gdXBzdHJlYW06IGh0dHBzOi8vZ2l0bGFiLmNvbS9nbnV0 bHMvbGlidGFzbjEvLS9pc3N1ZXMvNDkKQSBxdWljayBmaXggaXMgYWxzbyBwcm92aWRlZCBpbiBw YXRjaCA4LgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K KioqIENJRCA0MzU3NjY6ICBNZW1vcnkgLSBjb3JydXB0aW9ucyAgKE9WRVJSVU4pCi9ncnViLWNv cmUvbGliL2xpYnRhc24xL2xpYi9kZWNvZGluZy5jOiAxMjA0IGluIGFzbjFfZGVyX2RlY29kaW5n MigpCjExOTggICAgIAkJfQoxMTk5ICAgICAKMTIwMCAgICAgCSAgICAgIERFQ1JfTEVOIChpZGVy X2xlbiwgbGVuMik7CjEyMDEgICAgIAoxMjAyICAgICAJICAgICAgdGxlbiA9IHN0cmxlbiAodGVt cCk7CjEyMDMgICAgIAkgICAgICBpZiAodGxlbiA+IDApCj4+PiAgICAgQ0lEIDQzNTc2NjogIE1l bW9yeSAtIGNvcnJ1cHRpb25zICAoT1ZFUlJVTikKPj4+ICAgICBBbGxvY2F0aW5nIGluc3VmZmlj aWVudCBtZW1vcnkgZm9yIHRoZSB0ZXJtaW5hdGluZyBudWxsIG9mIHRoZSBzdHJpbmcuCjEyMDQg ICAgIAkJX2FzbjFfc2V0X3ZhbHVlIChwLCB0ZW1wLCB0bGVuKTsKMTIwNSAgICAgCjEyMDYgICAg IAkgICAgICBjb3VudGVyICs9IGxlbjI7CjEyMDcgICAgIAkgICAgICBtb3ZlID0gUklHSFQ7CjEy MDggICAgIAkgICAgICBicmVhazsKMTIwOSAgICAgCSAgICBjYXNlIEFTTjFfRVRZUEVfT0NURVRf U1RSSU5HOgoKClJlcG9ydGVkIHRvIHVwc3RyZWFtOiBodHRwczovL2dpdGxhYi5jb20vZ251dGxz L2xpYnRhc24xLy0vaXNzdWVzLzUwCkl0J3MgbGlrZWx5IHRvIGJlIGZhbHNlIHBvc2l0aXZlIGJl Y2F1c2UgREVSIGRhdGEgaXMgbm90IE5VTCB0ZXJtaW5hdGVkLgpJIHN1Z2dlc3QgdG8gaWdub3Jl IHRoaXMgaXNzdWUuCgo9PQo3IEludGVnZXIgaGFuZGxpbmcgaXNzdWVzOgpDSUQgNDM1Nzc0LCBD SUQgNDM1NzczLCBDSUQgNDM1NzcyLCBDSUQgNDM1NzY4LCBDSUQgNDM1NzY1LCBDSUQgNDM1NzY0 LCBDSUQgNDM1NzYzICAgIAoKVGhvc2UgYXJlIHJlbGF0ZWQgdG8gR251bGliIG1hY3JvcyBhbmQg YWxsIGZhbHNlIHBvc2l0aXZlLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KKioqIENJRCA0MzU3NzQ6ICBJbnRlZ2VyIGhhbmRsaW5nIGlzc3VlcyAgKENP TlNUQU5UX0VYUFJFU1NJT05fUkVTVUxUKQovZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvZGVj b2RpbmcuYzogNDgxIGluIGFzbjFfZ2V0X29iamVjdF9pZF9kZXIoKQo0NzUgICAgICAgICAgICAq Lwo0NzYgICAgICAgICAgIGlmIChsZWFkaW5nICE9IDAgJiYgZGVyW2xlbl9sZW4gKyBrXSA9PSAw eDgwKQo0NzcgICAgIAlyZXR1cm4gQVNOMV9ERVJfRVJST1I7CjQ3OCAgICAgICAgICAgbGVhZGlu ZyA9IDA7CjQ3OSAgICAgCjQ4MCAgICAgICAgICAgLyogY2hlY2sgZm9yIHdyYXAgYXJvdW5kICov Cj4+PiAgICAgQ0lEIDQzNTc3NDogIEludGVnZXIgaGFuZGxpbmcgaXNzdWVzICAoQ09OU1RBTlRf RVhQUkVTU0lPTl9SRVNVTFQpCj4+PiAgICAgInZhbCA8ICgoKCgxID8gMCA6IHZhbCkgLSAxIDwg MCkgPyB+KCgoKDEgPyAwIDogdmFsKSArIDEgPDwgNjJVTCAvKiBzaXplb2YgKCt2YWwpICogOCAt IDIgKi8pIC0gMSkgKiAyICsgMSkgOiAoKDEgPyAwIDogdmFsKSArIDApKSA+PiA3KSIgaXMgYWx3 YXlzIGZhbHNlIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlcyBvZiBpdHMgb3BlcmFuZHMuIFRoaXMg b2NjdXJzIGFzIHRoZSBzZWNvbmQgb3BlcmFuZCBvZiAiPzoiLgo0ODEgICAgICAgICAgIGlmIChJ TlRfTEVGVF9TSElGVF9PVkVSRkxPVyAodmFsLCA3KSkKNDgyICAgICAJcmV0dXJuIEFTTjFfREVS X0VSUk9SOwo0ODMgICAgIAo0ODQgICAgICAgICAgIHZhbCA9IHZhbCA8PCA3Owo0ODUgICAgICAg ICAgIHZhbCB8PSBkZXJbbGVuX2xlbiArIGtdICYgMHg3RjsKNDg2ICAgICAKCi9ncnViLWNvcmUv bGliL2xpYnRhc24xL2xpYi9kZWNvZGluZy5jOiA0ODEgaW4gYXNuMV9nZXRfb2JqZWN0X2lkX2Rl cigpCgpIZXJlIGFyZSB0aGUgcmVsYXRlZCBtYWNyb3MgZnJvbSBnbnVsaWI6CgojZGVmaW5lIF9H TF9JTlRfTkVHQVRFX0NPTlZFUlQoZSwgdikgKCgxID8gMCA6IChlKSkgLSAodikpCgojZGVmaW5l IEVYUFJfU0lHTkVEKGUpIChfR0xfSU5UX05FR0FURV9DT05WRVJUIChlLCAxKSA8IDApCgojZGVm aW5lIF9HTF9JTlRfQ09OVkVSVChlLCB2KSAoKDEgPyAwIDogKGUpKSArICh2KSkKCiNkZWZpbmUg VFlQRV9XSURUSCh0KSAoc2l6ZW9mICh0KSAqIENIQVJfQklUKQoKI2RlZmluZSBfR0xfU0lHTkVE X0lOVF9NQVhJTVVNKGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog ICgoKF9HTF9JTlRfQ09OVkVSVCAoZSwgMSkgPDwgKFRZUEVfV0lEVEggKCsgKGUpKSAtIDIpKSAt IDEpICogMiArIDEpCgojZGVmaW5lIF9HTF9JTlRfTUlOSU1VTShlKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKEVYUFJfU0lHTkVEIChlKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgPyB+IF9H TF9TSUdORURfSU5UX01BWElNVU0gKGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICA6IF9HTF9JTlRfQ09OVkVSVCAoZSwgMCkpCgojZGVmaW5lIF9HTF9JTlRfTUFY SU1VTShlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg KEVYUFJfU0lHTkVEIChlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgPyBfR0xfU0lHTkVEX0lOVF9NQVhJTVVNIChlKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICA6IF9HTF9JTlRfTkVHQVRFX0NPTlZF UlQgKGUsIDEpKQoKI2RlZmluZSBJTlRfTEVGVF9TSElGVF9SQU5HRV9PVkVSRkxPVyhhLCBiLCBt aW4sIG1heCkgICBcCiAgKChhKSA8IDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICA/IChhKSA8IChtaW4pID4+IChiKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgOiAobWF4KSA+PiAoYikgPCAoYSkpCgojZGVmaW5lIElOVF9MRUZU X1NISUZUX09WRVJGTE9XKGEsIGIpIFwKICBJTlRfTEVGVF9TSElGVF9SQU5HRV9PVkVSRkxPVyAo YSwgYiwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfR0xfSU5UX01JTklNVU0g KGEpLCBfR0xfSU5UX01BWElNVU0gKGEpKQoKVGhlIHN0YXRlbWVudCBpbiBxdWVzdGlvbiBpcyBl eHBhbmRlZCAiKGEpIDwgKG1pbikgPj4gKGIpIiBmcm9tCidJTlRfTEVGVF9TSElGVF9SQU5HRV9P VkVSRkxPVycuCgonKGEpIDwgKG1pbikgPj4gKGIpJwo9PiAnKHZhbCkgPCBfR0xfSU5UX01JTklN VU0gKHZhbCkgPj4gKDcpJwo9PiAnKHZhbCkgPCBcCiAgICAgKEVYUFJfU0lHTkVEICh2YWwpIFwK ICAgICAgPyB+IF9HTF9TSUdORURfSU5UX01BWElNVU0gKHZhbCkgXAogICAgICA6IF9HTF9JTlRf Q09OVkVSVCAodmFsLCAwKSkgXAogICAgID4+ICg3KScKPT4gJyh2YWwpIDwgXAogICAgICgoX0dM X0lOVF9ORUdBVEVfQ09OVkVSVCAodmFsLCAxKSA8IDApIFwKICAgICAgPyB+IF9HTF9TSUdORURf SU5UX01BWElNVU0gKHZhbCkgXAogICAgICA6IF9HTF9JTlRfQ09OVkVSVCAodmFsLCAwKSkgXAog ICAgID4+ICg3KScKPT4gJyh2YWwpIDwgXAogICAgICgoKCgxID8gMCA6ICh2YWwpKSAtICgxKSkg PCAwKSBcCiAgICAgID8gfiBfR0xfU0lHTkVEX0lOVF9NQVhJTVVNICh2YWwpIFwKICAgICAgOiBf R0xfSU5UX0NPTlZFUlQgKHZhbCwgMCkpIFwKICAgICA+PiAoNyknCj0+ICcodmFsKSA8IFwKICAg ICAoKCgoMSA/IDAgOiAodmFsKSkgLSAoMSkpIDwgMCkgXAogICAgICA/IH4gKCgoX0dMX0lOVF9D T05WRVJUICh2YWwsIDEpIDw8IChUWVBFX1dJRFRIICgrICh2YWwpKSAtIDIpKSAtIDEpICogMiAr IDEpIFwKICAgICAgOiBfR0xfSU5UX0NPTlZFUlQgKHZhbCwgMCkpIFwKICAgICA+PiAoNyknCj0+ ICcodmFsKSA8IFwKICAgICAoKCgoMSA/IDAgOiAodmFsKSkgLSAoMSkpIDwgMCkgXAogICAgICA/ IH4gKCgoKCgxID8gMCA6ICh2YWwpKSArICgxKSkgPDwgKFRZUEVfV0lEVEggKCsgKHZhbCkpIC0g MikpIC0gMSkgKiAyICsgMSkgXAogICAgICA6IF9HTF9JTlRfQ09OVkVSVCAodmFsLCAwKSkgXAog ICAgID4+ICg3KScKPT4gJyh2YWwpIDwgXAogICAgICgoKCgxID8gMCA6ICh2YWwpKSAtICgxKSkg PCAwKSBcCiAgICAgID8gfiAoKCgoKDEgPyAwIDogKHZhbCkpICsgKDEpKSA8PCAoKHNpemVvZiAo dmFsKSAqIENIQVJfQklUKSAtIDIpKSAtIDEpICogMiArIDEpIFwKICAgICAgOiBfR0xfSU5UX0NP TlZFUlQgKHZhbCwgMCkpIFwKICAgICA+PiAoNyknCj0+ICcodmFsKSA8IFwKICAgICAoKCgoMSA/ IDAgOiAodmFsKSkgLSAoMSkpIDwgMCkgXAogICAgICA/IH4gKCgoKCgxID8gMCA6ICh2YWwpKSAr ICgxKSkgPDwgKChzaXplb2YgKHZhbCkgKiBDSEFSX0JJVCkgLSAyKSkgLSAxKSAqIDIgKyAxKSBc CiAgICAgIDogKCgxID8gMCA6ICh2YWwpKSArICgwKSkpIFwKICAgICA+PiAoNyknCgonX0dMX0lO VF9NSU5JTVVNJyByZXR1cm5zIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSBnaXZlbiB0eXBlLiBT aW5jZSAndmFsJyBpcwondWludDY0X3QnLCAnX0dMX0lOVF9NSU5JTVVNICh2YWwpJyBpcyAwCgon KHZhbCkgPCBfR0xfSU5UX01JTklNVU0gKHZhbCkgPj4gKDcpJyA9PiAnKHZhbCkgPCAwID4+ICg3 KScgPT4gJyh2YWwpIDwgMCcKCkZvciAndWludDY0X3QgdmFsJywgdGhlIHJlc3VsdCBpcyBhbHdh eXMgZmFsc2UuCgpGdXJ0aGVybW9yZSwgRm9yICdJTlRfTEVGVF9TSElGVF9SQU5HRV9PVkVSRkxP Vyc6CgogICgoYSkgPCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgPyAoYSkgPCAobWluKSA+PiAoYikgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgIDogKG1heCkgPj4gKGIpIDwgKGEpKQo9PgogICgodmFsKSA8IDAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICA/ICh2YWwpIDwgKG1pbikg Pj4gKDcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICA6IChtYXgpID4+ICg3 KSA8ICh2YWwpKQoKU2luY2UgJ3ZhbCcgaXMgJ3VpbnQ2NF90JywgdGhlIHN0YXRlbWVudCBpbiBx dWVzdGlvbiwgJyhhKSA8IChtaW4pID4+IChiKScsIGlzCmFsd2F5cyBpZ25vcmVkLiBUaHVzLCB0 aGUgcmVzdWx0IG9mIHRoZSBzdGF0ZW1lbnQgZG9lc24ndCBldmVuIG1hdHRlci4KClN1bW1hcnk6 CiAgV2UgY2FuIGlnbm9yZSBDSUQgNDM1Nzc0IGJlY2F1c2UgdGhlIHN0YXRlbWVudCBpbiBxdWVz dGlvbiBpcyBkZXNpZ25lZCB0byBiZQogICJGQUxTRSIgYW5kIGV2ZW4gaWdub3JlZC4KCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCioqKiBDSUQgNDM1Nzcz OiAgSW50ZWdlciBoYW5kbGluZyBpc3N1ZXMgIChOT19FRkZFQ1QpCi9ncnViLWNvcmUvbGliL2xp YnRhc24xL2xpYi9kZWNvZGluZy5jOiA0MzkgaW4gYXNuMV9nZXRfb2JqZWN0X2lkX2RlcigpCjQz MyAgICAgICAgIHJldHVybiBBU04xX0RFUl9FUlJPUjsKNDM0ICAgICAKNDM1ICAgICAgIHZhbDAg PSAwOwo0MzYgICAgIAo0MzcgICAgICAgZm9yIChrID0gMDsgayA8IGxlbjsgaysrKQo0MzggICAg ICAgICB7Cj4+PiAgICAgQ0lEIDQzNTc3MzogIEludGVnZXIgaGFuZGxpbmcgaXNzdWVzICAoTk9f RUZGRUNUKQo+Pj4gICAgIFRoaXMgbGVzcy10aGFuLXplcm8gY29tcGFyaXNvbiBvZiBhbiB1bnNp Z25lZCB2YWx1ZSBpcyBuZXZlciB0cnVlLiAiKDEgPyAwVUwgOiB2YWwwKSAtIDFVTCA8IDBVTCIu CjQzOSAgICAgICAgICAgaWYgKElOVF9MRUZUX1NISUZUX09WRVJGTE9XICh2YWwwLCA3KSkKNDQw ICAgICAJcmV0dXJuIEFTTjFfREVSX0VSUk9SOwo0NDEgICAgIAo0NDIgICAgICAgICAgIHZhbDAg PDw9IDc7CjQ0MyAgICAgICAgICAgdmFsMCB8PSBkZXJbbGVuX2xlbiArIGtdICYgMHg3RjsKNDQ0 ICAgICAgICAgICBpZiAoIShkZXJbbGVuX2xlbiArIGtdICYgMHg4MCkpCgpIZXJlIGFyZSB0aGUg cmVsYXRlZCBtYWNyb3MgZnJvbSBnbnVsaWI6CgojZGVmaW5lIF9HTF9JTlRfTkVHQVRFX0NPTlZF UlQoZSwgdikgKCgxID8gMCA6IChlKSkgLSAodikpCgojZGVmaW5lIEVYUFJfU0lHTkVEKGUpIChf R0xfSU5UX05FR0FURV9DT05WRVJUIChlLCAxKSA8IDApCgojZGVmaW5lIF9HTF9JTlRfQ09OVkVS VChlLCB2KSAoKDEgPyAwIDogKGUpKSArICh2KSkKCiNkZWZpbmUgVFlQRV9XSURUSCh0KSAoc2l6 ZW9mICh0KSAqIENIQVJfQklUKQoKI2RlZmluZSBfR0xfU0lHTkVEX0lOVF9NQVhJTVVNKGUpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKF9HTF9JTlRfQ09OVkVS VCAoZSwgMSkgPDwgKFRZUEVfV0lEVEggKCsgKGUpKSAtIDIpKSAtIDEpICogMiArIDEpCgojZGVm aW5lIF9HTF9JTlRfTUlOSU1VTShlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCiAgKEVYUFJfU0lHTkVEIChlKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgPyB+IF9HTF9TSUdORURfSU5UX01BWElN VU0gKGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICA6IF9HTF9J TlRfQ09OVkVSVCAoZSwgMCkpCgojZGVmaW5lIF9HTF9JTlRfTUFYSU1VTShlKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKEVYUFJfU0lHTkVEIChlKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg PyBfR0xfU0lHTkVEX0lOVF9NQVhJTVVNIChlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICA6IF9HTF9JTlRfTkVHQVRFX0NPTlZFUlQgKGUsIDEpKQoKI2RlZmlu ZSBJTlRfTEVGVF9TSElGVF9SQU5HRV9PVkVSRkxPVyhhLCBiLCBtaW4sIG1heCkgICBcCiAgKChh KSA8IDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICA/ IChhKSA8IChtaW4pID4+IChiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg OiAobWF4KSA+PiAoYikgPCAoYSkpCgojZGVmaW5lIElOVF9MRUZUX1NISUZUX09WRVJGTE9XKGEs IGIpIFwKICBJTlRfTEVGVF9TSElGVF9SQU5HRV9PVkVSRkxPVyAoYSwgYiwgXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfR0xfSU5UX01JTklNVU0gKGEpLCBfR0xfSU5UX01BWElN VU0gKGEpKQoKVGhlIHN0YXRlbWVudCBpbiBxdWVzdGlvbiBpcyB0aGUgZXhwYW5kZWQgJ0VYUFJf U0lHTkVEICh2YWwwKScgZnJvbSBlaXRoZXIKJ19HTF9JTlRfTUFYSU1VTScgb3IgJ19HTF9JTlRf TUlOSU1VTScKCidFWFBSX1NJR05FRCAodmFsMCknCj0+ICcoX0dMX0lOVF9ORUdBVEVfQ09OVkVS VCAodmFsMCwgMSkgPCAwKScKPT4gJygoKDEgPyAwIDogKHZhbDApKSAtICgxKSkgPCAwKScKCidF WFBSX1NJR05FRCcgaXMgZGVzaWduZWQgdG8gdGVzdCBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBp cyBzaWduZWQsIGFuZAonRVhQUl9TSUdORUQgKHZhbDApJyBpcyBleHBlY3RlZCB0byBiZSBmYWxz ZSBmb3IgJ3VpbnQ2NF90IHZhbDAnLiBUaGUgbWFjcm8KZHV0aWZ1bGx5IHJlZmxlY3RzIHRoZSBm YWN0LgoKU3VtbWFyeToKICBXZSBjYW4gaWdub3JlIENJRCA0MzU3NzMgYmVjYXVzZSAnRVhQUl9T SUdORUQnIGlzIGRlc2lnbmVkIHRvIGJlICJGQUxTRSIKICB3aGVuIHVzaW5nIGl0IG9uICd1aW50 NjRfdCB2YWwwJy4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCioqKiBDSUQgNDM1NzcyOiAgSW50ZWdlciBoYW5kbGluZyBpc3N1ZXMgIChOT19FRkZFQ1Qp Ci9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9kZWNvZGluZy5jOiAyMDQgaW4gYXNuMV9nZXRf dGFnX2RlcigpCjE5OCAgICAgICAgICAgLyogTG9uZyBmb3JtICovCjE5OSAgICAgICAgICAgcHVu dCA9IDE7CjIwMCAgICAgICAgICAgcmlzID0gMDsKMjAxICAgICAgICAgICB3aGlsZSAocHVudCA8 IGRlcl9sZW4gJiYgZGVyW3B1bnRdICYgMTI4KQoyMDIgICAgIAl7CjIwMyAgICAgCj4+PiAgICAg Q0lEIDQzNTc3MjogIEludGVnZXIgaGFuZGxpbmcgaXNzdWVzICAoTk9fRUZGRUNUKQo+Pj4gICAg IFRoaXMgbGVzcy10aGFuLXplcm8gY29tcGFyaXNvbiBvZiBhbiB1bnNpZ25lZCB2YWx1ZSBpcyBu ZXZlciB0cnVlLiAiKDEgPyAwVSA6ICgoMSA/IDBVIDogcmlzKSArIDEyOFUpKSAtIDFVIDwgMFUi LgoyMDQgICAgIAkgIGlmIChJTlRfTVVMVElQTFlfT1ZFUkZMT1cgKHJpcywgMTI4KSkKMjA1ICAg ICAJICAgIHJldHVybiBBU04xX0RFUl9FUlJPUjsKMjA2ICAgICAJICByaXMgKj0gMTI4OwoyMDcg ICAgIAoyMDggICAgIAkgIGlmIChJTlRfQUREX09WRVJGTE9XIChyaXMsICgodW5zaWduZWQpIChk ZXJbcHVudF0gJiAweDdGKSkpKQoyMDkgICAgIAkgICAgcmV0dXJuIEFTTjFfREVSX0VSUk9SOwoK SGVyZSBhcmUgdGhlIHJlbGF0ZWQgbWFjcm9zIGdudWxpYjoKCiNkZWZpbmUgX0dMX0lOVF9ORUdB VEVfQ09OVkVSVChlLCB2KSAoKDEgPyAwIDogKGUpKSAtICh2KSkKCiNkZWZpbmUgX0dMX0lOVF9D T05WRVJUKGUsIHYpICgoMSA/IDAgOiAoZSkpICsgKHYpKQoKI2RlZmluZSBFWFBSX1NJR05FRChl KSAoX0dMX0lOVF9ORUdBVEVfQ09OVkVSVCAoZSwgMSkgPCAwKQoKI2RlZmluZSBUWVBFX1dJRFRI KHQpIChzaXplb2YgKHQpICogQ0hBUl9CSVQpCgojZGVmaW5lIF9HTF9TSUdORURfSU5UX01BWElN VU0oZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgoX0dMX0lO VF9DT05WRVJUIChlLCAxKSA8PCAoVFlQRV9XSURUSCAoKyAoZSkpIC0gMikpIC0gMSkgKiAyICsg MSkKCiNkZWZpbmUgX0dMX0lOVF9NSU5JTVVNKGUpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKICAoRVhQUl9TSUdORUQgKGUpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICA/IH4gX0dMX1NJR05FRF9J TlRfTUFYSU1VTSAoZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg IDogX0dMX0lOVF9DT05WRVJUIChlLCAwKSkKCiNkZWZpbmUgX0dMX0lOVF9NQVhJTVVNKGUpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoRVhQUl9TSUdO RUQgKGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICA/IF9HTF9TSUdORURfSU5UX01BWElNVU0gKGUpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCiAgIDogX0dMX0lOVF9ORUdBVEVfQ09OVkVSVCAoZSwgMSkp CgojZGVmaW5lIElOVF9NVUxUSVBMWV9SQU5HRV9PVkVSRkxPVyhhLCBiLCBtaW4sIG1heCkgICAg IFwKICAoKGIpIDwgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgID8gKChhKSA8IDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgICA/IChhKSA8IChtYXgpIC8gKGIpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICAgOiAoYikgPT0gLTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgICAgID8gMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgICA6IChtaW4pIC8gKGIpIDwgKGEpKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgOiAoYikgPT0gMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgID8gMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICA6ICgoYSkgPCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgICAgPyAoYSkgPCAobWluKSAvIChiKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCiAgICAgIDogKG1heCkgLyAoYikgPCAoYSkpKQoKIyBkZWZpbmUgX0dMX01V TFRJUExZX09WRVJGTE9XKGEsIGIsIG1pbiwgbWF4KSAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgKCgobWluKSA9PSAwICYmICgoKGEpIDwgMCAmJiAwIDwgKGIpKSB8fCAoKGIpIDwgMCAm JiAwIDwgKGEpKSkpICAgICAgIFwKICAgIHx8IElOVF9NVUxUSVBMWV9SQU5HRV9PVkVSRkxPVyAo YSwgYiwgbWluLCBtYXgpKQoKI2RlZmluZSBfR0xfQklOQVJZX09QX09WRVJGTE9XKGEsIGIsIG9w X3Jlc3VsdF9vdmVyZmxvdykgICAgICAgIFwKICBvcF9yZXN1bHRfb3ZlcmZsb3cgKGEsIGIsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAg IF9HTF9JTlRfTUlOSU1VTSAoX0dMX0lOVF9DT05WRVJUIChhLCBiKSksIFwKICAgICAgICAgICAg ICAgICAgICAgIF9HTF9JTlRfTUFYSU1VTSAoX0dMX0lOVF9DT05WRVJUIChhLCBiKSkpCgojZGVm aW5lIElOVF9NVUxUSVBMWV9PVkVSRkxPVyhhLCBiKSBcCiAgX0dMX0JJTkFSWV9PUF9PVkVSRkxP VyAoYSwgYiwgX0dMX01VTFRJUExZX09WRVJGTE9XKQoKVGhlIHN0YXRlbWVudCBpbiBxdWVzdGlv biBpcyB0aGUgZXhwYW5kZWQgJ0VYUFJfU0lHTkVEIChfR0xfSU5UX0NPTlZFUlQgKHJpcywgMTI4 KSknCmZyb20gZWl0aGVyICdfR0xfSU5UX01JTklNVU0nIG9yICdfR0xfSU5UX01BWElNVU0nLgoK J0VYUFJfU0lHTkVEIChfR0xfSU5UX0NPTlZFUlQgKHJpcywgMTI4KSknCj0+ICdFWFBSX1NJR05F RCAoKDEgPyAwIDogKHJpcykpICsgKDEyOCkpJwo9PiAnKF9HTF9JTlRfTkVHQVRFX0NPTlZFUlQg KCgoMSA/IDAgOiAocmlzKSkgKyAoMTI4KSwgMSkgPCAwKSknCj0+ICcoKDEgPyAwIDogKCgxID8g MCA6IHJpcykgKyAxMjgpKSAtIDEgPCAwKScKCidfR0xfSU5UX0NPTlZFUlQoZSwgdiknIHJldHVy bnMgYSB2YWx1ZSB3aXRoIHRoZSBjb21tb24gcmVhbCB0eXBlIG9mICdlJyBhbmQgJ3YnCmFuZCB0 aGUgdmFsdWUgb2YgJ3YnLiBTaW5jZSB0aGUgY29tbW9uIHR5cGUgb2YgJ3Vuc2lnbmVkIGludCBy aXMnIGFuZCAnMTI4JyBpcwondW5zaWduZWQgaW50JywgJ19HTF9JTlRfQ09OVkVSVCAocmlzLCAx MjgpJyBpcyAnMTI4VScuCgonRVhQUl9TSUdORUQnIGlzIGRlc2lnbmVkIHRvIGNoZWNrIGlmIHRo ZSBnaXZlbiBleHByZXNzaW9uIGlzIHNpZ25lZC4gVGh1cywKJ0VYUFJfU0lHTkVEICgxMjhVKScg aXMgZXhwZWN0ZWQgdG8gYmUgZmFsc2UuCgpTdW1tYXJ5OgogIFdlIGNhbiBpZ25vcmUgQ0lEIDQz NTc3Mi4gVGhlIHN0YXRlbWVudCBpbiBxdWVzdGlvbiBpcyB0aGUgY29tYmluYXRpb24gb2YKICAn RVhQUl9TSUdORUQnIGFuZCAnX0dMX0lOVF9DT05WRVJUJyB3aGljaCBpcyB1c2VkIHRvIHRlc3Qg aWYgdGhlIGNvbW1vbiB0eXBlCiAgb2YgdGhlIGdpdmVuIHR3byB2YXJpYWJsZXMgaXMgc2lnbmVk LiBUaG9zZSBtYWNyb3MgZHV0aWZ1bGx5IHJlZmxlY3QgdGhlCiAgZmFjdDogdGhlIGNvbW1vbiB0 eXBlIG9mICdyaXMnIGFuZCAnMTI4JyBpcyB1bnNpZ25lZCwgc28gdGhlIHJlc3VsdCBpcwogIGFs d2F5cyAiRkFMU0UiIGJ5IGRlc2lnbi4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCioqKiBDSUQgNDM1NzY4OiAgICAoQ09OU1RBTlRfRVhQUkVTU0lPTl9S RVNVTFQpCi9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9kZWNvZGluZy5jOiAyMDQgaW4gYXNu MV9nZXRfdGFnX2RlcigpCjE5OCAgICAgICAgICAgLyogTG9uZyBmb3JtICovCjE5OSAgICAgICAg ICAgcHVudCA9IDE7CjIwMCAgICAgICAgICAgcmlzID0gMDsKMjAxICAgICAgICAgICB3aGlsZSAo cHVudCA8IGRlcl9sZW4gJiYgZGVyW3B1bnRdICYgMTI4KQoyMDIgICAgIAl7CjIwMyAgICAgCj4+ PiAgICAgQ0lEIDQzNTc2ODogICAgKENPTlNUQU5UX0VYUFJFU1NJT05fUkVTVUxUKQo+Pj4gICAg ICJyaXMgPCAoKCgxID8gMCA6ICgoMSA/IDAgOiByaXMpICsgMTI4KSkgLSAxIDwgMCkgPyB+KCgo KDEgPyAwIDogKCgxID8gMCA6IHJpcykgKyAxMjgpKSArIDEgPDwgMzBVTCAvKiBzaXplb2YgKCso KDEgPyAwIDogcmlzKSArIDEyOCkpICogOCAtIDIgKi8pIC0gMSkgKiAyICsgMSkgOiAoKDEgPyAw IDogKCgxID8gMCA6IHJpcykgKyAxMjgpKSArIDApKSAvIDEyOCIgaXMgYWx3YXlzIGZhbHNlIHJl Z2FyZGxlc3Mgb2YgdGhlIHZhbHVlcyBvZiBpdHMgb3BlcmFuZHMuIFRoaXMgb2NjdXJzIGFzIHRo ZSBzZWNvbmQgb3BlcmFuZCBvZiAiPzoiLgoyMDQgICAgIAkgIGlmIChJTlRfTVVMVElQTFlfT1ZF UkZMT1cgKHJpcywgMTI4KSkKMjA1ICAgICAJICAgIHJldHVybiBBU04xX0RFUl9FUlJPUjsKMjA2 ICAgICAJICByaXMgKj0gMTI4OwoyMDcgICAgIAoyMDggICAgIAkgIGlmIChJTlRfQUREX09WRVJG TE9XIChyaXMsICgodW5zaWduZWQpIChkZXJbcHVudF0gJiAweDdGKSkpKQoyMDkgICAgIAkgICAg cmV0dXJuIEFTTjFfREVSX0VSUk9SOwovZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvZGVjb2Rp bmcuYzogMjE3IGluIGFzbjFfZ2V0X3RhZ19kZXIoKQoyMTEgICAgIAkgIHB1bnQrKzsKMjEyICAg ICAJfQoyMTMgICAgIAoyMTQgICAgICAgICAgIGlmIChwdW50ID49IGRlcl9sZW4pCjIxNSAgICAg CXJldHVybiBBU04xX0RFUl9FUlJPUjsKMjE2ICAgICAKPj4+ICAgICBDSUQgNDM1NzY4OiAgICAo Q09OU1RBTlRfRVhQUkVTU0lPTl9SRVNVTFQpCj4+PiAgICAgInJpcyA8ICgoKDEgPyAwIDogKCgx ID8gMCA6IHJpcykgKyAxMjgpKSAtIDEgPCAwKSA/IH4oKCgoMSA/IDAgOiAoKDEgPyAwIDogcmlz KSArIDEyOCkpICsgMSA8PCAzMFVMIC8qIHNpemVvZiAoKygoMSA/IDAgOiByaXMpICsgMTI4KSkg KiA4IC0gMiAqLykgLSAxKSAqIDIgKyAxKSA6ICgoMSA/IDAgOiAoKDEgPyAwIDogcmlzKSArIDEy OCkpICsgMCkpIC8gMTI4IiBpcyBhbHdheXMgZmFsc2UgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWVz IG9mIGl0cyBvcGVyYW5kcy4gVGhpcyBvY2N1cnMgYXMgdGhlIHNlY29uZCBvcGVyYW5kIG9mICI/ OiIuCjIxNyAgICAgICAgICAgaWYgKElOVF9NVUxUSVBMWV9PVkVSRkxPVyAocmlzLCAxMjgpKQoy MTggICAgIAlyZXR1cm4gQVNOMV9ERVJfRVJST1I7CjIxOSAgICAgICAgICAgcmlzICo9IDEyODsK MjIwICAgICAKMjIxICAgICAgICAgICBpZiAoSU5UX0FERF9PVkVSRkxPVyAocmlzLCAoKHVuc2ln bmVkKSAoZGVyW3B1bnRdICYgMHg3RikpKSkKMjIyICAgICAJcmV0dXJuIEFTTjFfREVSX0VSUk9S OwoKSGVyZSBhcmUgdGhlIHJlbGF0ZWQgbWFjcm9zIGdudWxpYjoKCiNkZWZpbmUgX0dMX0lOVF9O RUdBVEVfQ09OVkVSVChlLCB2KSAoKDEgPyAwIDogKGUpKSAtICh2KSkKCiNkZWZpbmUgX0dMX0lO VF9DT05WRVJUKGUsIHYpICgoMSA/IDAgOiAoZSkpICsgKHYpKQoKI2RlZmluZSBFWFBSX1NJR05F RChlKSAoX0dMX0lOVF9ORUdBVEVfQ09OVkVSVCAoZSwgMSkgPCAwKQoKI2RlZmluZSBUWVBFX1dJ RFRIKHQpIChzaXplb2YgKHQpICogQ0hBUl9CSVQpCgojZGVmaW5lIF9HTF9TSUdORURfSU5UX01B WElNVU0oZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgoX0dM X0lOVF9DT05WRVJUIChlLCAxKSA8PCAoVFlQRV9XSURUSCAoKyAoZSkpIC0gMikpIC0gMSkgKiAy ICsgMSkKCiNkZWZpbmUgX0dMX0lOVF9NSU5JTVVNKGUpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAoRVhQUl9TSUdORUQgKGUpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICA/IH4gX0dMX1NJR05F RF9JTlRfTUFYSU1VTSAoZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgIDogX0dMX0lOVF9DT05WRVJUIChlLCAwKSkKCiNkZWZpbmUgX0dMX0lOVF9NQVhJTVVNKGUp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoRVhQUl9T SUdORUQgKGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICA/IF9HTF9TSUdORURfSU5UX01BWElNVU0gKGUpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgIDogX0dMX0lOVF9ORUdBVEVfQ09OVkVSVCAoZSwg MSkpCgojZGVmaW5lIElOVF9NVUxUSVBMWV9SQU5HRV9PVkVSRkxPVyhhLCBiLCBtaW4sIG1heCkg ICAgIFwKICAoKGIpIDwgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgID8gKChhKSA8IDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgICA/IChhKSA8IChtYXgpIC8gKGIpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAgOiAoYikgPT0gLTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgICAgID8gMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgICA6IChtaW4pIC8gKGIpIDwgKGEpKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgOiAoYikgPT0gMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCiAgID8gMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICA6ICgoYSkgPCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICAgPyAoYSkgPCAobWluKSAvIChiKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAgICAgIDogKG1heCkgLyAoYikgPCAoYSkpKQoKIyBkZWZpbmUgX0dM X01VTFRJUExZX09WRVJGTE9XKGEsIGIsIG1pbiwgbWF4KSAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgKCgobWluKSA9PSAwICYmICgoKGEpIDwgMCAmJiAwIDwgKGIpKSB8fCAoKGIpIDwg MCAmJiAwIDwgKGEpKSkpICAgICAgIFwKICAgIHx8IElOVF9NVUxUSVBMWV9SQU5HRV9PVkVSRkxP VyAoYSwgYiwgbWluLCBtYXgpKQoKI2RlZmluZSBfR0xfQklOQVJZX09QX09WRVJGTE9XKGEsIGIs IG9wX3Jlc3VsdF9vdmVyZmxvdykgICAgICAgIFwKICBvcF9yZXN1bHRfb3ZlcmZsb3cgKGEsIGIs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAg ICAgIF9HTF9JTlRfTUlOSU1VTSAoX0dMX0lOVF9DT05WRVJUIChhLCBiKSksIFwKICAgICAgICAg ICAgICAgICAgICAgIF9HTF9JTlRfTUFYSU1VTSAoX0dMX0lOVF9DT05WRVJUIChhLCBiKSkpCgoj ZGVmaW5lIElOVF9NVUxUSVBMWV9PVkVSRkxPVyhhLCBiKSBcCiAgX0dMX0JJTkFSWV9PUF9PVkVS RkxPVyAoYSwgYiwgX0dMX01VTFRJUExZX09WRVJGTE9XKQoKVGhlIHN0YXRlbWVudCBpbiBxdWVz dGlvbiBpcyB0aGUgZXhwYW5kZWQgJyhhKSA8IChtaW4pIC8gKGIpJyBmcm9tCidJTlRfTVVMVElQ TFlfUkFOR0VfT1ZFUkZMT1cnLgoKJyhhKSA8IChtaW4pIC8gKGIpJwo9PiAnKGEpIDwgKF9HTF9J TlRfTUlOSU1VTSAoX0dMX0lOVF9DT05WRVJUIChhLCBiKSkpIC8gKGIpJwo9PiAnKHJpcykgPCAo X0dMX0lOVF9NSU5JTVVNIChfR0xfSU5UX0NPTlZFUlQgKHJpcywgMTI4KSkpIC8gKDEyOCknCj0+ ICcocmlzKSA8IFwKICAgICAoRVhQUl9TSUdORUQgKF9HTF9JTlRfQ09OVkVSVCAocmlzLCAxMjgp KSBcCiAgICAgID8gfiBfR0xfU0lHTkVEX0lOVF9NQVhJTVVNIChfR0xfSU5UX0NPTlZFUlQgKHJp cywgMTI4KSkgXAogICAgICA6IF9HTF9JTlRfQ09OVkVSVCAoX0dMX0lOVF9DT05WRVJUIChyaXMs IDEyOCksIDApKSBcCiAgICAgLyAoMTI4KScKPT4gJyhyaXMpIDwgXAogICAgICgoX0dMX0lOVF9O RUdBVEVfQ09OVkVSVCAoX0dMX0lOVF9DT05WRVJUIChyaXMsIDEyOCksIDEpIDwgMCkgXAogICAg ICA/IH4gX0dMX1NJR05FRF9JTlRfTUFYSU1VTSAoX0dMX0lOVF9DT05WRVJUIChyaXMsIDEyOCkp IFwKICAgICAgOiBfR0xfSU5UX0NPTlZFUlQgKF9HTF9JTlRfQ09OVkVSVCAocmlzLCAxMjgpLCAw KSkgXAogICAgIC8gKDEyOCknCj0+ICcocmlzKSA8IFwKICAgICAoKCgoMSA/IDAgOiAoX0dMX0lO VF9DT05WRVJUIChyaXMsIDEyOCkpKSAtICgxKSkgPCAwKSBcCiAgICAgID8gfiBfR0xfU0lHTkVE X0lOVF9NQVhJTVVNIChfR0xfSU5UX0NPTlZFUlQgKHJpcywgMTI4KSkgXAogICAgICA6IF9HTF9J TlRfQ09OVkVSVCAoX0dMX0lOVF9DT05WRVJUIChyaXMsIDEyOCksIDApKSBcCiAgICAgLyAoMTI4 KScKPT4gJyhyaXMpIDwgXAogICAgICgoKCgxID8gMCA6ICgoMSA/IDAgOiAocmlzKSkgKyAoMTI4 KSkpIC0gKDEpKSA8IDApIFwKICAgICAgPyB+IF9HTF9TSUdORURfSU5UX01BWElNVU0gKF9HTF9J TlRfQ09OVkVSVCAocmlzLCAxMjgpKSBcCiAgICAgIDogX0dMX0lOVF9DT05WRVJUIChfR0xfSU5U X0NPTlZFUlQgKHJpcywgMTI4KSwgMCkpIFwKICAgICAvICgxMjgpJwo9PiAnKHJpcykgPCBcCiAg ICAgKCgoKDEgPyAwIDogKCgxID8gMCA6IChyaXMpKSArICgxMjgpKSkgLSAoMSkpIDwgMCkgXAog ICAgICA/IH4gKCgoX0dMX0lOVF9DT05WRVJUIChfR0xfSU5UX0NPTlZFUlQgKHJpcywgMTI4KSwg MSkgPDwgKFRZUEVfV0lEVEggKCsgKF9HTF9JTlRfQ09OVkVSVCAocmlzLCAxMjgpKSkgLSAyKSkg LSAxKSAqIDIgKyAxKSBcCiAgICAgIDogX0dMX0lOVF9DT05WRVJUIChfR0xfSU5UX0NPTlZFUlQg KHJpcywgMTI4KSwgMCkpIFwKICAgICAvICgxMjgpJwo9PiAnKHJpcykgPCBcCiAgICAgKCgoKDEg PyAwIDogKCgxID8gMCA6IChyaXMpKSArICgxMjgpKSkgLSAoMSkpIDwgMCkgXAogICAgICA/IH4g KCgoKCgxID8gMCA6IChfR0xfSU5UX0NPTlZFUlQgKHJpcywgMTI4KSkpICsgKDEpKSA8PCAoVFlQ RV9XSURUSCAoKyAoX0dMX0lOVF9DT05WRVJUIChyaXMsIDEyOCkpKSAtIDIpKSAtIDEpICogMiAr IDEpIFwKICAgICAgOiBfR0xfSU5UX0NPTlZFUlQgKF9HTF9JTlRfQ09OVkVSVCAocmlzLCAxMjgp LCAwKSkgXAogICAgIC8gKDEyOCknCj0+ICcocmlzKSA8IFwKICAgICAoKCgoMSA/IDAgOiAoKDEg PyAwIDogKHJpcykpICsgKDEyOCkpKSAtICgxKSkgPCAwKSBcCiAgICAgID8gfiAoKCgoKDEgPyAw IDogKCgxID8gMCA6IChyaXMpKSArICgxMjgpKSkgKyAoMSkpIDw8IChUWVBFX1dJRFRIICgrIChf R0xfSU5UX0NPTlZFUlQgKHJpcywgMTI4KSkpIC0gMikpIC0gMSkgKiAyICsgMSkgXAogICAgICA6 IF9HTF9JTlRfQ09OVkVSVCAoX0dMX0lOVF9DT05WRVJUIChyaXMsIDEyOCksIDApKSBcCiAgICAg LyAoMTI4KScKPT4gJyhyaXMpIDwgXAogICAgICgoKCgxID8gMCA6ICgoMSA/IDAgOiAocmlzKSkg KyAoMTI4KSkpIC0gKDEpKSA8IDApIFwKICAgICAgPyB+ICgoKCgoMSA/IDAgOiAoKDEgPyAwIDog KHJpcykpICsgKDEyOCkpKSArICgxKSkgPDwgKChzaXplb2YgKCsgKF9HTF9JTlRfQ09OVkVSVCAo cmlzLCAxMjgpKSkgKiBDSEFSX0JJVCkgLSAyKSkgLSAxKSAqIDIgKyAxKSBcCiAgICAgIDogX0dM X0lOVF9DT05WRVJUIChfR0xfSU5UX0NPTlZFUlQgKHJpcywgMTI4KSwgMCkpIFwKICAgICAvICgx MjgpJwo9PiAnKHJpcykgPCBcCiAgICAgKCgoKDEgPyAwIDogKCgxID8gMCA6IChyaXMpKSArICgx MjgpKSkgLSAoMSkpIDwgMCkgXAogICAgICA/IH4gKCgoKCgxID8gMCA6ICgoMSA/IDAgOiAocmlz KSkgKyAoMTI4KSkpICsgKDEpKSA8PCAoKHNpemVvZiAoKyAoKDEgPyAwIDogKHJpcykpICsgKDEy OCkpKSAqIENIQVJfQklUKSAtIDIpKSAtIDEpICogMiArIDEpIFwKICAgICAgOiBfR0xfSU5UX0NP TlZFUlQgKF9HTF9JTlRfQ09OVkVSVCAocmlzLCAxMjgpLCAwKSkgXAogICAgIC8gKDEyOCknCj0+ ICcocmlzKSA8IFwKICAgICAoKCgoMSA/IDAgOiAoKDEgPyAwIDogKHJpcykpICsgKDEyOCkpKSAt ICgxKSkgPCAwKSBcCiAgICAgID8gfiAoKCgoKDEgPyAwIDogKCgxID8gMCA6IChyaXMpKSArICgx MjgpKSkgKyAoMSkpIDw8ICgoc2l6ZW9mICgrICgoMSA/IDAgOiAocmlzKSkgKyAoMTI4KSkpICog Q0hBUl9CSVQpIC0gMikpIC0gMSkgKiAyICsgMSkgXAogICAgICA6IF9HTF9JTlRfQ09OVkVSVCAo X0dMX0lOVF9DT05WRVJUIChyaXMsIDEyOCksIDApKSBcCiAgICAgLyAoMTI4KScKPT4gJyhyaXMp IDwgXAogICAgICgoKCgxID8gMCA6ICgoMSA/IDAgOiAocmlzKSkgKyAoMTI4KSkpIC0gKDEpKSA8 IDApIFwKICAgICAgPyB+ICgoKCgoMSA/IDAgOiAoKDEgPyAwIDogKHJpcykpICsgKDEyOCkpKSAr ICgxKSkgPDwgKChzaXplb2YgKCsgKCgxID8gMCA6IChyaXMpKSArICgxMjgpKSkgKiBDSEFSX0JJ VCkgLSAyKSkgLSAxKSAqIDIgKyAxKSBcCiAgICAgIDogKCgxID8gMCA6IChfR0xfSU5UX0NPTlZF UlQgKHJpcywgMTI4KSkgKyAoMCkpIFwKICAgICAvICgxMjgpJwo9PiAnKHJpcykgPCBcCiAgICAg KCgoKDEgPyAwIDogKCgxID8gMCA6IChyaXMpKSArICgxMjgpKSkgLSAoMSkpIDwgMCkgXAogICAg ICA/IH4gKCgoKCgxID8gMCA6ICgoMSA/IDAgOiAocmlzKSkgKyAoMTI4KSkpICsgKDEpKSA8PCAo KHNpemVvZiAoKyAoKDEgPyAwIDogKHJpcykpICsgKDEyOCkpKSAqIENIQVJfQklUKSAtIDIpKSAt IDEpICogMiArIDEpIFwKICAgICAgOiAoKDEgPyAwIDogKCgxID8gMCA6IChyaXMpKSArICgxMjgp KSArICgwKSkgXAogICAgIC8gKDEyOCknCgonX0dMX0lOVF9DT05WRVJUKGUsIHYpJyByZXR1cm5z IGEgdmFsdWUgd2l0aCB0aGUgY29tbW9uIHJlYWwgdHlwZSBvZiAnZScgYW5kICd2JyBhbmQKdGhl IHZhbHVlIG9mICd2Jy4gU2luY2UgdGhlIGNvbW1vbiB0eXBlIG9mICd1bnNpZ25lZCBpbnQgcmlz JyBhbmQgJzEyOCcgaXMKJ3Vuc2lnbmVkIGludCcsICdfR0xfSU5UX0NPTlZFUlQgKHJpcywgMTI4 KScgaXMgJzEyOFUnLgoKJ19HTF9JTlRfTUlOSU1VTSAoMTI4VSknIHJldHVybnMgdGhlIG1pbmlt dW0gdmFsdWUgb2YgJ3Vuc2lnbmVkIGludCcsIGkuZS4gMC4KCicocmlzKSA8IChfR0xfSU5UX01J TklNVU0gKF9HTF9JTlRfQ09OVkVSVCAocmlzLCAxMjgpKSkgLyAoMTI4KScKPT4gJyhyaXMpIDwg MCAvICgxMjgpJwo9PiAnKHJpcykgPCAwJwoKRm9yICd1bnNpZ25lZCBpbnQgcmlzJywgdGhlIHJl c3VsdCBpcyBhbHdheXMgZmFsc2UuCgpGdXRoZXJtb3JlLCBpbiAnSU5UX01VTFRJUExZX1JBTkdF X09WRVJGTE9XJywgJ2EnIGlzICd1bnNpZ25lZCBpbnQgcmlzJyBhbmQgJ2InCmlzICcxMjgnLiBX ZSBjYW4gc2tpcCB0aGUgc3RhdGVtZW50cyBmb3IgJ2IgPCAwJyBhbmQgJ2IgPT0gMCcgYW5kIHJl ZHVjZSB0aGUKbWFjcm8gdG8gCgogIChhKSA8IDAgICAgICAgICAgICAgICAgXAogICA/IChhKSA8 IChtaW4pIC8gKGIpICAgXAogICA6IChtYXgpIC8gKGIpIDwgKGEpKSkKPT4KICAocmlzKSA8IDAg ICAgICAgICAgICAgICAgICBcCiAgID8gKHJpcykgPCAobWluKSAvICgxMjgpICAgXAogICA6ICht YXgpIC8gKDEyOCkgPCAocmlzKSkpCgpTaW5jZSAncmlzJyBpcyAndW5zaWduZWQgaW50JywgdGhl IHN0YXRlbWVudCBpbiBxdWVzdGlvbiwgJyhhKSA8IChtaW4pIC8gKGIpJywKaXMgYWx3YXlzIGln bm9yZWQuIFRodXMsIHRoZSByZXN1bHQgb2YgdGhlIHN0YXRlbWVudCBkb2Vzbid0IGV2ZW4gbWF0 dGVyLgoKU3VtbWFyeToKICBXZSBjYW4gaWdub3JlIENJRCA0MzU3NjggYmVjYXVzZSB0aGUgc3Rh dGVtZW50IGluIHF1ZXN0aW9uIGlzIGRlc2lnbmVkIHRvIGJlCiAgIkZBTFNFIiBhbmQgZXZlbiBp Z25vcmVkLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K KioqIENJRCA0MzU3NjU6ICBJbnRlZ2VyIGhhbmRsaW5nIGlzc3VlcyAgKENPTlNUQU5UX0VYUFJF U1NJT05fUkVTVUxUKQovZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvZGVjb2RpbmcuYzogNDM5 IGluIGFzbjFfZ2V0X29iamVjdF9pZF9kZXIoKQo0MzMgICAgICAgICByZXR1cm4gQVNOMV9ERVJf RVJST1I7CjQzNCAgICAgCjQzNSAgICAgICB2YWwwID0gMDsKNDM2ICAgICAKNDM3ICAgICAgIGZv ciAoayA9IDA7IGsgPCBsZW47IGsrKykKNDM4ICAgICAgICAgewo+Pj4gICAgIENJRCA0MzU3NjU6 ICBJbnRlZ2VyIGhhbmRsaW5nIGlzc3VlcyAgKENPTlNUQU5UX0VYUFJFU1NJT05fUkVTVUxUKQo+ Pj4gICAgICJ2YWwwIDwgKCgoKDEgPyAwIDogdmFsMCkgLSAxIDwgMCkgPyB+KCgoKDEgPyAwIDog dmFsMCkgKyAxIDw8IDYyVUwgLyogc2l6ZW9mICgrdmFsMCkgKiA4IC0gMiAqLykgLSAxKSAqIDIg KyAxKSA6ICgoMSA/IDAgOiB2YWwwKSArIDApKSA+PiA3KSIgaXMgYWx3YXlzIGZhbHNlIHJlZ2Fy ZGxlc3Mgb2YgdGhlIHZhbHVlcyBvZiBpdHMgb3BlcmFuZHMuIFRoaXMgb2NjdXJzIGFzIHRoZSBz ZWNvbmQgb3BlcmFuZCBvZiAiPzoiLgo0MzkgICAgICAgICAgIGlmIChJTlRfTEVGVF9TSElGVF9P VkVSRkxPVyAodmFsMCwgNykpCjQ0MCAgICAgCXJldHVybiBBU04xX0RFUl9FUlJPUjsKNDQxICAg ICAKNDQyICAgICAgICAgICB2YWwwIDw8PSA3Owo0NDMgICAgICAgICAgIHZhbDAgfD0gZGVyW2xl bl9sZW4gKyBrXSAmIDB4N0Y7CjQ0NCAgICAgICAgICAgaWYgKCEoZGVyW2xlbl9sZW4gKyBrXSAm IDB4ODApKQoKSGVyZSBhcmUgdGhlIHJlbGF0ZWQgbWFjcm9zIGZyb20gZ251bGliOgoKI2RlZmlu ZSBfR0xfSU5UX05FR0FURV9DT05WRVJUKGUsIHYpICgoMSA/IDAgOiAoZSkpIC0gKHYpKQoKI2Rl ZmluZSBFWFBSX1NJR05FRChlKSAoX0dMX0lOVF9ORUdBVEVfQ09OVkVSVCAoZSwgMSkgPCAwKQoK I2RlZmluZSBfR0xfSU5UX0NPTlZFUlQoZSwgdikgKCgxID8gMCA6IChlKSkgKyAodikpCgojZGVm aW5lIFRZUEVfV0lEVEgodCkgKHNpemVvZiAodCkgKiBDSEFSX0JJVCkKCiNkZWZpbmUgX0dMX1NJ R05FRF9JTlRfTUFYSU1VTShlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAoKChfR0xfSU5UX0NPTlZFUlQgKGUsIDEpIDw8IChUWVBFX1dJRFRIICgrIChlKSkgLSAy KSkgLSAxKSAqIDIgKyAxKQoKI2RlZmluZSBfR0xfSU5UX01JTklNVU0oZSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIChFWFBSX1NJR05FRCAoZSkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgID8g fiBfR0xfU0lHTkVEX0lOVF9NQVhJTVVNIChlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgOiBfR0xfSU5UX0NPTlZFUlQgKGUsIDApKQoKI2RlZmluZSBfR0xfSU5U X01BWElNVU0oZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogIChFWFBSX1NJR05FRCAoZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCiAgID8gX0dMX1NJR05FRF9JTlRfTUFYSU1VTSAoZSkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgOiBfR0xfSU5UX05FR0FURV9D T05WRVJUIChlLCAxKSkKCiNkZWZpbmUgSU5UX0xFRlRfU0hJRlRfUkFOR0VfT1ZFUkZMT1coYSwg YiwgbWluLCBtYXgpICAgXAogICgoYSkgPCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKICAgPyAoYSkgPCAobWluKSA+PiAoYikgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCiAgIDogKG1heCkgPj4gKGIpIDwgKGEpKQoKI2RlZmluZSBJTlRf TEVGVF9TSElGVF9PVkVSRkxPVyhhLCBiKSBcCiAgSU5UX0xFRlRfU0hJRlRfUkFOR0VfT1ZFUkZM T1cgKGEsIGIsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX0dMX0lOVF9NSU5J TVVNIChhKSwgX0dMX0lOVF9NQVhJTVVNIChhKSkKClRoZSBzdGF0ZW1lbnQgaW4gcXVlc3Rpb24g aXMgZXhwYW5kZWQgJyhhKSA8IChtaW4pID4+IChiKScgZnJvbQpJTlRfTEVGVF9TSElGVF9SQU5H RV9PVkVSRkxPVy4KCicoYSkgPCAobWluKSA+PiAoYiknCj0+ICcodmFsKSA8IChfR0xfSU5UX01J TklNVU0gKHZhbCkpID4+ICg3KScKPT4gJyh2YWwpIDwgXAogICAgIChFWFBSX1NJR05FRCAodmFs KSBcCiAgICAgID8gfiBfR0xfU0lHTkVEX0lOVF9NQVhJTVVNICh2YWwpIFwKICAgICAgOiBfR0xf SU5UX0NPTlZFUlQgKHZhbCwgMCkpIFwKICAgICA+PiAoNyknCj0+ICcodmFsKSA8IFwKICAgICAo KF9HTF9JTlRfTkVHQVRFX0NPTlZFUlQgKHZhbCwgMSkgPCAwKSBcCiAgICAgID8gfiBfR0xfU0lH TkVEX0lOVF9NQVhJTVVNICh2YWwpIFwKICAgICAgOiBfR0xfSU5UX0NPTlZFUlQgKHZhbCwgMCkp IFwKICAgICA+PiAoNyknCj0+ICcodmFsKSA8IFwKICAgICAoKCgoMSA/IDAgOiAodmFsKSkgLSAo MSkpIDwgMCkgXAogICAgICA/IH4gX0dMX1NJR05FRF9JTlRfTUFYSU1VTSAodmFsKSBcCiAgICAg IDogX0dMX0lOVF9DT05WRVJUICh2YWwsIDApKSBcCiAgICAgPj4gKDcpJwo9PiAnKHZhbCkgPCBc CiAgICAgKCgoKDEgPyAwIDogKHZhbCkpIC0gKDEpKSA8IDApIFwKICAgICAgPyB+ICgoKF9HTF9J TlRfQ09OVkVSVCAodmFsLCAxKSA8PCAoVFlQRV9XSURUSCAoKyAodmFsKSkgLSAyKSkgLSAxKSAq IDIgKyAxKSBcCiAgICAgIDogX0dMX0lOVF9DT05WRVJUICh2YWwsIDApKSBcCiAgICAgPj4gKDcp Jwo9PiAnKHZhbCkgPCBcCiAgICAgKCgoKDEgPyAwIDogKHZhbCkpIC0gKDEpKSA8IDApIFwKICAg ICAgPyB+ICgoKCgoMSA/IDAgOiAodmFsKSkgKyAoMSkpIDw8IChUWVBFX1dJRFRIICgrICh2YWwp KSAtIDIpKSAtIDEpICogMiArIDEpIFwKICAgICAgOiBfR0xfSU5UX0NPTlZFUlQgKHZhbCwgMCkp IFwKICAgICA+PiAoNyknCj0+ICcodmFsKSA8IFwKICAgICAoKCgoMSA/IDAgOiAodmFsKSkgLSAo MSkpIDwgMCkgXAogICAgICA/IH4gKCgoKCgxID8gMCA6ICh2YWwpKSArICgxKSkgPDwgKChzaXpl b2YgKCsgKHZhbCkpICogQ0hBUl9CSVQpIC0gMikpIC0gMSkgKiAyICsgMSkgXAogICAgICA6IF9H TF9JTlRfQ09OVkVSVCAodmFsLCAwKSkgXAogICAgID4+ICg3KScKPT4gJyh2YWwpIDwgXAogICAg ICgoKCgxID8gMCA6ICh2YWwpKSAtICgxKSkgPCAwKSBcCiAgICAgID8gfiAoKCgoKDEgPyAwIDog KHZhbCkpICsgKDEpKSA8PCAoKHNpemVvZiAoKyAodmFsKSkgKiBDSEFSX0JJVCkgLSAyKSkgLSAx KSAqIDIgKyAxKSBcCiAgICAgIDogKCgxID8gMCA6ICh2YWwpKSArICgwKSkpIFwKICAgICA+PiAo NyknCgonX0dMX0lOVF9NSU5JTVVNJyByZXR1cm5zIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSBn aXZlbiB0eXBlLiBGb3IgJ3VpbnQ2NF90IHZhbCcsCidfR0xfSU5UX01JTklNVU0gKHZhbCknIGlz IDAuCgonKHZhbCkgPCAoX0dMX0lOVF9NSU5JTVVNICh2YWwpKSA+PiAoNyknID0+ICcodmFsKSA8 IDAgPj4gKDcpJyA9PiAnKHZhbCkgPCAwJwoKRm9yICd1aW50NjRfdCB2YWwnLCB0aGUgcmVzdWx0 IGlzIGFsd2F5cyBmYWxzZS4KCkZ1cnRoZXJtb3JlLCBpbiAnSU5UX0xFRlRfU0hJRlRfUkFOR0Vf T1ZFUkZMT1cnOgoKICAoKGEpIDwgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCiAgID8gKGEpIDwgKG1pbikgPj4gKGIpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICA6IChtYXgpID4+IChiKSA8IChhKSkKPT4KICAoKHZhbCkgPCAwICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgID8gKHZhbCkgPCAo bWluKSA+PiAoNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICA6IChtYXgpID4+ ICg3KSA8ICh2YWwpKQoKU2luY2UgJ3ZhbCcgaXMgJ3VpbnQ2NF90JywgdGhlIHN0YXRlbWVudCBp biBxdWVzdGlvbiwgJyhhKSA8IChtaW4pID4+IChiKScsIGlzCmFsd2F5cyBpZ25vcmVkLiBUaHVz LCB0aGUgcmVzdWx0IG9mIHRoZSBzdGF0ZW1lbnQgZG9lc24ndCBldmVuIG1hdHRlci4KClN1bW1h cnk6CiAgV2UgY2FuIGlnbm9yZSBDSUQgNDM1NzY1IGJlY2F1c2UgdGhlIHN0YXRlbWVudCBpbiBx dWVzdGlvbiBpcyBkZXNpZ25lZCB0byBiZQogICJGQUxTRSIgYW5kIGV2ZW4gaWdub3JlZC4KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCioqKiBDSUQgNDM1 NzY0OiAgSW50ZWdlciBoYW5kbGluZyBpc3N1ZXMgIChOT19FRkZFQ1QpCi9ncnViLWNvcmUvbGli L2xpYnRhc24xL2xpYi9kZWNvZGluZy5jOiAxMzcgaW4gYXNuMV9nZXRfbGVuZ3RoX2RlcigpCjEz MSAgICAgICAgICAgcHVudCA9IDE7CjEzMiAgICAgICAgICAgaWYgKGspCjEzMyAgICAgCXsJCQkv KiBkZWZpbml0ZSBsZW5ndGggbWV0aG9kICovCjEzNCAgICAgCSAgYW5zID0gMDsKMTM1ICAgICAJ ICB3aGlsZSAocHVudCA8PSBrICYmIHB1bnQgPCBkZXJfbGVuKQoxMzYgICAgIAkgICAgewo+Pj4g ICAgIENJRCA0MzU3NjQ6ICBJbnRlZ2VyIGhhbmRsaW5nIGlzc3VlcyAgKE5PX0VGRkVDVCkKPj4+ ICAgICBUaGlzIGxlc3MtdGhhbi16ZXJvIGNvbXBhcmlzb24gb2YgYW4gdW5zaWduZWQgdmFsdWUg aXMgbmV2ZXIgdHJ1ZS4gIigxID8gMFUgOiAoKDEgPyAwVSA6IGFucykgKyAyNTZVKSkgLSAxVSA8 IDBVIi4KMTM3ICAgICAJICAgICAgaWYgKElOVF9NVUxUSVBMWV9PVkVSRkxPVyAoYW5zLCAyNTYp KQoxMzggICAgIAkJcmV0dXJuIC0yOwoxMzkgICAgIAkgICAgICBhbnMgKj0gMjU2OwoxNDAgICAg IAoxNDEgICAgIAkgICAgICBpZiAoSU5UX0FERF9PVkVSRkxPVyAoYW5zLCAoKHVuc2lnbmVkKSBk ZXJbcHVudF0pKSkKMTQyICAgICAJCXJldHVybiAtMjsKCkhlcmUgYXJlIHRoZSByZWxhdGVkIG1h Y3JvcyBmcm9tIGdudWxpYjoKCiNkZWZpbmUgX0dMX0lOVF9ORUdBVEVfQ09OVkVSVChlLCB2KSAo KDEgPyAwIDogKGUpKSAtICh2KSkKCiNkZWZpbmUgX0dMX0lOVF9DT05WRVJUKGUsIHYpICgoMSA/ IDAgOiAoZSkpICsgKHYpKQoKI2RlZmluZSBFWFBSX1NJR05FRChlKSAoX0dMX0lOVF9ORUdBVEVf Q09OVkVSVCAoZSwgMSkgPCAwKQoKI2RlZmluZSBUWVBFX1dJRFRIKHQpIChzaXplb2YgKHQpICog Q0hBUl9CSVQpCgojZGVmaW5lIF9HTF9TSUdORURfSU5UX01BWElNVU0oZSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgoX0dMX0lOVF9DT05WRVJUIChlLCAxKSA8 PCAoVFlQRV9XSURUSCAoKyAoZSkpIC0gMikpIC0gMSkgKiAyICsgMSkKCiNkZWZpbmUgX0dMX0lO VF9NSU5JTVVNKGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAoRVhQUl9TSUdORUQgKGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAogICA/IH4gX0dMX1NJR05FRF9JTlRfTUFYSU1VTSAoZSkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgIDogX0dMX0lOVF9DT05WRVJU IChlLCAwKSkKCiNkZWZpbmUgX0dMX0lOVF9NQVhJTVVNKGUpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoRVhQUl9TSUdORUQgKGUpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICA/IF9HTF9TSUdO RURfSU5UX01BWElNVU0gKGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgIDogX0dMX0lOVF9ORUdBVEVfQ09OVkVSVCAoZSwgMSkpCgojZGVmaW5lIElOVF9NVUxU SVBMWV9SQU5HRV9PVkVSRkxPVyhhLCBiLCBtaW4sIG1heCkgICAgIFwKICAoKGIpIDwgMCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgID8gKChhKSA8IDAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICA/IChhKSA8 IChtYXgpIC8gKGIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgOiAoYikg PT0gLTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgID8gMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICA6ICht aW4pIC8gKGIpIDwgKGEpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgOiAoYikg PT0gMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgID8gMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICA6ICgo YSkgPCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAg PyAoYSkgPCAobWluKSAvIChiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg IDogKG1heCkgLyAoYikgPCAoYSkpKQoKIyBkZWZpbmUgX0dMX01VTFRJUExZX09WRVJGTE9XKGEs IGIsIG1pbiwgbWF4KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgKCgobWluKSA9PSAw ICYmICgoKGEpIDwgMCAmJiAwIDwgKGIpKSB8fCAoKGIpIDwgMCAmJiAwIDwgKGEpKSkpICAgICAg IFwKICAgIHx8IElOVF9NVUxUSVBMWV9SQU5HRV9PVkVSRkxPVyAoYSwgYiwgbWluLCBtYXgpKQoK I2RlZmluZSBfR0xfQklOQVJZX09QX09WRVJGTE9XKGEsIGIsIG9wX3Jlc3VsdF9vdmVyZmxvdykg ICAgICAgIFwKICBvcF9yZXN1bHRfb3ZlcmZsb3cgKGEsIGIsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgIF9HTF9JTlRfTUlOSU1VTSAo X0dMX0lOVF9DT05WRVJUIChhLCBiKSksIFwKICAgICAgICAgICAgICAgICAgICAgIF9HTF9JTlRf TUFYSU1VTSAoX0dMX0lOVF9DT05WRVJUIChhLCBiKSkpCgojZGVmaW5lIElOVF9NVUxUSVBMWV9P VkVSRkxPVyhhLCBiKSBcCiAgX0dMX0JJTkFSWV9PUF9PVkVSRkxPVyAoYSwgYiwgX0dMX01VTFRJ UExZX09WRVJGTE9XKQoKVGhlIHN0YXRlbWVudCBpbiBxdWVzdGlvbiBpcyBleHBhbmRlZCAnRVhQ Ul9TSUdORUQgKF9HTF9JTlRfQ09OVkVSVCAoYW5zLCAyNTYpKScKZnJvbSBlaXRoZXIgJ19HTF9J TlRfTUlOSU1VTScgb3IgJ19HTF9JTlRfTUFYSU1VTScuCgonRVhQUl9TSUdORUQgKF9HTF9JTlRf Q09OVkVSVCAoYW5zLCAyNTYpKScKPT4gJ0VYUFJfU0lHTkVEICgoMSA/IDAgOiAoYW5zKSkgKyAo MjU2KSknCj0+ICcoX0dMX0lOVF9ORUdBVEVfQ09OVkVSVCAoKCgxID8gMCA6IChhbnMpKSArICgy NTYpKSwgMSkgPCAwKScKPT4gJygoMSA/IDAgOiAoKDEgPyAwIDogKGFucykpICsgKDI1NikpKSAt ICgxKSknCgonX0dMX0lOVF9DT05WRVJUKGUsIHYpJyByZXR1cm5zIGEgdmFsdWUgd2l0aCB0aGUg Y29tbW9uIHJlYWwgdHlwZSBvZiAnZScgYW5kICd2JyBhbmQKdGhlIHZhbHVlIG9mICd2Jy4gU2lu Y2UgdGhlIGNvbW1vbiB0eXBlIG9mICd1bnNpZ25lZCBpbnQgYW5zJyBhbmQgJzI1NicgaXMKJ3Vu c2lnbmVkIGludCcsICdfR0xfSU5UX0NPTlZFUlQgKGFucywgMjU2KScgaXMgJzI1NlUnLgoKJ0VY UFJfU0lHTkVEJyBpcyBkZXNpZ25lZCB0byBjaGVjayBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBp cyBzaWduZWQuIFRodXMsCidFWFBSX1NJR05FRCAoMjU2VSknIGlzIGV4cGVjdGVkIHRvIGJlIGZh bHNlLgoKU3VtbWFyeToKICBXZSBjYW4gaWdub3JlIENJRCA0MzU3NjQuIFRoZSBzdGF0ZW1lbnQg aW4gcXVlc3Rpb24gaXMgdGhlIGNvbWJpbmF0aW9uIG9mCiAgJ0VYUFJfU0lHTkVEJyBhbmQgJ19H TF9JTlRfQ09OVkVSVCcgd2hpY2ggaXMgdXNlZCB0byB0ZXN0IGlmIHRoZSBjb21tb24gdHlwZQog IG9mIHRoZSBnaXZlbiB0d28gdmFyaWFibGVzIGlzIHNpZ25lZC4gVGhvc2UgbWFjcm9zIGR1dGlm dWxseSByZWZsZWN0IHRoZQogIGZhY3Q6IHRoZSBjb21tb24gdHlwZSBvZiAnYW5zJyBhbmQgJzI1 NicgaXMgdW5zaWduZWQsIHNvIHRoZSByZXN1bHQgaXMKICBhbHdheXMgIkZBTFNFIiBieSBkZXNp Z24uCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoqKiog Q0lEIDQzNTc2MzogIEludGVnZXIgaGFuZGxpbmcgaXNzdWVzICAoQ09OU1RBTlRfRVhQUkVTU0lP Tl9SRVNVTFQpCi9ncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9kZWNvZGluZy5jOiAxMzcgaW4g YXNuMV9nZXRfbGVuZ3RoX2RlcigpCjEzMSAgICAgICAgICAgcHVudCA9IDE7CjEzMiAgICAgICAg ICAgaWYgKGspCjEzMyAgICAgCXsJCQkvKiBkZWZpbml0ZSBsZW5ndGggbWV0aG9kICovCjEzNCAg ICAgCSAgYW5zID0gMDsKMTM1ICAgICAJICB3aGlsZSAocHVudCA8PSBrICYmIHB1bnQgPCBkZXJf bGVuKQoxMzYgICAgIAkgICAgewo+Pj4gICAgIENJRCA0MzU3NjM6ICBJbnRlZ2VyIGhhbmRsaW5n IGlzc3VlcyAgKENPTlNUQU5UX0VYUFJFU1NJT05fUkVTVUxUKQo+Pj4gICAgICJhbnMgPCAoKCgx ID8gMCA6ICgoMSA/IDAgOiBhbnMpICsgMjU2KSkgLSAxIDwgMCkgPyB+KCgoKDEgPyAwIDogKCgx ID8gMCA6IGFucykgKyAyNTYpKSArIDEgPDwgMzBVTCAvKiBzaXplb2YgKCsoKDEgPyAwIDogYW5z KSArIDI1NikpICogOCAtIDIgKi8pIC0gMSkgKiAyICsgMSkgOiAoKDEgPyAwIDogKCgxID8gMCA6 IGFucykgKyAyNTYpKSArIDApKSAvIDI1NiIgaXMgYWx3YXlzIGZhbHNlIHJlZ2FyZGxlc3Mgb2Yg dGhlIHZhbHVlcyBvZiBpdHMgb3BlcmFuZHMuIFRoaXMgb2NjdXJzIGFzIHRoZSBzZWNvbmQgb3Bl cmFuZCBvZiAiPzoiLgoxMzcgICAgIAkgICAgICBpZiAoSU5UX01VTFRJUExZX09WRVJGTE9XIChh bnMsIDI1NikpCjEzOCAgICAgCQlyZXR1cm4gLTI7CjEzOSAgICAgCSAgICAgIGFucyAqPSAyNTY7 CjE0MCAgICAgCjE0MSAgICAgCSAgICAgIGlmIChJTlRfQUREX09WRVJGTE9XIChhbnMsICgodW5z aWduZWQpIGRlcltwdW50XSkpKQoxNDIgICAgIAkJcmV0dXJuIC0yOwoKSGVyZSBhcmUgdGhlIHJl bGF0ZWQgbWFjcm9zIGZyb20gZ251bGliOgoKI2RlZmluZSBfR0xfSU5UX05FR0FURV9DT05WRVJU KGUsIHYpICgoMSA/IDAgOiAoZSkpIC0gKHYpKQoKI2RlZmluZSBfR0xfSU5UX0NPTlZFUlQoZSwg dikgKCgxID8gMCA6IChlKSkgKyAodikpCgojZGVmaW5lIEVYUFJfU0lHTkVEKGUpIChfR0xfSU5U X05FR0FURV9DT05WRVJUIChlLCAxKSA8IDApCgojZGVmaW5lIFRZUEVfV0lEVEgodCkgKHNpemVv ZiAodCkgKiBDSEFSX0JJVCkKCiNkZWZpbmUgX0dMX1NJR05FRF9JTlRfTUFYSU1VTShlKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKChfR0xfSU5UX0NPTlZFUlQg KGUsIDEpIDw8IChUWVBFX1dJRFRIICgrIChlKSkgLSAyKSkgLSAxKSAqIDIgKyAxKQoKI2RlZmlu ZSBfR0xfSU5UX01JTklNVU0oZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogIChFWFBSX1NJR05FRCAoZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgID8gfiBfR0xfU0lHTkVEX0lOVF9NQVhJTVVN IChlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgOiBfR0xfSU5U X0NPTlZFUlQgKGUsIDApKQoKI2RlZmluZSBfR0xfSU5UX01BWElNVU0oZSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIChFWFBSX1NJR05FRCAoZSkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgID8g X0dMX1NJR05FRF9JTlRfTUFYSU1VTSAoZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgOiBfR0xfSU5UX05FR0FURV9DT05WRVJUIChlLCAxKSkKCiNkZWZpbmUg SU5UX01VTFRJUExZX1JBTkdFX09WRVJGTE9XKGEsIGIsIG1pbiwgbWF4KSAgICAgXAogICgoYikg PCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgPyAo KGEpIDwgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg ID8gKGEpIDwgKG1heCkgLyAoYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg ICA6IChiKSA9PSAtMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICAgPyAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg ICAgIDogKG1pbikgLyAoYikgPCAoYSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog ICA6IChiKSA9PSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ICAgPyAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgIDogKChhKSA8IDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgICA/IChhKSA8IChtaW4pIC8gKGIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgICAgOiAobWF4KSAvIChiKSA8IChhKSkpCgojIGRlZmluZSBfR0xfTVVMVElQTFlfT1ZF UkZMT1coYSwgYiwgbWluLCBtYXgpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAoKCht aW4pID09IDAgJiYgKCgoYSkgPCAwICYmIDAgPCAoYikpIHx8ICgoYikgPCAwICYmIDAgPCAoYSkp KSkgICAgICAgXAogICAgfHwgSU5UX01VTFRJUExZX1JBTkdFX09WRVJGTE9XIChhLCBiLCBtaW4s IG1heCkpCgojZGVmaW5lIF9HTF9CSU5BUllfT1BfT1ZFUkZMT1coYSwgYiwgb3BfcmVzdWx0X292 ZXJmbG93KSAgICAgICAgXAogIG9wX3Jlc3VsdF9vdmVyZmxvdyAoYSwgYiwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgX0dMX0lOVF9N SU5JTVVNIChfR0xfSU5UX0NPTlZFUlQgKGEsIGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAg X0dMX0lOVF9NQVhJTVVNIChfR0xfSU5UX0NPTlZFUlQgKGEsIGIpKSkKCiNkZWZpbmUgSU5UX01V TFRJUExZX09WRVJGTE9XKGEsIGIpIFwKICBfR0xfQklOQVJZX09QX09WRVJGTE9XIChhLCBiLCBf R0xfTVVMVElQTFlfT1ZFUkZMT1cpCgpUaGUgc3RhdGVtZW50IGluIHF1ZXN0aW9uIGlzIHRoZSBl eHBhbmRlZCAnKGEpIDwgKG1pbikgLyAoYiknIGZyb20KSU5UX01VTFRJUExZX1JBTkdFX09WRVJG TE9XLgoKJyhhKSA8IChtaW4pIC8gKGIpJwo9PiAnKGEpIDwgKF9HTF9JTlRfTUlOSU1VTSAoX0dM X0lOVF9DT05WRVJUIChhLCBiKSkpIC8gKGIpJwo9PiAnKGFucykgPCAoX0dMX0lOVF9NSU5JTVVN IChfR0xfSU5UX0NPTlZFUlQgKGFucywgMjU2KSkpIC8gKDI1NiknCj0+ICcoYW5zKSA8IFwKICAg ICAoRVhQUl9TSUdORUQgKF9HTF9JTlRfQ09OVkVSVCAoYW5zLCAyNTYpKSBcCiAgICAgID8gfiBf R0xfU0lHTkVEX0lOVF9NQVhJTVVNIChfR0xfSU5UX0NPTlZFUlQgKGFucywgMjU2KSkgXAogICAg ICA6IF9HTF9JTlRfQ09OVkVSVCAoX0dMX0lOVF9DT05WRVJUIChhbnMsIDI1NiksIDApKSBcCiAg ICAgLyAoMjU2KScKPT4gJyhhbnMpIDwgXAogICAgIChfR0xfSU5UX05FR0FURV9DT05WRVJUIChf R0xfSU5UX0NPTlZFUlQgKGFucywgMjU2KSwgMSkgPCAwKSBcCiAgICAgID8gfiBfR0xfU0lHTkVE X0lOVF9NQVhJTVVNIChfR0xfSU5UX0NPTlZFUlQgKGFucywgMjU2KSkgXAogICAgICA6IF9HTF9J TlRfQ09OVkVSVCAoX0dMX0lOVF9DT05WRVJUIChhbnMsIDI1NiksIDApKSBcCiAgICAgLyAoMjU2 KScKPT4gJyhhbnMpIDwgXAogICAgICgoKDEgPyAwIDogKF9HTF9JTlRfQ09OVkVSVCAoYW5zLCAy NTYpKSkgLSAoMSkpIDwgMCkgXAogICAgICA/IH4gX0dMX1NJR05FRF9JTlRfTUFYSU1VTSAoX0dM X0lOVF9DT05WRVJUIChhbnMsIDI1NikpIFwKICAgICAgOiBfR0xfSU5UX0NPTlZFUlQgKF9HTF9J TlRfQ09OVkVSVCAoYW5zLCAyNTYpLCAwKSkgXAogICAgIC8gKDI1NiknCj0+ICcoYW5zKSA8IFwK ICAgICAoKCgxID8gMCA6ICgoMSA/IDAgOiAoYW5zKSkgKyAoMjU2KSkpIC0gKDEpKSA8IDApIFwK ICAgICAgPyB+ICgoKF9HTF9JTlRfQ09OVkVSVCAoX0dMX0lOVF9DT05WRVJUIChhbnMsIDI1Niks IDEpIDw8IChUWVBFX1dJRFRIICgrIChfR0xfSU5UX0NPTlZFUlQgKGFucywgMjU2KSkpIC0gMikp IC0gMSkgKiAyICsgMSkgXAogICAgICA6IF9HTF9JTlRfQ09OVkVSVCAoX0dMX0lOVF9DT05WRVJU IChhbnMsIDI1NiksIDApKSBcCiAgICAgLyAoMjU2KScKPT4gJyhhbnMpIDwgXAogICAgICgoKDEg PyAwIDogKCgxID8gMCA6IChhbnMpKSArICgyNTYpKSkgLSAoMSkpIDwgMCkgXAogICAgICA/IH4g KCgoKDEgPyAwIDogKF9HTF9JTlRfQ09OVkVSVCAoYW5zLCAyNTYpKSkgKyAoMSkpIDw8IChUWVBF X1dJRFRIICgrIChfR0xfSU5UX0NPTlZFUlQgKGFucywgMjU2KSkpIC0gMikpIC0gMSkgKiAyICsg MSkgXAogICAgICA6IF9HTF9JTlRfQ09OVkVSVCAoX0dMX0lOVF9DT05WRVJUIChhbnMsIDI1Niks IDApKSBcCiAgICAgLyAoMjU2KScKPT4gJyhhbnMpIDwgXAogICAgICgoKDEgPyAwIDogKCgxID8g MCA6IChhbnMpKSArICgyNTYpKSkgLSAoMSkpIDwgMCkgXAogICAgICA/IH4gKCgoKDEgPyAwIDog KCgxID8gMCA6IChhbnMpKSArICgyNTYpKSkgKyAoMSkpIDw8IChUWVBFX1dJRFRIICgrIChfR0xf SU5UX0NPTlZFUlQgKGFucywgMjU2KSkpIC0gMikpIC0gMSkgKiAyICsgMSkgXAogICAgICA6IF9H TF9JTlRfQ09OVkVSVCAoX0dMX0lOVF9DT05WRVJUIChhbnMsIDI1NiksIDApKSBcCiAgICAgLyAo MjU2KScKPT4gJyhhbnMpIDwgXAogICAgICgoKDEgPyAwIDogKCgxID8gMCA6IChhbnMpKSArICgy NTYpKSkgLSAoMSkpIDwgMCkgXAogICAgICA/IH4gKCgoKDEgPyAwIDogKCgxID8gMCA6IChhbnMp KSArICgyNTYpKSkgKyAoMSkpIDw8ICgoc2l6ZW9mICgrIChfR0xfSU5UX0NPTlZFUlQgKGFucywg MjU2KSkpICogQ0hBUl9CSVQpIC0gMikpIC0gMSkgKiAyICsgMSkgXAogICAgICA6IF9HTF9JTlRf Q09OVkVSVCAoX0dMX0lOVF9DT05WRVJUIChhbnMsIDI1NiksIDApKSBcCiAgICAgLyAoMjU2KScK PT4gJyhhbnMpIDwgXAogICAgICgoKDEgPyAwIDogKCgxID8gMCA6IChhbnMpKSArICgyNTYpKSkg LSAoMSkpIDwgMCkgXAogICAgICA/IH4gKCgoKDEgPyAwIDogKCgxID8gMCA6IChhbnMpKSArICgy NTYpKSkgKyAoMSkpIDw8ICgoc2l6ZW9mICgrICgoMSA/IDAgOiAoYW5zKSkgKyAoMSkpKSAqIENI QVJfQklUKSAtIDIpKSAtIDEpICogMiArIDEpIFwKICAgICAgOiBfR0xfSU5UX0NPTlZFUlQgKF9H TF9JTlRfQ09OVkVSVCAoYW5zLCAyNTYpLCAwKSkgXAogICAgIC8gKDI1NiknCj0+ICcoYW5zKSA8 IFwKICAgICAoKCgxID8gMCA6ICgoMSA/IDAgOiAoYW5zKSkgKyAoMjU2KSkpIC0gKDEpKSA8IDAp IFwKICAgICAgPyB+ICgoKCgxID8gMCA6ICgoMSA/IDAgOiAoYW5zKSkgKyAoMjU2KSkpICsgKDEp KSA8PCAoKHNpemVvZiAoKyAoKDEgPyAwIDogKGFucykpICsgKDEpKSkgKiBDSEFSX0JJVCkgLSAy KSkgLSAxKSAqIDIgKyAxKSBcCiAgICAgIDogKCgxID8gMCA6IChfR0xfSU5UX0NPTlZFUlQgKGFu cywgMjU2KSkpICsgKDApKSApIFwKICAgICAvICgyNTYpJwo9PiAnKGFucykgPCBcCiAgICAgKCgo MSA/IDAgOiAoKDEgPyAwIDogKGFucykpICsgKDI1NikpKSAtICgxKSkgPCAwKSBcCiAgICAgID8g fiAoKCgoMSA/IDAgOiAoKDEgPyAwIDogKGFucykpICsgKDI1NikpKSArICgxKSkgPDwgKChzaXpl b2YgKCsgKCgxID8gMCA6IChhbnMpKSArICgxKSkpICogQ0hBUl9CSVQpIC0gMikpIC0gMSkgKiAy ICsgMSkgXAogICAgICA6ICgoMSA/IDAgOiAoKDEgPyAwIDogKGFucykpICsgKDI1NikpKSArICgw KSkgKSBcCiAgICAgLyAoMjU2KScKCgonX0dMX0lOVF9DT05WRVJUKGUsIHYpJyByZXR1cm5zIGEg dmFsdWUgd2l0aCB0aGUgY29tbW9uIHJlYWwgdHlwZSBvZiAnZScgYW5kICd2JyBhbmQKdGhlIHZh bHVlIG9mICd2Jy4gU2luY2UgdGhlIGNvbW1vbiB0eXBlIG9mICd1bnNpZ25lZCBpbnQgYW5zJyBh bmQgJzI1NicgaXMKJ3Vuc2lnbmVkIGludCcsICdfR0xfSU5UX0NPTlZFUlQgKGFucywgMjU2KScg aXMgJzI1NlUnLgoKJ19HTF9JTlRfTUlOSU1VTSAoMjU2VSknIHJldHVybnMgdGhlIG1pbmltdW0g dmFsdWUgb2YgJ3Vuc2lnbmVkIGludCcsIGkuZS4gMC4KCicoYW5zKSA8IChfR0xfSU5UX01JTklN VU0gKF9HTF9JTlRfQ09OVkVSVCAoYW5zLCAyNTYpKSkgLyAoMjU2KScgPT4gJyhhbnMpIDwgMCAv ICgyNTYpJyA9PiAnKGFucykgPCAwJwoKRm9yICd1bnNpZ25lZCBpbnQgYW5zJywgdGhlIHJlc3Vs dCBpcyBhbHdheXMgZmFsc2UuCgpGdXJ0aGVybW9yZSwgaW4gJ0lOVF9NVUxUSVBMWV9SQU5HRV9P VkVSRkxPVycsICdhJyBpcyAndW5zaWduZWQgaW50IGFucycgYW5kICdiJwppcyAnMjU2Jy4gV2Ug Y2FuIHNraXAgdGhlIHN0YXRlbWVudHMgZm9yICdiIDwgMCcgYW5kICdiID09IDAnIGFuZCByZWR1 Y2UgdGhlCm1hY3JvIHRvIAoKICAoYSkgPCAwICAgICAgICAgICAgICAgIFwKICAgPyAoYSkgPCAo bWluKSAvIChiKSAgIFwKICAgOiAobWF4KSAvIChiKSA8IChhKSkpCj0+CiAgKGFucykgPCAwICAg ICAgICAgICAgICAgICAgXAogICA/IChhbnMpIDwgKG1pbikgLyAoMjU2KSAgIFwKICAgOiAobWF4 KSAvICgyNTYpIDwgKGFucykpKSBcCgpTaW5jZSAnYW5zJyBpcyAndW5zaWduZWQgaW50JywgdGhl IHN0YXRlbWVudCBpbiBxdWVzdGlvbiwgJyhhKSA8IChtaW4pIC8gKGIpJywKaXMgYWx3YXlzIGln bm9yZWQuIFRodXMsIHRoZSByZXN1bHQgb2YgdGhlIHN0YXRlbWVudCBkb2Vzbid0IGV2ZW4gbWF0 dGVyLgoKU3VtbWFyeToKICBXZSBjYW4gaWdub3JlIENJRCA0MzU3NjMgYmVjYXVzZSB0aGUgc3Rh dGVtZW50IGluIHF1ZXN0aW9uIGlzIGRlc2lnbmVkIHRvIGJlCiAgIkZBTFNFIiBhbmQgZXZlbiBp Z25vcmVkLgoKPT09PT09PT09PT09PT09PT09CgoKRGFuaWVsIEF4dGVucyAoNCk6CiAgcG9zaXhf d3JhcDogdHdlYWtzIGluIHByZXBhcmF0aW9uIGZvciBsaWJ0YXNuMQogIGxpYnRhc24xOiBpbXBv cnQgbGlidGFzbjEtNC4xOS4wCiAgbGlidGFzbjE6IGNvbXBpbGUgaW50byBhc24xIG1vZHVsZQog IGFzbjFfdGVzdDogdGVzdCBtb2R1bGUgZm9yIGxpYnRhc24xCgpHYXJ5IExpbiAoMjMpOgogIGxp YnRhc24xOiBkaXNhYmxlIGNvZGUgbm90IG5lZWRlZCBpbiBncnViCiAgbGlidGFzbjE6IHJlcGxh Y2Ugc3RyY2F0KCkgd2l0aCBzdHJjcHkoKSBpbiBfYXNuMV9zdHJfY2F0KCkKICBsaWJ0YXNuMTog cmVwbGFjZSBzdHJjYXQoKSB3aXRoIF9hc24xX3N0cl9jYXQoKQogIGxpYnRhc24xOiBhZGp1c3Qg dGhlIGhlYWRlciBwYXRocyBpbiBsaWJ0YXNuMS5oCiAgbGlidGFzbjE6IFVzZSBncnViX2Rpdm1v ZDY0KCkgZm9yIGRpdmlzaW9uCiAgbGlidGFzbjE6IGZpeCB0aGUgcG90ZW50aWFsIGJ1ZmZlciBv dmVycnVuCiAgYXNuMV90ZXN0OiBpbmNsdWRlIGFzbjFfdGVzdC5oIG9ubHkKICBhc24xX3Rlc3Q6 IHJlbmFtZSB0aGUgbWFpbiBmdW5jdGlvbnMgdG8gdGhlIHRlc3QgbmFtZXMKICBhc24xX3Rlc3Q6 IHJldHVybiBlaXRoZXIgMCBvciAxIHRvIHJlZmxlY3QgdGhlIHJlc3VsdHMKICBhc24xX3Rlc3Q6 IHJlbW92ZSAndmVyYm9zZScgYW5kIHRoZSB1bm5lY2Vzc2FyeSBwcmludGYoKQogIGFzbjFfdGVz dDogcHJpbnQgdGhlIGVycm9yIG1lc3NhZ2VzIHdpdGggZ3J1Yl9wcmludGYoKQogIGFzbjFfdGVz dDogdXNlIHRoZSBncnViLXNwZWNpZmljIGZ1bmN0aW9ucyBhbmQgdHlwZXMKICBhc24xX3Rlc3Q6 IGVuYWJsZSB0aGUgdGVzdGNhc2Ugb25seSB3aGVuIEdSVUJfTE9OR19NQVggaXMgbGFyZ2VyIHRo YW4KICAgIEdSVUJfSU5UX01BWAogIGxpYnRhc24xOiBBZGQgdGhlIGRvY3VtZW50YXRpb24KICB0 c3MyOiBBZGQgVFBNMiBidWZmZXIgaGFuZGxpbmcgZnVuY3Rpb25zCiAgdHNzMjogQWRkIFRQTTIg dHlwZXMgYW5kIE1hcnNoYWwvVW5tYXJzaGFsIGZ1bmN0aW9ucwogIHRzczI6IEFkZCBUUE0yIFNv ZnR3YXJlIFN0YWNrIChUU1MyKSBzdXBwb3J0CiAgdHBtMl9rZXlfcHJvdGVjdG9yOiBTdXBwb3J0 IGF1dGhvcml6ZWQgcG9saWN5CiAgY3J5cHRvZGlzazogd2lwZSBvdXQgdGhlIGNhY2hlZCBrZXlz IGZyb20gcHJvdGVjdG9ycwogIGRpc2tmaWx0ZXI6IGxvb2sgdXAgY3J5cHRvZGlzayBkZXZpY2Vz IGZpcnN0CiAgdHBtMl9rZXlfcHJvdGVjdG9yOiBBZGQgZ3J1Yi1lbXUgc3VwcG9ydAogIHRlc3Rz OiBBZGQgdHBtMl9rZXlfcHJvdGVjdG9yX3Rlc3QKICBkb2NzOiBEb2N1bWVudCBUUE0yIGtleSBw cm90ZWN0b3IKCkhlcm5hbiBHYXR0YSAoNCk6CiAga2V5X3Byb3RlY3RvcjogQWRkIGtleSBwcm90 ZWN0b3JzIGZyYW1ld29yawogIGtleV9wcm90ZWN0b3I6IEFkZCBUUE0yIEtleSBQcm90ZWN0b3IK ICBjcnlwdG9kaXNrOiBTdXBwb3J0IGtleSBwcm90ZWN0b3JzCiAgdXRpbC9ncnViLXByb3RlY3Q6 IEFkZCBuZXcgdG9vbAoKUGF0cmljayBDb2xwICgyKToKICB0cG0yX2tleV9wcm90ZWN0b3I6IElt cGxlbWVudCBOViBpbmRleAogIGNyeXB0b2Rpc2s6IEZhbGxiYWNrIHRvIHBhc3NwaHJhc2UKCiAu Z2l0aWdub3JlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIE1h a2VmaWxlLnV0aWwuZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzkgKwogYXV0 b2dlbi5zaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzMyArCiBjb25m aWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMwICsKIGRvY3Mv Z3J1Yi1kZXYudGV4aSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzUgKwogZG9jcy9n cnViLnRleGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUzNyArKystCiBkb2Nz L21hbi9ncnViLXByb3RlY3QuaDJtICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsKIGdydWIt Y29yZS9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogZ3J1Yi1j b3JlL01ha2VmaWxlLmNvcmUuZGVmICAgICAgICAgICAgICAgICAgIHwgICA2MCArCiBncnViLWNv cmUvY29tbWFuZHMvdHBtMl9rZXlfcHJvdGVjdG9yL2FyZ3MuYyAgfCAgMTI3ICsKIC4uLi9jb21t YW5kcy90cG0yX2tleV9wcm90ZWN0b3IvbW9kdWxlLmMgICAgICB8IDEyMzggKysrKysrKysKIGdy dWItY29yZS9jb21tYW5kcy90cG0yX2tleV9wcm90ZWN0b3IvdHBtMi5oICB8ICAgMzYgKwogLi4u L2NvbW1hbmRzL3RwbTJfa2V5X3Byb3RlY3Rvci90cG0yX2FyZ3MuaCAgIHwgICA0OSArCiAuLi4v Y29tbWFuZHMvdHBtMl9rZXlfcHJvdGVjdG9yL3RwbTJrZXkuYXNuICAgfCAgIDQ5ICsKIC4uLi9j b21tYW5kcy90cG0yX2tleV9wcm90ZWN0b3IvdHBtMmtleS5jICAgICB8ICA0OTkgKysrKwogLi4u L2NvbW1hbmRzL3RwbTJfa2V5X3Byb3RlY3Rvci90cG0ya2V5LmggICAgIHwgICA4NyArCiAuLi4v dHBtMl9rZXlfcHJvdGVjdG9yL3RwbTJrZXlfYXNuMV90YWIuYyAgICAgfCAgIDYzICsKIGdydWIt Y29yZS9kaXNrL2NyeXB0b2Rpc2suYyAgICAgICAgICAgICAgICAgICB8ICAyNjggKy0KIGdydWIt Y29yZS9kaXNrL2Rpc2tmaWx0ZXIuYyAgICAgICAgICAgICAgICAgICB8ICAgMzEgKy0KIGdydWIt Y29yZS9kaXNrL2tleV9wcm90ZWN0b3IuYyAgICAgICAgICAgICAgICB8ICAgNzMgKwogZ3J1Yi1j b3JlL2tlcm4vZW11L21haW4uYyAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArLQogZ3J1Yi1j b3JlL2tlcm4vZW11L21pc2MuYyAgICAgICAgICAgICAgICAgICAgIHwgICA1MSArCiBncnViLWNv cmUvbGliL2VmaS90Y2cyLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMTQzICsKIC4uLmFzbjEt ZGlzYWJsZS1jb2RlLW5vdC1uZWVkZWQtaW4tZ3J1Yi5wYXRjaCB8ICAzMjAgKysrCiAuLi4tc3Ry Y2F0LXdpdGgtc3RyY3B5LWluLV9hc24xX3N0cl9jYXQucGF0Y2ggfCAgIDMzICsKIC4uLm4xLXJl cGxhY2Utc3RyY2F0LXdpdGgtX2FzbjFfc3RyX2NhdC5wYXRjaCB8ICAgNzEgKwogLi4uZGp1c3Qt dGhlLWhlYWRlci1wYXRocy1pbi1saWJ0YXNuMS5oLnBhdGNoIHwgICAzOSArCiAuLi50YXNuMS1V c2UtZ3J1Yl9kaXZtb2Q2NC1mb3ItZGl2aXNpb24ucGF0Y2ggfCAgIDMxICsKIC4uLnNuMS1maXgt dGhlLXBvdGVudGlhbC1idWZmZXItb3ZlcnJ1bi5wYXRjaCB8ICAgMzYgKwogLi4uNy1hc24xX3Rl c3QtaW5jbHVkZS1hc24xX3Rlc3QuaC1vbmx5LnBhdGNoIHwgIDE2NCArKwogLi4uLXRoZS1tYWlu LWZ1bmN0aW9ucy10by10aGUtdGVzdC1uYW1lLnBhdGNoIHwgIDEyOSArCiAuLi4tZWl0aGVyLTAt b3ItMS10by1yZWZsZWN0LXRoZS1yZXN1bHQucGF0Y2ggfCAgIDc4ICsKIC4uLmUtdmVyYm9zZS1h bmQtdGhlLXVubmVjZXNzYXJ5LXByaW50Zi5wYXRjaCB8ICAxNzMgKysKIC4uLi10aGUtZXJyb3It bWVzc2FnZXMtd2l0aC1ncnViX3ByaW50Zi5wYXRjaCB8ICA0ODUgKysrKwogLi4uaGUtZ3J1Yi1z cGVjaWZpYy1mdW5jdGlvbnMtYW5kLXR5cGVzLnBhdGNoIHwgIDI2MyArKwogLi4uLXRoZS10ZXN0 Y2FzZS1vbmx5LXdoZW4tR1JVQl9MT05HX01BLnBhdGNoIHwgICA0OCArCiBncnViLWNvcmUvbGli L2xpYnRhc24xL0NPUFlJTkcgICAgICAgICAgICAgICAgfCAgIDE2ICsKIGdydWItY29yZS9saWIv bGlidGFzbjEvUkVBRE1FLm1kICAgICAgICAgICAgICB8ICAgOTggKwogZ3J1Yi1jb3JlL2xpYi9s aWJ0YXNuMS9saWIvY29kaW5nLmMgICAgICAgICAgIHwgMTQyNSArKysrKysrKysrCiBncnViLWNv cmUvbGliL2xpYnRhc24xL2xpYi9kZWNvZGluZy5jICAgICAgICAgfCAyNTAxICsrKysrKysrKysr KysrKysrCiBncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9lbGVtZW50LmMgICAgICAgICAgfCAx MTA5ICsrKysrKysrCiBncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9lbGVtZW50LmggICAgICAg ICAgfCAgIDQyICsKIGdydWItY29yZS9saWIvbGlidGFzbjEvbGliL2Vycm9ycy5jICAgICAgICAg ICB8ICAxMDAgKwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvZ3N0ci5jICAgICAgICAgICAg IHwgICA3NCArCiBncnViLWNvcmUvbGliL2xpYnRhc24xL2xpYi9nc3RyLmggICAgICAgICAgICAg fCAgIDUwICsKIGdydWItY29yZS9saWIvbGlidGFzbjEvbGliL2ludC5oICAgICAgICAgICAgICB8 ICAyMjEgKysKIGdydWItY29yZS9saWIvbGlidGFzbjEvbGliL3BhcnNlcl9hdXguYyAgICAgICB8 IDExNzggKysrKysrKysKIGdydWItY29yZS9saWIvbGlidGFzbjEvbGliL3BhcnNlcl9hdXguaCAg ICAgICB8ICAxNzIgKysKIGdydWItY29yZS9saWIvbGlidGFzbjEvbGliL3N0cnVjdHVyZS5jICAg ICAgICB8IDEyMjUgKysrKysrKysKIGdydWItY29yZS9saWIvbGlidGFzbjEvbGliL3N0cnVjdHVy ZS5oICAgICAgICB8ICAgNDYgKwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWJ0YXNuMS5oICAg ICAgICAgICAgIHwgIDY0MyArKysrKwogLi4uL3Rlc3RzL0NWRS0yMDE4LTEwMDA2NTQtMV9hc24x X3RhYi5oICAgICAgIHwgICAzMiArCiAuLi4vdGVzdHMvQ1ZFLTIwMTgtMTAwMDY1NC0yX2FzbjFf dGFiLmggICAgICAgfCAgIDM2ICsKIC4uLi9saWIvbGlidGFzbjEvdGVzdHMvQ1ZFLTIwMTgtMTAw MDY1NC5jICAgICB8ICAgNzIgKwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9UZXN0X292 ZXJmbG93LmMgIHwgIDE2OCArKwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9UZXN0X3Np bXBsZS5jICAgIHwgIDIyNiArKwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9UZXN0X3N0 cmluZ3MuYyAgIHwgIDE1NiArCiAuLi4vbGliL2xpYnRhc24xL3Rlc3RzL29iamVjdC1pZC1kZWNv ZGluZy5jICAgfCAgMTIxICsKIC4uLi9saWIvbGlidGFzbjEvdGVzdHMvb2JqZWN0LWlkLWVuY29k aW5nLmMgICB8ICAxMzMgKwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9vY3RldC1zdHJp bmcuYyAgIHwgIDIzMCArKwogZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9yZXByb2R1Y2Vy cy5jICAgIHwgICA5MCArCiBncnViLWNvcmUvbGliL2xpYnRhc24xX3dyYXAvd3JhcC5jICAgICAg ICAgICAgfCAgIDI3ICsKIGdydWItY29yZS9saWIvcG9zaXhfd3JhcC9jLWN0eXBlLmggICAgICAg ICAgICB8ICAxMTQgKwogZ3J1Yi1jb3JlL2xpYi9wb3NpeF93cmFwL2xpbWl0cy5oICAgICAgICAg ICAgIHwgICAgMSArCiBncnViLWNvcmUvbGliL3Bvc2l4X3dyYXAvc3RkbGliLmggICAgICAgICAg ICAgfCAgICA4ICsKIGdydWItY29yZS9saWIvcG9zaXhfd3JhcC9zdHJpbmcuaCAgICAgICAgICAg ICB8ICAgMjEgKwogZ3J1Yi1jb3JlL2xpYi9wb3NpeF93cmFwL3N5cy90eXBlcy5oICAgICAgICAg IHwgICAgMSArCiBncnViLWNvcmUvbGliL3RzczIvYnVmZmVyLmMgICAgICAgICAgICAgICAgICAg fCAgMTQ3ICsKIGdydWItY29yZS9saWIvdHNzMi90Y2cyLmggICAgICAgICAgICAgICAgICAgICB8 ICAgMzUgKwogZ3J1Yi1jb3JlL2xpYi90c3MyL3RjZzJfZW11LmMgICAgICAgICAgICAgICAgIHwg ICA0OSArCiBncnViLWNvcmUvbGliL3RzczIvdHBtMl9jbWQuYyAgICAgICAgICAgICAgICAgfCAx MDQzICsrKysrKysKIGdydWItY29yZS9saWIvdHNzMi90cG0yX2NtZC5oICAgICAgICAgICAgICAg ICB8ICAxNTcgKysKIGdydWItY29yZS9saWIvdHNzMi90c3MyLmMgICAgICAgICAgICAgICAgICAg ICB8ICAgMjEgKwogZ3J1Yi1jb3JlL2xpYi90c3MyL3RzczJfYnVmZmVyLmggICAgICAgICAgICAg IHwgICA2NCArCiBncnViLWNvcmUvbGliL3RzczIvdHNzMl9tdS5jICAgICAgICAgICAgICAgICAg fCAxMTc0ICsrKysrKysrCiBncnViLWNvcmUvbGliL3RzczIvdHNzMl9tdS5oICAgICAgICAgICAg ICAgICAgfCAgMzk3ICsrKwogZ3J1Yi1jb3JlL2xpYi90c3MyL3RzczJfc3RydWN0cy5oICAgICAg ICAgICAgIHwgIDc5NiArKysrKysKIGdydWItY29yZS9saWIvdHNzMi90c3MyX3R5cGVzLmggICAg ICAgICAgICAgICB8ICA0MDQgKysrCiBncnViLWNvcmUvdGVzdHMvYXNuMS9hc24xX3Rlc3QuYyAg ICAgICAgICAgICAgfCAgIDUwICsKIGdydWItY29yZS90ZXN0cy9hc24xL2FzbjFfdGVzdC5oICAg ICAgICAgICAgICB8ICAgNDUgKwogZ3J1Yi1jb3JlL3Rlc3RzL2xpYi9mdW5jdGlvbmFsX3Rlc3Qu YyAgICAgICAgIHwgICAgMSArCiBpbmNsdWRlL2dydWIvY3J5cHRvZGlzay5oICAgICAgICAgICAg ICAgICAgICAgfCAgIDE2ICsKIGluY2x1ZGUvZ3J1Yi9lbXUvbWlzYy5oICAgICAgICAgICAgICAg ICAgICAgICB8ICAgIDUgKwogaW5jbHVkZS9ncnViL2tleV9wcm90ZWN0b3IuaCAgICAgICAgICAg ICAgICAgIHwgICA0NyArCiB0ZXN0cy9hc24xX3Rlc3QuaW4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDExICsKIHRlc3RzL3RwbTJfa2V5X3Byb3RlY3Rvcl90ZXN0LmluICAgICAgICAg ICAgICB8ICAzODkgKysrCiB0ZXN0cy91dGlsL2dydWItc2hlbGwuaW4gICAgICAgICAgICAgICAg ICAgICAgfCAgICA2ICstCiB1dGlsL2dydWItcHJvdGVjdC5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAxNDA3ICsrKysrKysrKysKIDg4IGZpbGVzIGNoYW5nZWQsIDIxODU2IGluc2VydGlv bnMoKyksIDgwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvY3MvbWFuL2dydWIt cHJvdGVjdC5oMm0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvY29tbWFuZHMvdHBtMl9r ZXlfcHJvdGVjdG9yL2FyZ3MuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9jb21tYW5k cy90cG0yX2tleV9wcm90ZWN0b3IvbW9kdWxlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNv cmUvY29tbWFuZHMvdHBtMl9rZXlfcHJvdGVjdG9yL3RwbTIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IGdydWItY29yZS9jb21tYW5kcy90cG0yX2tleV9wcm90ZWN0b3IvdHBtMl9hcmdzLmgKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvY29tbWFuZHMvdHBtMl9rZXlfcHJvdGVjdG9yL3RwbTJr ZXkuYXNuCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2NvbW1hbmRzL3RwbTJfa2V5X3By b3RlY3Rvci90cG0ya2V5LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvY29tbWFuZHMv dHBtMl9rZXlfcHJvdGVjdG9yL3RwbTJrZXkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29y ZS9jb21tYW5kcy90cG0yX2tleV9wcm90ZWN0b3IvdHBtMmtleV9hc24xX3RhYi5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2Rpc2sva2V5X3Byb3RlY3Rvci5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgZ3J1Yi1jb3JlL2xpYi9lZmkvdGNnMi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1j b3JlL2xpYi9saWJ0YXNuMS1wYXRjaGVzLzAwMDEtbGlidGFzbjEtZGlzYWJsZS1jb2RlLW5vdC1u ZWVkZWQtaW4tZ3J1Yi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvbGli dGFzbjEtcGF0Y2hlcy8wMDAyLWxpYnRhc24xLXJlcGxhY2Utc3RyY2F0LXdpdGgtc3RyY3B5LWlu LV9hc24xX3N0cl9jYXQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xp YnRhc24xLXBhdGNoZXMvMDAwMy1saWJ0YXNuMS1yZXBsYWNlLXN0cmNhdC13aXRoLV9hc24xX3N0 cl9jYXQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYnRhc24xLXBh dGNoZXMvMDAwNC1saWJ0YXNuMS1hZGp1c3QtdGhlLWhlYWRlci1wYXRocy1pbi1saWJ0YXNuMS5o LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS1wYXRjaGVz LzAwMDUtbGlidGFzbjEtVXNlLWdydWJfZGl2bW9kNjQtZm9yLWRpdmlzaW9uLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS1wYXRjaGVzLzAwMDYtbGlidGFz bjEtZml4LXRoZS1wb3RlbnRpYWwtYnVmZmVyLW92ZXJydW4ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBncnViLWNvcmUvbGliL2xpYnRhc24xLXBhdGNoZXMvMDAwNy1hc24xX3Rlc3QtaW5jbHVk ZS1hc24xX3Rlc3QuaC1vbmx5LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xp Yi9saWJ0YXNuMS1wYXRjaGVzLzAwMDgtYXNuMV90ZXN0LXJlbmFtZS10aGUtbWFpbi1mdW5jdGlv bnMtdG8tdGhlLXRlc3QtbmFtZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9s aWIvbGlidGFzbjEtcGF0Y2hlcy8wMDA5LWFzbjFfdGVzdC1yZXR1cm4tZWl0aGVyLTAtb3ItMS10 by1yZWZsZWN0LXRoZS1yZXN1bHQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUv bGliL2xpYnRhc24xLXBhdGNoZXMvMDAxMC1hc24xX3Rlc3QtcmVtb3ZlLXZlcmJvc2UtYW5kLXRo ZS11bm5lY2Vzc2FyeS1wcmludGYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUv bGliL2xpYnRhc24xLXBhdGNoZXMvMDAxMS1hc24xX3Rlc3QtcHJpbnQtdGhlLWVycm9yLW1lc3Nh Z2VzLXdpdGgtZ3J1Yl9wcmludGYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUv bGliL2xpYnRhc24xLXBhdGNoZXMvMDAxMi1hc24xX3Rlc3QtdXNlLXRoZS1ncnViLXNwZWNpZmlj LWZ1bmN0aW9ucy1hbmQtdHlwZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUv bGliL2xpYnRhc24xLXBhdGNoZXMvMDAxMy1hc24xX3Rlc3QtZW5hYmxlLXRoZS10ZXN0Y2FzZS1v bmx5LXdoZW4tR1JVQl9MT05HX01BLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3Jl L2xpYi9saWJ0YXNuMS9DT1BZSU5HCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9s aWJ0YXNuMS9SRUFETUUubWQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYnRh c24xL2xpYi9jb2RpbmcuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvbGlidGFz bjEvbGliL2RlY29kaW5nLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYnRh c24xL2xpYi9lbGVtZW50LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYnRh c24xL2xpYi9lbGVtZW50LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYnRh c24xL2xpYi9lcnJvcnMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvbGlidGFz bjEvbGliL2dzdHIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvbGlidGFzbjEv bGliL2dzdHIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvbGlidGFzbjEvbGli L2ludC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIvcGFy c2VyX2F1eC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9saWIv cGFyc2VyX2F1eC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS9s aWIvc3RydWN0dXJlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYnRhc24x L2xpYi9zdHJ1Y3R1cmUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvbGlidGFz bjEvbGlidGFzbjEuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvbGlidGFzbjEv dGVzdHMvQ1ZFLTIwMTgtMTAwMDY1NC0xX2FzbjFfdGFiLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBn cnViLWNvcmUvbGliL2xpYnRhc24xL3Rlc3RzL0NWRS0yMDE4LTEwMDA2NTQtMl9hc24xX3RhYi5o CiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9DVkUtMjAx OC0xMDAwNjU0LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYnRhc24xL3Rl c3RzL1Rlc3Rfb3ZlcmZsb3cuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvbGli dGFzbjEvdGVzdHMvVGVzdF9zaW1wbGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9s aWIvbGlidGFzbjEvdGVzdHMvVGVzdF9zdHJpbmdzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnVi LWNvcmUvbGliL2xpYnRhc24xL3Rlc3RzL29iamVjdC1pZC1kZWNvZGluZy5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS90ZXN0cy9vYmplY3QtaWQtZW5jb2Rpbmcu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvbGlidGFzbjEvdGVzdHMvb2N0ZXQt c3RyaW5nLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYnRhc24xL3Rlc3Rz L3JlcHJvZHVjZXJzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYnRhc24x X3dyYXAvd3JhcC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9wb3NpeF93cmFw L2MtY3R5cGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvdHNzMi9idWZmZXIu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvdHNzMi90Y2cyLmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBncnViLWNvcmUvbGliL3RzczIvdGNnMl9lbXUuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGdydWItY29yZS9saWIvdHNzMi90cG0yX2NtZC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1 Yi1jb3JlL2xpYi90c3MyL3RwbTJfY21kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUv bGliL3RzczIvdHNzMi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi90c3MyL3Rz czJfYnVmZmVyLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL3RzczIvdHNzMl9t dS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi90c3MyL3RzczJfbXUuaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvdHNzMi90c3MyX3N0cnVjdHMuaAogY3JlYXRl IG1vZGUgMTAwNjQ0IGdydWItY29yZS9saWIvdHNzMi90c3MyX3R5cGVzLmgKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBncnViLWNvcmUvdGVzdHMvYXNuMS9hc24xX3Rlc3QuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGdydWItY29yZS90ZXN0cy9hc24xL2FzbjFfdGVzdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg aW5jbHVkZS9ncnViL2tleV9wcm90ZWN0b3IuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2Fz bjFfdGVzdC5pbgogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL3RwbTJfa2V5X3Byb3RlY3Rvcl90 ZXN0LmluCiBjcmVhdGUgbW9kZSAxMDA2NDQgdXRpbC9ncnViLXByb3RlY3QuYwoKUmFuZ2UtZGlm ZiBhZ2FpbnN0IHYyMjoKIDE6ICAyY2RiNDVhMDggPSAgMTogIDc2YmY4ZjdhZCBwb3NpeF93cmFw OiB0d2Vha3MgaW4gcHJlcGFyYXRpb24gZm9yIGxpYnRhc24xCiAyOiAgZjA2OWI0ZTM1ID0gIDI6 ICA1N2Y5NTQwZWIgbGlidGFzbjE6IGltcG9ydCBsaWJ0YXNuMS00LjE5LjAKIDM6ICA1NmJkYjhj OWMgPSAgMzogIDk1NjliMWE2OCBsaWJ0YXNuMTogZGlzYWJsZSBjb2RlIG5vdCBuZWVkZWQgaW4g Z3J1YgogNDogIGZkOTVkMWEwYyA9ICA0OiAgYjIyY2VkOTUzIGxpYnRhc24xOiByZXBsYWNlIHN0 cmNhdCgpIHdpdGggc3RyY3B5KCkgaW4gX2FzbjFfc3RyX2NhdCgpCiA1OiAgYjhjZjcyYzBiID0g IDU6ICA5YjgyMmMxNDIgbGlidGFzbjE6IHJlcGxhY2Ugc3RyY2F0KCkgd2l0aCBfYXNuMV9zdHJf Y2F0KCkKIDY6ICBiMjc0YTFlMGYgPSAgNjogIDZmMDMzYmYzYSBsaWJ0YXNuMTogYWRqdXN0IHRo ZSBoZWFkZXIgcGF0aHMgaW4gbGlidGFzbjEuaAogNzogIGU0NTgxZTM2ZSA9ICA3OiAgMjRlMjVj ZTdiIGxpYnRhc24xOiBVc2UgZ3J1Yl9kaXZtb2Q2NCgpIGZvciBkaXZpc2lvbgogODogIGZkYjJh NjZlNyA9ICA4OiAgZTM4NDdkYjg2IGxpYnRhc24xOiBmaXggdGhlIHBvdGVudGlhbCBidWZmZXIg b3ZlcnJ1bgogOTogIDM3Mzk5MjBkMyA9ICA5OiAgMTNiYTQ3NzY2IGFzbjFfdGVzdDogaW5jbHVk ZSBhc24xX3Rlc3QuaCBvbmx5CjEwOiAgMTIyNTgzMWY3ID0gMTA6ICBkMDNjNzBlZjggYXNuMV90 ZXN0OiByZW5hbWUgdGhlIG1haW4gZnVuY3Rpb25zIHRvIHRoZSB0ZXN0IG5hbWVzCjExOiAgYWE0 ZjY4YjU2ID0gMTE6ICBmNzdmZTA0ZjkgYXNuMV90ZXN0OiByZXR1cm4gZWl0aGVyIDAgb3IgMSB0 byByZWZsZWN0IHRoZSByZXN1bHRzCjEyOiAgODMzNDJkOTk3ID0gMTI6ICA0NzFkYzYxMDAgYXNu MV90ZXN0OiByZW1vdmUgJ3ZlcmJvc2UnIGFuZCB0aGUgdW5uZWNlc3NhcnkgcHJpbnRmKCkKMTM6 ICAzMTlkMzRiOWUgPSAxMzogIGUzZjY2ZDI3MiBhc24xX3Rlc3Q6IHByaW50IHRoZSBlcnJvciBt ZXNzYWdlcyB3aXRoIGdydWJfcHJpbnRmKCkKMTQ6ICA4NTllMDAyMzQgPSAxNDogIDM4Mzk5OTQw NCBhc24xX3Rlc3Q6IHVzZSB0aGUgZ3J1Yi1zcGVjaWZpYyBmdW5jdGlvbnMgYW5kIHR5cGVzCjE1 OiAgOTZkN2QwOTk4ID0gMTU6ICBmZDBiZTU3NTggYXNuMV90ZXN0OiBlbmFibGUgdGhlIHRlc3Rj YXNlIG9ubHkgd2hlbiBHUlVCX0xPTkdfTUFYIGlzIGxhcmdlciB0aGFuIEdSVUJfSU5UX01BWAox NjogIDUzY2NmMjljMyA9IDE2OiAgN2IxYzBiOGE4IGxpYnRhc24xOiBjb21waWxlIGludG8gYXNu MSBtb2R1bGUKMTc6ICA2NTAxYWNiYTggPSAxNzogIDY5NDZkNTg0ZSBhc24xX3Rlc3Q6IHRlc3Qg bW9kdWxlIGZvciBsaWJ0YXNuMQoxODogIDVmYjgxNjE5MCA9IDE4OiAgNTMyOTJkM2QxIGxpYnRh c24xOiBBZGQgdGhlIGRvY3VtZW50YXRpb24KMTk6ICAxYmM1M2Y4ZmMgPSAxOTogIGJiNTUxMDQ1 OSBrZXlfcHJvdGVjdG9yOiBBZGQga2V5IHByb3RlY3RvcnMgZnJhbWV3b3JrCjIwOiAgYjFhMzFm MjJlID0gMjA6ICBmMDM5ODM2NDggdHNzMjogQWRkIFRQTTIgYnVmZmVyIGhhbmRsaW5nIGZ1bmN0 aW9ucwoyMTogIDQ3ZjBiOTM4ZCAhIDIxOiAgOGU5M2RhMTlkIHRzczI6IEFkZCBUUE0yIHR5cGVz IGFuZCBNYXJzaGFsL1VubWFyc2hhbCBmdW5jdGlvbnMKICAgIEBAIGdydWItY29yZS9saWIvdHNz Mi90c3MyX3N0cnVjdHMuaCAobmV3KQogICAgICsvKiBUUE1MX0RJR0VTVF9WQUxVRVMgU3RydWN0 dXJlICovCiAgICAgK3N0cnVjdCBUUE1MX0RJR0VTVF9WQUxVRVMKICAgICArewogICAgLSsgIGdy dWJfdWludDE2X3QgY291bnQ7CiAgICArKyAgZ3J1Yl91aW50MzJfdCBjb3VudDsKICAgICArICBU UE1UX0hBX3QgZGlnZXN0c1tUUE1fTlVNX1BDUl9CQU5LU107CiAgICAgK307CiAgICAgK3R5cGVk ZWYgc3RydWN0IFRQTUxfRElHRVNUX1ZBTFVFUyBUUE1MX0RJR0VTVF9WQUxVRVNfdDsKMjI6ICA1 MGE1ZmY2MmYgPSAyMjogIDNlZjEzMGUyZiB0c3MyOiBBZGQgVFBNMiBTb2Z0d2FyZSBTdGFjayAo VFNTMikgc3VwcG9ydAoyMzogIDAwZGNhYTQ0ZiA9IDIzOiAgYTI1ZjQ4NmQzIGtleV9wcm90ZWN0 b3I6IEFkZCBUUE0yIEtleSBQcm90ZWN0b3IKMjQ6ICBiODRhZjUwMmMgPSAyNDogIDEzNWIxNzQz NiBjcnlwdG9kaXNrOiBTdXBwb3J0IGtleSBwcm90ZWN0b3JzCjI1OiAgZWZhY2E5ZmIwID0gMjU6 ICAwYTZlNmM4ODYgdXRpbC9ncnViLXByb3RlY3Q6IEFkZCBuZXcgdG9vbAoyNjogIDdlZjFiOWIz NSA9IDI2OiAgZGMwZjg5MmY1IHRwbTJfa2V5X3Byb3RlY3RvcjogU3VwcG9ydCBhdXRob3JpemVk IHBvbGljeQoyNzogIDUzZTI0NjYyNSA9IDI3OiAgNmQ4NzZmZTY5IHRwbTJfa2V5X3Byb3RlY3Rv cjogSW1wbGVtZW50IE5WIGluZGV4CjI4OiAgYzY5NWZiN2ZlID0gMjg6ICBmNTE2NjlmNzIgY3J5 cHRvZGlzazogRmFsbGJhY2sgdG8gcGFzc3BocmFzZQoyOTogIGEyYTM0ODA4MyA9IDI5OiAgZDA0 MDg2ZjU4IGNyeXB0b2Rpc2s6IHdpcGUgb3V0IHRoZSBjYWNoZWQga2V5cyBmcm9tIHByb3RlY3Rv cnMKMzA6ICA2YzUwY2RiMzggPSAzMDogIGJiNGFhMzQzOSBkaXNrZmlsdGVyOiBsb29rIHVwIGNy eXB0b2Rpc2sgZGV2aWNlcyBmaXJzdAozMTogIDQzMmZhZjg3YyA9IDMxOiAgMTI5Yzc1M2M0IHRw bTJfa2V5X3Byb3RlY3RvcjogQWRkIGdydWItZW11IHN1cHBvcnQKMzI6ICA1MGQ4OTFiZjcgISAz MjogIDhkMDAxMTFjMiB0ZXN0czogQWRkIHRwbTJfa2V5X3Byb3RlY3Rvcl90ZXN0CiAgICBAQCBD b21taXQgbWVzc2FnZQogICAgICAgICBDYzogR2xlbm4gV2FzaGJ1cm4gPGRldmVsb3BtZW50QGVm ZmljaWVudGVrLmNvbT4KICAgICAgICAgU2lnbmVkLW9mZi1ieTogR2FyeSBMaW4gPGdsaW5Ac3Vz ZS5jb20+CiAgICAgICAgIFJldmlld2VkLWJ5OiBEYW5pZWwgS2lwZXIgPGRhbmllbC5raXBlckBv cmFjbGUuY29tPgogICAgKyAgICBSZXZpZXdlZC1ieTogU3RlZmFuIEJlcmdlciA8c3RlZmFuYkBs aW51eC5pYm0uY29tPgogICAgIAogICAgICAjIyBNYWtlZmlsZS51dGlsLmRlZiAjIwogICAgIEBA IE1ha2VmaWxlLnV0aWwuZGVmOiBzY3JpcHQgPSB7CjMzOiAgMTBlNWFkMTcxICEgMzM6ICAzNDA0 MjY5MjMgZG9jczogRG9jdW1lbnQgVFBNMiBrZXkgcHJvdGVjdG9yCiAgICBAQCBDb21taXQgbWVz c2FnZQogICAgIAogICAgICAgICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IExpbiA8Z2xpbkBzdXNlLmNv bT4KICAgICAgICAgUmV2aWV3ZWQtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNs ZS5jb20+CiAgICArICAgIFJldmlld2VkLWJ5OiBTdGVmYW4gQmVyZ2VyIDxzdGVmYW5iQGxpbnV4 LmlibS5jb20+CiAgICAgCiAgICAgICMjIGRvY3MvZ3J1Yi50ZXhpICMjCiAgICAgQEAgZG9jcy9n cnViLnRleGk6IHlvdSBmb3JnZXQgYSBjb21tYW5kLCB5b3UgY2FuIHJ1biB0aGUgY29tbWFuZCBA Y29tbWFuZHtoZWxwfQogICAgQEAgZG9jcy9ncnViLnRleGk6IGJlIHJlc3RyaWN0ZWQgYW5kIHNv bWUgb3BlcmF0aW9ucy9jb21tYW5kcyBjYW5ub3QgYmUgZXhlY3V0ZWQuCiAgICAgK1RQTTIga2V5 IHByb3RlY3RvciBtYXkgZmFpbCB0byB1bnNlYWwgdGhlIGtleSBkdWUgdG8gdGhlIGFic2VuY2Ug b2YgdGhlCiAgICAgK3Bhc3N3b3JkLiBGb3IgdGhlIHN5c3RlbXMgdGhhdCBhbHJlYWR5IGVuYWJs ZSB0aGUgcGFzc3dvcmQgcHJvdGVjdGlvbiBmb3IgdGhlCiAgICAgK293bmVyIGhpZXJhcmNoeSwg dGhlIGZvbGxvd2luZyBjb21tYW5kIHJlbW92ZXMgdGhlIHBhc3N3b3JkIHByb3RlY3Rpb24gd2l0 aAogICAgLSt0aGUgZXhpc3RpbmcgcGFzc3dvcmQgc3RvcmVkIGluIEBmaWxle3Bhc3NmaWxlfS4K ICAgICsrdGhlIGV4aXN0aW5nIHBhc3N3b3JkLgogICAgICsKICAgICArQGV4YW1wbGUKICAgIC0r IyBAa2Jke3RwbTJfY2hhbmdlYXV0aCAtYyBvd25lciAtcCBwYXNzZmlsZX0KICAgICsrIyBAa2Jk e3RwbTJfY2hhbmdlYXV0aCAtYyBvd25lciAtcCBwYXNzd29yZH0KICAgICArQGVuZCBleGFtcGxl CiAgICAgKwogICAgICtUaGVyZSBhcmUgdHdvIHN1cHBvcnRlZCBtb2RlcyB0byBzdG9yZSB0aGUg c2VhbGVkIGtleSwgU1JLIGFuZCBOViBpbmRleC4KLS0gCjIuNDMuMAoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkdydWItZGV2ZWwgbWFpbGluZyBsaXN0 CkdydWItZGV2ZWxAZ251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5m by9ncnViLWRldmVsCg==