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 X-Spam-Level: X-Spam-Status: No, score=-3.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4A1E8C31E4B for ; Fri, 14 Jun 2019 19:50:59 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id C462B2183E for ; Fri, 14 Jun 2019 19:50:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C462B2183E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=patchew.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:54854 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hbsDx-0000CO-P0 for qemu-devel@archiver.kernel.org; Fri, 14 Jun 2019 15:50:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47597) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hbsBi-0007Le-VI for qemu-devel@nongnu.org; Fri, 14 Jun 2019 15:48:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hbsBg-0003Pr-7Z for qemu-devel@nongnu.org; Fri, 14 Jun 2019 15:48:38 -0400 Resent-Date: Fri, 14 Jun 2019 15:48:38 -0400 Resent-Message-Id: Received: from sender-of-o52.zoho.com ([135.84.80.217]:21486) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hbsBe-0003OX-9A for qemu-devel@nongnu.org; Fri, 14 Jun 2019 15:48:35 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1560541710; cv=none; d=zoho.com; s=zohoarc; b=G/3pElSAUUFKmYDb4VXT93o43+YIAygYa7Z2ui20kw4tWj41Sy5q6jn6EEqJUXAJgLEYSJrCy5vZJWwdWqJucO9lPxRmTnX1SIrJbt2HfxGf8J2VU113LUkF22wMr7ofLscnTZkLYQxFLTFfu3OEl2Gsy2DxM7JUoMYh9u4GWrM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1560541710; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:Reply-To:Subject:To:ARC-Authentication-Results; bh=4qw7I1PP5qGvRiDldgq/zEYqeFoSWPZwwpRyWuiUKhA=; b=fhvhIhfZS/9kqbRqzLlglr/1LWb55H9wyQTOP8wE2KGdEqOdh9XlYcN9r1Kx8Tsjq2yNCnmoxqx6Owv5kvHbcg1FmS+FS37FnyZoMcYgnlt63F5xyODQixH5CItjsvae0m6tK/r7kLDaEWRueXv7S4iKtPQGru9+sEd/WEeF7KE= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass header.i=patchew.org; spf=pass smtp.mailfrom=no-reply@patchew.org; dmarc=pass header.from= header.from= Received: from [172.17.0.3] (23.253.156.214 [23.253.156.214]) by mx.zohomail.com with SMTPS id 1560541708578320.8456728581124; Fri, 14 Jun 2019 12:48:28 -0700 (PDT) In-Reply-To: <20190614171200.21078-1-alex.bennee@linaro.org> Message-ID: <156054170760.13573.3480052846465719599@ce79690b2cb9> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Resent-From: From: no-reply@patchew.org To: alex.bennee@linaro.org Date: Fri, 14 Jun 2019 12:48:28 -0700 (PDT) X-ZohoMailClient: External X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 135.84.80.217 Subject: Re: [Qemu-devel] [PATCH v3 00/50] tcg plugin support X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: qemu-devel@nongnu.org Cc: alex.bennee@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" UGF0Y2hldyBVUkw6IGh0dHBzOi8vcGF0Y2hldy5vcmcvUUVNVS8yMDE5MDYxNDE3MTIwMC4yMTA3 OC0xLWFsZXguYmVubmVlQGxpbmFyby5vcmcvCgoKCkhpLAoKVGhpcyBzZXJpZXMgc2VlbXMgdG8g aGF2ZSBzb21lIGNvZGluZyBzdHlsZSBwcm9ibGVtcy4gU2VlIG91dHB1dCBiZWxvdyBmb3IKbW9y ZSBpbmZvcm1hdGlvbjoKCk1lc3NhZ2UtaWQ6IDIwMTkwNjE0MTcxMjAwLjIxMDc4LTEtYWxleC5i ZW5uZWVAbGluYXJvLm9yZwpUeXBlOiBzZXJpZXMKU3ViamVjdDogW1FlbXUtZGV2ZWxdIFtQQVRD SCAgdjMgMDAvNTBdIHRjZyBwbHVnaW4gc3VwcG9ydAoKPT09IFRFU1QgU0NSSVBUIEJFR0lOID09 PQojIS9iaW4vYmFzaApnaXQgcmV2LXBhcnNlIGJhc2UgPiAvZGV2L251bGwgfHwgZXhpdCAwCmdp dCBjb25maWcgLS1sb2NhbCBkaWZmLnJlbmFtZWxpbWl0IDAKZ2l0IGNvbmZpZyAtLWxvY2FsIGRp ZmYucmVuYW1lcyBUcnVlCmdpdCBjb25maWcgLS1sb2NhbCBkaWZmLmFsZ29yaXRobSBoaXN0b2dy YW0KLi9zY3JpcHRzL2NoZWNrcGF0Y2gucGwgLS1tYWlsYmFjayBiYXNlLi4KPT09IFRFU1QgU0NS SVBUIEVORCA9PT0KClVwZGF0aW5nIDNjOGNmNWE5YzIxZmY4NzgyMTY0ZDFkZWY3ZjQ0YmQ4ODg3 MTMzODQKU3dpdGNoZWQgdG8gYSBuZXcgYnJhbmNoICd0ZXN0JwowNDkwNDhmIFRPRE86IEFQSSBj aGFuZ2VzIHRvIG1ha2U/CmVkMTI0ZTkgaW5jbHVkZS9leGVjL2NwdS1kZWZzLmg6IGZpeCB0eXBv CmY1YTFlNWIgaW5jbHVkZS9leGVjOiB3cmFwIGNwdV9sZHN0LmggaW4gQ09ORklHX1RDRwo5YmEx MjNiIGFjY2VsL3N0dWJzOiByZWR1Y2UgaGVhZGVycyBmcm9tIHRjZy1zdHViCmRmOTc5M2YgdGVz dHMvcGx1Z2luOiBhZGQgaG90cGFnZXMgcGx1Z2luIHRvIGJyZWFrZG93biBtZW1vcnkgYWNjZXNz IHBhdHRlcm5zCmQxZjM1NWUgdGVzdHMvcGx1Z2luOiBhZGQgaW5zdHJ1Y3Rpb24gZXhlY3V0aW9u IGJyZWFrZG93bgo2ZDQ2ODNjIHBsdWdpbjogYWRkIHFlbXVfcGx1Z2luX2luc25fZGlzYXMgaGVs cGVyCmUzMTQ1YzYgdGVzdHMvcGx1Z2luOiBhZGQgYSBob3RibG9ja3MgcGx1Z2luCjQ3M2NhY2Ug dGVzdHMvdGNnOiBlbmFibGUgcGx1Z2luIHRlc3RpbmcKYzk5ZDJjYSB0ZXN0cy9wbHVnaW46IGFk ZCBzYW1wbGUgcGx1Z2lucwpmOTJiNjQxIGxpbnV4LXVzZXI6IHN1cHBvcnQgLXBsdWdpbiBvcHRp b24KZjgxZGM5NCB2bDogc3VwcG9ydCAtcGx1Z2luIG9wdGlvbgoxMWQxNThmIHBsdWdpbjogYWRk IEFQSSBzeW1ib2xzIHRvIHFlbXUtcGx1Z2lucy5zeW1ib2xzCmQwYWYxMTYgdHJhbnNsYXRvcjog aW5qZWN0IGluc3RydW1lbnRhdGlvbiBmcm9tIHBsdWdpbnMKMDc1Zjc3OSB0YXJnZXQvb3BlbnJp c2M6IGZldGNoIGNvZGUgd2l0aCB0cmFuc2xhdG9yX2xkCjY0MjY1OTQgdGFyZ2V0L3h0ZW5zYTog ZmV0Y2ggY29kZSB3aXRoIHRyYW5zbGF0b3JfbGQKMzhmYTBiZCB0YXJnZXQvc3BhcmM6IGZldGNo IGNvZGUgd2l0aCB0cmFuc2xhdG9yX2xkCjk2YTdjODcgdGFyZ2V0L3Jpc2N2OiBmZXRjaCBjb2Rl IHdpdGggdHJhbnNsYXRvcl9sZAoyYmJlYWVhIHRhcmdldC9hbHBoYTogZmV0Y2ggY29kZSB3aXRo IHRyYW5zbGF0b3JfbGQKMmEzZjkxZiB0YXJnZXQvbTY4azogZmV0Y2ggY29kZSB3aXRoIHRyYW5z bGF0b3JfbGQKODZiMDkyMyB0YXJnZXQvaHBwYTogZmV0Y2ggY29kZSB3aXRoIHRyYW5zbGF0b3Jf bGQKMjA2Y2QxZSB0YXJnZXQvaTM4NjogZmV0Y2ggY29kZSB3aXRoIHRyYW5zbGF0b3JfbGQKYzdm ZmJiOCB0YXJnZXQvc2g0OiBmZXRjaCBjb2RlIHdpdGggdHJhbnNsYXRvcl9sZAoyM2JhZTI3IHRh cmdldC9wcGM6IGZldGNoIGNvZGUgd2l0aCB0cmFuc2xhdG9yX2xkCjA0ZTk2MzQgdGFyZ2V0L2Fy bTogY2FsbCBxZW11X3BsdWdpbl9pbnNuX2FwcGVuZAo5MGMyZWFhIHRyYW5zbGF0b3I6IGFkZCB0 cmFuc2xhdG9yX2xke3ViLCBzdywgdXcsIGwsIHF9Cjk2ODFlMWYgcGx1Z2luLWdlbjogYWRkIHBs dWdpbl9pbnNuX2FwcGVuZAo2YzAzZjQwIGNwdTogaG9vayBwbHVnaW4gdmNwdSBldmVudHMKYWE3 MDU4MSAqLXVzZXI6IHBsdWdpbiBzeXNjYWxscwpkOWRlMTllICotdXNlcjogbm90aWZ5IHBsdWdp biBvZiBleGl0CjJhMjIyYzUgdHJhbnNsYXRlLWFsbDogbm90aWZ5IHBsdWdpbiBjb2RlIG9mIHRi X2ZsdXNoCmZhOTEzMzMgdGNnOiBsZXQgcGx1Z2lucyBpbnN0cnVtZW50IG1lbW9yeSBhY2Nlc3Nl cwozNjQ0ZWFkIGNwdV9sZHN0X3VzZXJvbmx5X3RlbXBsYXRlOiByZW1vdmUgcmVkdW5kYW50ICNp Zm5kZWYgQ09ERV9BQ0NFU1MKYWI5ZGJlYyBhdG9taWNfdGVtcGxhdGU6IGFkZCBpbmxpbmUgdHJh Y2UvcGx1Z2luIGhlbHBlcnMKZTRhZWY1NiBhdG9taWNfdGVtcGxhdGU6IGZpeCBpbmRlbnRhdGlv biBpbiBHRU5fQVRPTUlDX0hFTFBFUgplZTNlYmE4IHRjZzogYWRkIE1PX0hBRERSIHRvIFRDR01l bU9wCjM3NjBhMTUgdGNnOiBhZGQgdGNnX2dlbl9zdF9wdHIKYTRhZjc0OCBwbHVnaW4tZ2VuOiBh ZGQgbW9kdWxlIGZvciBUQ0ctcmVsYXRlZCBjb2RlCjdmOTAyMGEgY3B1dGxiOiBpbnRyb2R1Y2Ug Z2V0X3BhZ2VfYWRkcl9jb2RlX2hvc3RwCjlhNDYwMzcgY3B1dGxiOiBkb2N1bWVudCBnZXRfcGFn ZV9hZGRyX2NvZGUKNmQ4ZTUwNSBxdWV1ZTogYWRkIFFUQUlMUV9SRU1PVkVfU0VWRVJBTAphM2Y3 ZmIxIHBsdWdpbjogYWRkIGltcGxlbWVudGF0aW9uIG9mIHRoZSBhcGkKMWJkMzgwMiBwbHVnaW46 IGFkZCBjb3JlIGNvZGUKZWI3YTVkNSBwbHVnaW46IGFkZCB1c2VyLWZhY2luZyBBUEkKMzNkODg1 ZiBjb25maWd1cmU6IGFkZCAtLWVuYWJsZS1wbHVnaW5zIChNT1ZFIFRPIEVORCkKM2ZkM2FlYiBk b2NzL2RldmVsOiBhZGQgcGx1Z2lucy5yc3QgZGVzaWduIGRvY3VtZW50CmRkNGIyYzAgdHJhbnNs YXRlLWFsbDogdXNlIGNwdV9pbl9leGNsdXNpdmVfd29ya19jb250ZXh0KCkgaW4gdGJfZmx1c2gK NmVmMjBjNyBjcHU6IGludHJvZHVjZSBjcHVfaW5fZXhjbHVzaXZlX3dvcmtfY29udGV4dCgpCjg5 OTVjNWEgdGNnL1JFQURNRTogZml4IHR5cG8gcy9hZnRlcndpc2UvYWZ0ZXJ3YXJkcy8KYjEzMDI5 ZSB0cmFjZTogZXhwYW5kIG1lbV9pbmZvOnNpemVfc2hpZnQgdG8gMyBiaXRzCgo9PT0gT1VUUFVU IEJFR0lOID09PQoxLzUwIENoZWNraW5nIGNvbW1pdCBiMTMwMjllYzNjNjEgKHRyYWNlOiBleHBh bmQgbWVtX2luZm86c2l6ZV9zaGlmdCB0byAzIGJpdHMpCjIvNTAgQ2hlY2tpbmcgY29tbWl0IDg5 OTVjNWE1ODE0YSAodGNnL1JFQURNRTogZml4IHR5cG8gcy9hZnRlcndpc2UvYWZ0ZXJ3YXJkcy8p CjMvNTAgQ2hlY2tpbmcgY29tbWl0IDZlZjIwYzdhYzg0YiAoY3B1OiBpbnRyb2R1Y2UgY3B1X2lu X2V4Y2x1c2l2ZV93b3JrX2NvbnRleHQoKSkKNC81MCBDaGVja2luZyBjb21taXQgZGQ0YjJjMGI1 ZDU4ICh0cmFuc2xhdGUtYWxsOiB1c2UgY3B1X2luX2V4Y2x1c2l2ZV93b3JrX2NvbnRleHQoKSBp biB0Yl9mbHVzaCkKNS81MCBDaGVja2luZyBjb21taXQgM2ZkM2FlYjkyNjk5IChkb2NzL2RldmVs OiBhZGQgcGx1Z2lucy5yc3QgZGVzaWduIGRvY3VtZW50KQpXQVJOSU5HOiBhZGRlZCwgbW92ZWQg b3IgZGVsZXRlZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiMyMzog Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cgp0b3RhbDogMCBlcnJvcnMsIDEgd2FybmluZ3MsIDEwMyBs aW5lcyBjaGVja2VkCgpQYXRjaCA1LzUwIGhhcyBzdHlsZSBwcm9ibGVtcywgcGxlYXNlIHJldmll dy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnQgdGhl bSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRBSU5FUlMuCjYvNTAg Q2hlY2tpbmcgY29tbWl0IDMzZDg4NWYyNDc5NCAoY29uZmlndXJlOiBhZGQgLS1lbmFibGUtcGx1 Z2lucyAoTU9WRSBUTyBFTkQpKQo3LzUwIENoZWNraW5nIGNvbW1pdCBlYjdhNWQ1NzkxMzEgKHBs dWdpbjogYWRkIHVzZXItZmFjaW5nIEFQSSkKV0FSTklORzogYWRkZWQsIG1vdmVkIG9yIGRlbGV0 ZWQgZmlsZShzKSwgZG9lcyBNQUlOVEFJTkVSUyBuZWVkIHVwZGF0aW5nPwojMTU6IApuZXcgZmls ZSBtb2RlIDEwMDY0NAoKV0FSTklORzogYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlZmluZXMgc2hv dWxkIGJlIGF2b2lkZWQKIzQxOiBGSUxFOiBpbmNsdWRlL3FlbXUvcWVtdS1wbHVnaW4uaDoyMjoK KyNpZiBkZWZpbmVkIF9XSU4zMiB8fCBkZWZpbmVkIF9fQ1lHV0lOX18KCldBUk5JTkc6IGFyY2hp dGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkCiM0OTogRklMRTogaW5j bHVkZS9xZW11L3FlbXUtcGx1Z2luLmg6MzA6CisgICNpZiBfX0dOVUNfXyA+PSA0Cgp0b3RhbDog MCBlcnJvcnMsIDMgd2FybmluZ3MsIDMzOSBsaW5lcyBjaGVja2VkCgpQYXRjaCA3LzUwIGhhcyBz dHlsZSBwcm9ibGVtcywgcGxlYXNlIHJldmlldy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJl IGZhbHNlIHBvc2l0aXZlcyByZXBvcnQgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNL UEFUQ0ggaW4gTUFJTlRBSU5FUlMuCjgvNTAgQ2hlY2tpbmcgY29tbWl0IDFiZDM4MDJmN2U1NSAo cGx1Z2luOiBhZGQgY29yZSBjb2RlKQpXQVJOSU5HOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBm aWxlKHMpLCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiM1NjogCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CgpFUlJPUjogImZvbyAqIGJhciIgc2hvdWxkIGJlICJmb28gKmJhciIKIzE5Nzog RklMRTogaW5jbHVkZS9xZW11L3BsdWdpbi5oOjEzNzoKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHFl bXVfcGx1Z2luX2luc24gKiBxZW11X3BsdWdpbl9pbnNuX2FsbG9jKHZvaWQpCgpXQVJOSU5HOiBC bG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2VwYXJhdGUgbGluZQojMzcxOiBG SUxFOiBwbHVnaW5zL2NvcmUuYzoxOgorLyogcGx1Z2luLmMgLSBRRU1VIFBsdWdpbiBpbnRlcmZh Y2UKCkVSUk9SOiBuYW1lZCBRTElTVF9IRUFEIHNob3VsZCBiZSB0eXBlZGVmZWQgc2VwYXJhdGVs eQojNDA3OiBGSUxFOiBwbHVnaW5zL2NvcmUuYzozNzoKK1FMSVNUX0hFQUQocWVtdV9wbHVnaW5f Y2JfaGVhZCwgcWVtdV9wbHVnaW5fY2IpOwoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3Rl cnMKIzYyNjogRklMRTogcGx1Z2lucy9jb3JlLmM6MjU2OgorICAgICAgICBjYnMgPSBnX2FycmF5 X3NpemVkX25ldyhmYWxzZSwgZmFsc2UsIHNpemVvZihzdHJ1Y3QgcWVtdV9wbHVnaW5fZHluX2Ni KSwgMSk7CgpXQVJOSU5HOiBCbG9jayBjb21tZW50cyB1c2UgYSBsZWFkaW5nIC8qIG9uIGEgc2Vw YXJhdGUgbGluZQojOTQyOiBGSUxFOiBwbHVnaW5zL2xvYWRlci5jOjQyOgorICAgICAgICB7IC8q IGVuZCBvZiBsaXN0ICovIH0KCkVSUk9SOiBleHRlcm5zIHNob3VsZCBiZSBhdm9pZGVkIGluIC5j IGZpbGVzCiM5NDg6IEZJTEU6IHBsdWdpbnMvbG9hZGVyLmM6NDg6CitleHRlcm4gc3RydWN0IHFl bXVfcGx1Z2luX3N0YXRlIHBsdWdpbjsKCnRvdGFsOiAzIGVycm9ycywgNCB3YXJuaW5ncywgMTI5 NCBsaW5lcyBjaGVja2VkCgpQYXRjaCA4LzUwIGhhcyBzdHlsZSBwcm9ibGVtcywgcGxlYXNlIHJl dmlldy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnQg dGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRBSU5FUlMuCgo5 LzUwIENoZWNraW5nIGNvbW1pdCBhM2Y3ZmIxYzNhZmQgKHBsdWdpbjogYWRkIGltcGxlbWVudGF0 aW9uIG9mIHRoZSBhcGkpCldBUk5JTkc6IGFkZGVkLCBtb3ZlZCBvciBkZWxldGVkIGZpbGUocyks IGRvZXMgTUFJTlRBSU5FUlMgbmVlZCB1cGRhdGluZz8KIzIxOiAKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKCnRvdGFsOiAwIGVycm9ycywgMSB3YXJuaW5ncywgMjcxIGxpbmVzIGNoZWNrZWQKClBhdGNo IDkvNTAgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNl IGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVy LCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KMTAvNTAgQ2hlY2tpbmcgY29tbWl0IDZk OGU1MDU2OWMxMyAocXVldWU6IGFkZCBRVEFJTFFfUkVNT1ZFX1NFVkVSQUwpCldBUk5JTkc6IEJs b2NrIGNvbW1lbnRzIHVzZSBhIGxlYWRpbmcgLyogb24gYSBzZXBhcmF0ZSBsaW5lCiMzMDogRklM RTogaW5jbHVkZS9xZW11L3F1ZXVlLmg6NDMzOgorICAgIH0gd2hpbGUgKC8qQ09OU1RDT05EKi8w KQoKdG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdzLCAxNiBsaW5lcyBjaGVja2VkCgpQYXRjaCAx MC81MCBoYXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuICBJZiBhbnkgb2YgdGhlc2Ug ZXJyb3JzCmFyZSBmYWxzZSBwb3NpdGl2ZXMgcmVwb3J0IHRoZW0gdG8gdGhlIG1haW50YWluZXIs IHNlZQpDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgoxMS81MCBDaGVja2luZyBjb21taXQgOWE0 NjAzN2JmYjNiIChjcHV0bGI6IGRvY3VtZW50IGdldF9wYWdlX2FkZHJfY29kZSkKMTIvNTAgQ2hl Y2tpbmcgY29tbWl0IDdmOTAyMGFmNTBkMCAoY3B1dGxiOiBpbnRyb2R1Y2UgZ2V0X3BhZ2VfYWRk cl9jb2RlX2hvc3RwKQoxMy81MCBDaGVja2luZyBjb21taXQgYTRhZjc0ODM4YTA5IChwbHVnaW4t Z2VuOiBhZGQgbW9kdWxlIGZvciBUQ0ctcmVsYXRlZCBjb2RlKQpXQVJOSU5HOiBhZGRlZCwgbW92 ZWQgb3IgZGVsZXRlZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiM0 ODogCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cgp0b3RhbDogMCBlcnJvcnMsIDEgd2FybmluZ3MsIDEy NzMgbGluZXMgY2hlY2tlZAoKUGF0Y2ggMTMvNTAgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2Ug cmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9y dCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4K MTQvNTAgQ2hlY2tpbmcgY29tbWl0IDM3NjBhMTU4MzE1MCAodGNnOiBhZGQgdGNnX2dlbl9zdF9w dHIpCjE1LzUwIENoZWNraW5nIGNvbW1pdCBlZTNlYmE4MmQwZTYgKHRjZzogYWRkIE1PX0hBRERS IHRvIFRDR01lbU9wKQoxNi81MCBDaGVja2luZyBjb21taXQgZTRhZWY1NmU2ZDdiIChhdG9taWNf dGVtcGxhdGU6IGZpeCBpbmRlbnRhdGlvbiBpbiBHRU5fQVRPTUlDX0hFTFBFUikKMTcvNTAgQ2hl Y2tpbmcgY29tbWl0IGFiOWRiZWNkMDk0NyAoYXRvbWljX3RlbXBsYXRlOiBhZGQgaW5saW5lIHRy YWNlL3BsdWdpbiBoZWxwZXJzKQoxOC81MCBDaGVja2luZyBjb21taXQgMzY0NGVhZDYyZDQ0IChj cHVfbGRzdF91c2Vyb25seV90ZW1wbGF0ZTogcmVtb3ZlIHJlZHVuZGFudCAjaWZuZGVmIENPREVf QUNDRVNTKQoxOS81MCBDaGVja2luZyBjb21taXQgZmE5MTMzM2I4NzljICh0Y2c6IGxldCBwbHVn aW5zIGluc3RydW1lbnQgbWVtb3J5IGFjY2Vzc2VzKQpFUlJPUjogbGluZSBvdmVyIDkwIGNoYXJh Y3RlcnMKIzIyNDogRklMRTogYWNjZWwvdGNnL3BsdWdpbi1nZW4uYzo5ODoKKyAgICB0Y2dfZ2Vu X2xkX2kzMihjcHVfaW5kZXgsIGNwdV9lbnYsIC1vZmZzZXRvZihBcmNoQ1BVLCBlbnYpICsgb2Zm c2V0b2YoQ1BVU3RhdGUsIGNwdV9pbmRleCkpOwoKdG90YWw6IDEgZXJyb3JzLCAwIHdhcm5pbmdz LCA1NDIgbGluZXMgY2hlY2tlZAoKUGF0Y2ggMTkvNTAgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVh c2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJl cG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVS Uy4KCjIwLzUwIENoZWNraW5nIGNvbW1pdCAyYTIyMmM1YTU2ZDYgKHRyYW5zbGF0ZS1hbGw6IG5v dGlmeSBwbHVnaW4gY29kZSBvZiB0Yl9mbHVzaCkKMjEvNTAgQ2hlY2tpbmcgY29tbWl0IGQ5ZGUx OWU0ODQxYiAoKi11c2VyOiBub3RpZnkgcGx1Z2luIG9mIGV4aXQpCjIyLzUwIENoZWNraW5nIGNv bW1pdCBhYTcwNTgxMzgxMzQgKCotdXNlcjogcGx1Z2luIHN5c2NhbGxzKQoyMy81MCBDaGVja2lu ZyBjb21taXQgNmMwM2Y0MDM5Yzc5IChjcHU6IGhvb2sgcGx1Z2luIHZjcHUgZXZlbnRzKQoyNC81 MCBDaGVja2luZyBjb21taXQgOTY4MWUxZjc3NTA4IChwbHVnaW4tZ2VuOiBhZGQgcGx1Z2luX2lu c25fYXBwZW5kKQoyNS81MCBDaGVja2luZyBjb21taXQgOTBjMmVhYTIyNDdkICh0cmFuc2xhdG9y OiBhZGQgdHJhbnNsYXRvcl9sZHt1Yiwgc3csIHV3LCBsLCBxfSkKV0FSTklORzogQmxvY2sgY29t bWVudHMgdXNlIGEgbGVhZGluZyAvKiBvbiBhIHNlcGFyYXRlIGxpbmUKIzQ5OiBGSUxFOiBpbmNs dWRlL2V4ZWMvdHJhbnNsYXRvci5oOjE2NjoKK0dFTl9UUkFOU0xBVE9SX0xEKHRyYW5zbGF0b3Jf bGR1YiwgbGR1YiwgdWludDhfdCwgLyogbm8gc3dhcCBuZWVkZWQgKi8pCgp0b3RhbDogMCBlcnJv cnMsIDEgd2FybmluZ3MsIDQwIGxpbmVzIGNoZWNrZWQKClBhdGNoIDI1LzUwIGhhcyBzdHlsZSBw cm9ibGVtcywgcGxlYXNlIHJldmlldy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNl IHBvc2l0aXZlcyByZXBvcnQgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFUQ0gg aW4gTUFJTlRBSU5FUlMuCjI2LzUwIENoZWNraW5nIGNvbW1pdCAwNGU5NjM0OTQxNDQgKHRhcmdl dC9hcm06IGNhbGwgcWVtdV9wbHVnaW5faW5zbl9hcHBlbmQpCjI3LzUwIENoZWNraW5nIGNvbW1p dCAyM2JhZTI3ZDM3YjQgKHRhcmdldC9wcGM6IGZldGNoIGNvZGUgd2l0aCB0cmFuc2xhdG9yX2xk KQoyOC81MCBDaGVja2luZyBjb21taXQgYzdmZmJiODc4MGZiICh0YXJnZXQvc2g0OiBmZXRjaCBj b2RlIHdpdGggdHJhbnNsYXRvcl9sZCkKMjkvNTAgQ2hlY2tpbmcgY29tbWl0IDIwNmNkMWU1M2Nj OSAodGFyZ2V0L2kzODY6IGZldGNoIGNvZGUgd2l0aCB0cmFuc2xhdG9yX2xkKQozMC81MCBDaGVj a2luZyBjb21taXQgODZiMDkyMzM1OWE4ICh0YXJnZXQvaHBwYTogZmV0Y2ggY29kZSB3aXRoIHRy YW5zbGF0b3JfbGQpCjMxLzUwIENoZWNraW5nIGNvbW1pdCAyYTNmOTFmZDM5ZTkgKHRhcmdldC9t NjhrOiBmZXRjaCBjb2RlIHdpdGggdHJhbnNsYXRvcl9sZCkKMzIvNTAgQ2hlY2tpbmcgY29tbWl0 IDJiYmVhZWEzNTRkYyAodGFyZ2V0L2FscGhhOiBmZXRjaCBjb2RlIHdpdGggdHJhbnNsYXRvcl9s ZCkKMzMvNTAgQ2hlY2tpbmcgY29tbWl0IDk2YTdjODdhZTE5ZiAodGFyZ2V0L3Jpc2N2OiBmZXRj aCBjb2RlIHdpdGggdHJhbnNsYXRvcl9sZCkKMzQvNTAgQ2hlY2tpbmcgY29tbWl0IDM4ZmEwYmQ1 OTZmZCAodGFyZ2V0L3NwYXJjOiBmZXRjaCBjb2RlIHdpdGggdHJhbnNsYXRvcl9sZCkKMzUvNTAg Q2hlY2tpbmcgY29tbWl0IDY0MjY1OTQ5OTYzNiAodGFyZ2V0L3h0ZW5zYTogZmV0Y2ggY29kZSB3 aXRoIHRyYW5zbGF0b3JfbGQpCjM2LzUwIENoZWNraW5nIGNvbW1pdCAwNzVmNzc5NWZlMmMgKHRh cmdldC9vcGVucmlzYzogZmV0Y2ggY29kZSB3aXRoIHRyYW5zbGF0b3JfbGQpCjM3LzUwIENoZWNr aW5nIGNvbW1pdCBkMGFmMTE2M2Q0MjIgKHRyYW5zbGF0b3I6IGluamVjdCBpbnN0cnVtZW50YXRp b24gZnJvbSBwbHVnaW5zKQozOC81MCBDaGVja2luZyBjb21taXQgMTFkMTU4ZjE5NDQ5IChwbHVn aW46IGFkZCBBUEkgc3ltYm9scyB0byBxZW11LXBsdWdpbnMuc3ltYm9scykKV0FSTklORzogYWRk ZWQsIG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlOVEFJTkVSUyBuZWVkIHVwZGF0 aW5nPwojMTIwOiAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKCnRvdGFsOiAwIGVycm9ycywgMSB3YXJu aW5ncywgMTQ4IGxpbmVzIGNoZWNrZWQKClBhdGNoIDM4LzUwIGhhcyBzdHlsZSBwcm9ibGVtcywg cGxlYXNlIHJldmlldy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNlIHBvc2l0aXZl cyByZXBvcnQgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFUQ0ggaW4gTUFJTlRB SU5FUlMuCjM5LzUwIENoZWNraW5nIGNvbW1pdCBmODFkYzk0N2QzNjEgKHZsOiBzdXBwb3J0IC1w bHVnaW4gb3B0aW9uKQo0MC81MCBDaGVja2luZyBjb21taXQgZjkyYjY0MTc5MGIyIChsaW51eC11 c2VyOiBzdXBwb3J0IC1wbHVnaW4gb3B0aW9uKQo0MS81MCBDaGVja2luZyBjb21taXQgYzk5ZDJj YWIwM2FlICh0ZXN0cy9wbHVnaW46IGFkZCBzYW1wbGUgcGx1Z2lucykKV0FSTklORzogYWRkZWQs IG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlOVEFJTkVSUyBuZWVkIHVwZGF0aW5n PwojMzQ6IApuZXcgZmlsZSBtb2RlIDEwMDY0NAoKdG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdz LCAyOTYgbGluZXMgY2hlY2tlZAoKUGF0Y2ggNDEvNTAgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVh c2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJl cG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVS Uy4KNDIvNTAgQ2hlY2tpbmcgY29tbWl0IDQ3M2NhY2U1NTQ3MSAodGVzdHMvdGNnOiBlbmFibGUg cGx1Z2luIHRlc3RpbmcpCjQzLzUwIENoZWNraW5nIGNvbW1pdCBlMzE0NWM2ZjM5NDUgKHRlc3Rz L3BsdWdpbjogYWRkIGEgaG90YmxvY2tzIHBsdWdpbikKV0FSTklORzogYWRkZWQsIG1vdmVkIG9y IGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlOVEFJTkVSUyBuZWVkIHVwZGF0aW5nPwojMzI6IApu ZXcgZmlsZSBtb2RlIDEwMDY0NAoKRVJST1I6IGxpbmUgb3ZlciA5MCBjaGFyYWN0ZXJzCiM5Nzog RklMRTogdGVzdHMvcGx1Z2luL2hvdGJsb2Nrcy5jOjYxOgorICAgICAgICBnX3N0cmluZ19hcHBl bmRfcHJpbnRmKHJlcG9ydCwgIiAgcGM6ICUjIiBQUkl4NjQgIiAoJWQgYmxvY2slcywgJWxkIGlu c25zLCAlIiBQUklkNjQiIHRvdGFsIGhpdHMpXG4iLAoKV0FSTklORzogbGluZSBvdmVyIDgwIGNo YXJhY3RlcnMKIzk5OiBGSUxFOiB0ZXN0cy9wbHVnaW4vaG90YmxvY2tzLmM6NjM6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVjLT50cmFuc19jb3VudCwgcmVjLT50cmFuc19jb3Vu dCA8IDIgPyAiIiA6ICJzIiwKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzCiMxMjE6 IEZJTEU6IHRlc3RzL3BsdWdpbi9ob3RibG9ja3MuYzo4NToKKyAgICBjbnQgPSAoRXhlY0NvdW50 ICopIGdfaGFzaF90YWJsZV9sb29rdXAoaG90YmxvY2tzLCAoZ2NvbnN0cG9pbnRlcikgY2hlYXBf aGFzaCk7CgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMTQyOiBGSUxFOiB0ZXN0 cy9wbHVnaW4vaG90YmxvY2tzLmM6MTA2OgorICAgIGNudCA9IChFeGVjQ291bnQgKikgZ19oYXNo X3RhYmxlX2xvb2t1cChob3RibG9ja3MsIChnY29uc3Rwb2ludGVyKSBjaGVhcF9oYXNoKTsKCnRv dGFsOiAxIGVycm9ycywgNCB3YXJuaW5ncywgMTUyIGxpbmVzIGNoZWNrZWQKClBhdGNoIDQzLzUw IGhhcyBzdHlsZSBwcm9ibGVtcywgcGxlYXNlIHJldmlldy4gIElmIGFueSBvZiB0aGVzZSBlcnJv cnMKYXJlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnQgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2Vl CkNIRUNLUEFUQ0ggaW4gTUFJTlRBSU5FUlMuCgo0NC81MCBDaGVja2luZyBjb21taXQgNmQ0Njgz Y2YxMGRjIChwbHVnaW46IGFkZCBxZW11X3BsdWdpbl9pbnNuX2Rpc2FzIGhlbHBlcikKRVJST1I6 IHNwYWNlIHByb2hpYml0ZWQgYmV0d2VlbiBmdW5jdGlvbiBuYW1lIGFuZCBvcGVuIHBhcmVudGhl c2lzICcoJwojMzY6IEZJTEU6IGRpc2FzLmM6NDkzOgorc3RhdGljIHZvaWQgcGx1Z2luX3ByaW50 X2FkZHJlc3MgKGJmZF92bWEgYWRkciwgc3RydWN0IGRpc2Fzc2VtYmxlX2luZm8gKmluZm8pCgpX QVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojNDI6IEZJTEU6IGRpc2FzLmM6NDk5Ogor c3RhdGljIGJvb2wgcGx1Z2luX2NhcF9kaXNhc19pbnNuKGRpc2Fzc2VtYmxlX2luZm8gKmluZm8s IHVpbnQ2NF90IHBjLCBzaXplX3Qgc2l6ZSkKCkVSUk9SOiAiZm9vICogYmFyIiBzaG91bGQgYmUg ImZvbyAqYmFyIgojNzI6IEZJTEU6IGRpc2FzLmM6NTI5OgorY2hhciAqIHBsdWdpbl9kaXNhcyhD UFVTdGF0ZSAqY3B1LCB1aW50NjRfdCBhZGRyLCBzaXplX3Qgc2l6ZSkKCkVSUk9SOiBicmFjZXMg e30gYXJlIG5lY2Vzc2FyeSBmb3IgYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzExNTogRklM RTogZGlzYXMuYzo1NzI6CisgICAgICAgIGlmIChjb3VudCA8IDApClsuLi5dCgpFUlJPUjogImZv byAqIGJhciIgc2hvdWxkIGJlICJmb28gKmJhciIKIzEzNTogRklMRTogaW5jbHVkZS9kaXNhcy9k aXNhcy5oOjE2OgorY2hhciAqIHBsdWdpbl9kaXNhcyhDUFVTdGF0ZSAqY3B1LCB1aW50NjRfdCBh ZGRyLCBzaXplX3Qgc2l6ZSk7CgpFUlJPUjogImZvbyAqIGJhciIgc2hvdWxkIGJlICJmb28gKmJh ciIKIzE1NDogRklMRTogaW5jbHVkZS9xZW11L3FlbXUtcGx1Z2luLmg6MzIyOgorY2hhciAqIHFl bXVfcGx1Z2luX2luc25fZGlzYXMoY29uc3Qgc3RydWN0IHFlbXVfcGx1Z2luX2luc24gKmluc24p OwoKdG90YWw6IDUgZXJyb3JzLCAxIHdhcm5pbmdzLCAxNTggbGluZXMgY2hlY2tlZAoKUGF0Y2gg NDQvNTAgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNl IGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVy LCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KCjQ1LzUwIENoZWNraW5nIGNvbW1pdCBk MWYzNTVlYjlkYjQgKHRlc3RzL3BsdWdpbjogYWRkIGluc3RydWN0aW9uIGV4ZWN1dGlvbiBicmVh a2Rvd24pCldBUk5JTkc6IGFkZGVkLCBtb3ZlZCBvciBkZWxldGVkIGZpbGUocyksIGRvZXMgTUFJ TlRBSU5FUlMgbmVlZCB1cGRhdGluZz8KIzI2OiAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKCkVSUk9S OiBzcGFjZSByZXF1aXJlZCBhZnRlciB0aGF0ICcsJyAoY3R4OlZ4VikKIzk5OiBGSUxFOiB0ZXN0 cy9wbHVnaW4vaG93dmVjLmM6Njk6CisgICAgeyAiICBBZGQvU3ViIChpbW0sdGFncykiLCJhc2l0 IiwgICAweDFmODAwMDAwLCAweDExODAwMDAwLCBDT1VOVF9DTEFTU30sCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgJywnIChj dHg6VnhWKQojMTIyOiBGSUxFOiB0ZXN0cy9wbHVnaW4vaG93dmVjLmM6OTI6CisgICAgeyAiICBB ZHZTaW1kIGxkc3RtdWx0KysiLCJhZHZsc21wIiwweGJmYjAwMDAwLCAweDBjODAwMDAwLCBDT1VO VF9DTEFTU30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlIHJl cXVpcmVkIGFmdGVyIHRoYXQgJywnIChjdHg6VnhWKQojMTIyOiBGSUxFOiB0ZXN0cy9wbHVnaW4v aG93dmVjLmM6OTI6CisgICAgeyAiICBBZHZTaW1kIGxkc3RtdWx0KysiLCJhZHZsc21wIiwweGJm YjAwMDAwLCAweDBjODAwMDAwLCBDT1VOVF9DTEFTU30sCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBhZnRlciB0aGF0ICcsJyAo Y3R4OlZ4VikKIzEyNDogRklMRTogdGVzdHMvcGx1Z2luL2hvd3ZlYy5jOjk0OgorICAgIHsgIiAg QWR2U2ltZCBsZHN0KysiLCAgICAiYWR2bHNzcCIsMHhiZjgwMDAwMCwgMHgwZDgwMDAwMCwgQ09V TlRfQ0xBU1N9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpFUlJP Ujogc3BhY2UgcmVxdWlyZWQgYWZ0ZXIgdGhhdCAnLCcgKGN0eDpWeFYpCiMxMjg6IEZJTEU6IHRl c3RzL3BsdWdpbi9ob3d2ZWMuYzo5ODoKKyAgICB7ICIgIGxkc3Qgbm9hbGxvYyBwYWlyIiwgImxk c3RuYXAiLDB4M2I4MDAwMDAsIDB4MjgwMDAwMDAsIENPVU5UX0NMQVNTfSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFmdGVy IHRoYXQgJywnIChjdHg6VnhWKQojMTMyOiBGSUxFOiB0ZXN0cy9wbHVnaW4vaG93dmVjLmM6MTAy OgorICAgIHsgIiAgbGRzdCByZWcgKHJlZyBvZmYpIiwibGRzdHJvIiwgMHgzYjIwMGIwMCwgMHgz ODIwMDgwMCwgQ09VTlRfQ0xBU1N9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCkVS Uk9SOiBzcGFjZSByZXF1aXJlZCBhZnRlciB0aGF0ICcsJyAoY3R4OlZ4VikKIzE2MTogRklMRTog dGVzdHMvcGx1Z2luL2hvd3ZlYy5jOjEzMToKKyAgICAgICAgICAgICAgICBnX3N0cmluZ19hcHBl bmRfcHJpbnRmKHJlcG9ydCwiQ2xhc3M6ICUtMjRzXHQoJWxkIGhpdHMpXG4iLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKV0FSTklORzogbGluZSBvdmVy IDgwIGNoYXJhY3RlcnMKIzE2MjogRklMRTogdGVzdHMvcGx1Z2luL2hvd3ZlYy5jOjEzMjoKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc25fY2xhc3Nlc1tpXS5jbGFz cywgaW5zbl9jbGFzc2VzW2ldLmNvdW50KTsKCldBUk5JTkc6IGxpbmUgb3ZlciA4MCBjaGFyYWN0 ZXJzCiMxNjY6IEZJTEU6IHRlc3RzL3BsdWdpbi9ob3d2ZWMuYzoxMzY6CisgICAgICAgICAgICBn X3N0cmluZ19hcHBlbmRfcHJpbnRmKHJlcG9ydCwiQ2xhc3M6ICUtMjRzXHRjb3VudGVkIGluZGl2 aWR1YWxseVxuIiwKCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBhZnRlciB0aGF0ICcsJyAoY3R4OlZ4 VikKIzE2NjogRklMRTogdGVzdHMvcGx1Z2luL2hvd3ZlYy5jOjEzNjoKKyAgICAgICAgICAgIGdf c3RyaW5nX2FwcGVuZF9wcmludGYocmVwb3J0LCJDbGFzczogJS0yNHNcdGNvdW50ZWQgaW5kaXZp ZHVhbGx5XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgpF UlJPUjogc3BhY2UgcmVxdWlyZWQgYWZ0ZXIgdGhhdCAnLCcgKGN0eDpWeFYpCiMxNzA6IEZJTEU6 IHRlc3RzL3BsdWdpbi9ob3d2ZWMuYzoxNDA6CisgICAgICAgICAgICBnX3N0cmluZ19hcHBlbmRf cHJpbnRmKHJlcG9ydCwiQ2xhc3M6ICUtMjRzXHRub3QgY291bnRlZFxuIiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGFm dGVyIHRoYXQgJywnIChjdHg6VnhWKQojMTgyOiBGSUxFOiB0ZXN0cy9wbHVnaW4vaG93dmVjLmM6 MTUyOgorICAgICAgICBnX3N0cmluZ19hcHBlbmRfcHJpbnRmKHJlcG9ydCwiSW5kaXZpZHVhbCBJ bnN0cnVjdGlvbnM6XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMTg4OiBGSUxFOiB0ZXN0cy9wbHVn aW4vaG93dmVjLmM6MTU4OgorICAgICAgICAgICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50ZihyZXBv cnQsICJJbnN0cjogJS0yNHNcdCglbGQgaGl0cylcdChvcD0lIzA4eC8lcylcbiIsCgpXQVJOSU5H OiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMTkyOiBGSUxFOiB0ZXN0cy9wbHVnaW4vaG93dmVj LmM6MTYyOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWMtPmNsYXNzID8g cmVjLT5jbGFzcy0+Y2xhc3MgOiAidW4tY2F0ZWdvcmlzZWQiKTsKCkVSUk9SOiAiZm9vICogYmFy IiBzaG91bGQgYmUgImZvbyAqYmFyIgojMjEyOiBGSUxFOiB0ZXN0cy9wbHVnaW4vaG93dmVjLmM6 MTgyOgorc3RhdGljIHVpbnQ2NF90ICogZmluZF9jb3VudGVyKHN0cnVjdCBxZW11X3BsdWdpbl9p bnNuICppbnNuKQoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzI0MzogRklMRTog dGVzdHMvcGx1Z2luL2hvd3ZlYy5jOjIxMzoKKyAgICAgICAgaWNvdW50ID0gKEluc25FeGVjQ291 bnQgKikgZ19oYXNoX3RhYmxlX2xvb2t1cChpbnNucywgR1VJTlRfVE9fUE9JTlRFUihvcGNvZGUp KTsKCkVSUk9SOiBsaW5lIG92ZXIgOTAgY2hhcmFjdGVycwojMjUyOiBGSUxFOiB0ZXN0cy9wbHVn aW4vaG93dmVjLmM6MjIyOgorICAgICAgICAgICAgICAgIGRwcmludGYoc3Rkb3V0X2ZkLCAiYWRk aW5nIGluc3RydW1lbnRhdGlvbiBmb3IgJXMgKCUjMDh4IEAgJSMyMGx4IGZyb20gJXMpXG4iLAoK V0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzI1MzogRklMRTogdGVzdHMvcGx1Z2lu L2hvd3ZlYy5jOjIyMzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGljb3VudC0+aW5zbiwgb3Bj b2RlLCBxZW11X3BsdWdpbl9pbnNuX3ZhZGRyKGluc24pLCBjbGFzcy0+Y2xhc3MpOwoKV0FSTklO RzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzI1NTogRklMRTogdGVzdHMvcGx1Z2luL2hvd3Zl Yy5jOjIyNToKKyAgICAgICAgICAgIGdfaGFzaF90YWJsZV9pbnNlcnQoaW5zbnMsIEdVSU5UX1RP X1BPSU5URVIob3Bjb2RlKSwgKGdwb2ludGVyKSBpY291bnQpOwoKdG90YWw6IDEyIGVycm9ycywg OCB3YXJuaW5ncywgMzA0IGxpbmVzIGNoZWNrZWQKClBhdGNoIDQ1LzUwIGhhcyBzdHlsZSBwcm9i bGVtcywgcGxlYXNlIHJldmlldy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJlIGZhbHNlIHBv c2l0aXZlcyByZXBvcnQgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNLUEFUQ0ggaW4g TUFJTlRBSU5FUlMuCgo0Ni81MCBDaGVja2luZyBjb21taXQgZGY5NzkzZjk4NjZjICh0ZXN0cy9w bHVnaW46IGFkZCBob3RwYWdlcyBwbHVnaW4gdG8gYnJlYWtkb3duIG1lbW9yeSBhY2Nlc3MgcGF0 dGVybnMpCldBUk5JTkc6IGFkZGVkLCBtb3ZlZCBvciBkZWxldGVkIGZpbGUocyksIGRvZXMgTUFJ TlRBSU5FUlMgbmVlZCB1cGRhdGluZz8KIzI1OiAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKCkVSUk9S OiBzcGFjZSByZXF1aXJlZCBhZnRlciB0aGF0ICcsJyAoY3R4OlZ4VikKIzg4OiBGSUxFOiB0ZXN0 cy9wbHVnaW4vaG90cGFnZXMuYzo1OToKKyAgICAgICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50Zihy ZXBvcnQsIkluZGl2aWR1YWwgSW5zdHJ1Y3Rpb25zOlxuIik7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IGxpbmUgb3ZlciA5MCBjaGFyYWN0ZXJzCiM5NDog RklMRTogdGVzdHMvcGx1Z2luL2hvdHBhZ2VzLmM6NjU6CisgICAgICAgICAgICBnX3N0cmluZ19h cHBlbmRfcHJpbnRmKHJlcG9ydCwgIlBhZ2U6ICUiUFJJeDY0IiBjcHVzOiUjMDR4LyUjMDR4ICUi UFJJZDY0Ii8lIlBSSWQ2NCJcbiIsCgpFUlJPUjogdGhhdCBvcGVuIGJyYWNlIHsgc2hvdWxkIGJl IG9uIHRoZSBwcmV2aW91cyBsaW5lCiMxNTI6IEZJTEU6IHRlc3RzL3BsdWdpbi9ob3RwYWdlcy5j OjEyMzoKK3N0YXRpYyBHT3B0aW9uRW50cnkgZW50cmllc1tdID0KK3sKCldBUk5JTkc6IGxpbmUg b3ZlciA4MCBjaGFyYWN0ZXJzCiMxNTQ6IEZJTEU6IHRlc3RzL3BsdWdpbi9ob3RwYWdlcy5jOjEy NToKKyAgICB7ICJpbmxpbmUiLCAnaScsIDAsIEdfT1BUSU9OX0FSR19OT05FLCAmZG9faW5saW5l LCAiSW5saW5lIGNvdW50ZXJzIiwgTlVMTCB9LAoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQgYmV0 d2VlbiBmdW5jdGlvbiBuYW1lIGFuZCBvcGVuIHBhcmVudGhlc2lzICcoJwojMTY0OiBGSUxFOiB0 ZXN0cy9wbHVnaW4vaG90cGFnZXMuYzoxMzU6CisgICAgY29udGV4dCA9IGdfb3B0aW9uX2NvbnRl eHRfbmV3ICgiLSBob3QgcGFnZXMgdG9vbCIpOwoKRVJST1I6IHNwYWNlIHByb2hpYml0ZWQgYmV0 d2VlbiBmdW5jdGlvbiBuYW1lIGFuZCBvcGVuIHBhcmVudGhlc2lzICcoJwojMTY1OiBGSUxFOiB0 ZXN0cy9wbHVnaW4vaG90cGFnZXMuYzoxMzY6CisgICAgZ19vcHRpb25fY29udGV4dF9hZGRfbWFp bl9lbnRyaWVzIChjb250ZXh0LCBlbnRyaWVzLCBOVUxMKTsKCkVSUk9SOiB0aGF0IG9wZW4gYnJh Y2UgeyBzaG91bGQgYmUgb24gdGhlIHByZXZpb3VzIGxpbmUKIzE2NjogRklMRTogdGVzdHMvcGx1 Z2luL2hvdHBhZ2VzLmM6MTM3OgorICAgIGlmICghZ19vcHRpb25fY29udGV4dF9wYXJzZSAoY29u dGV4dCwgJmFyZ2MsICZhcmd2LCAmZXJyb3IpKQorICAgIHsKCkVSUk9SOiBzcGFjZSBwcm9oaWJp dGVkIGJldHdlZW4gZnVuY3Rpb24gbmFtZSBhbmQgb3BlbiBwYXJlbnRoZXNpcyAnKCcKIzE2Njog RklMRTogdGVzdHMvcGx1Z2luL2hvdHBhZ2VzLmM6MTM3OgorICAgIGlmICghZ19vcHRpb25fY29u dGV4dF9wYXJzZSAoY29udGV4dCwgJmFyZ2MsICZhcmd2LCAmZXJyb3IpKQoKdG90YWw6IDcgZXJy b3JzLCAyIHdhcm5pbmdzLCAxNTkgbGluZXMgY2hlY2tlZAoKUGF0Y2ggNDYvNTAgaGFzIHN0eWxl IHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFs c2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRD SCBpbiBNQUlOVEFJTkVSUy4KCjQ3LzUwIENoZWNraW5nIGNvbW1pdCA5YmExMjNiYjk1ZTYgKGFj Y2VsL3N0dWJzOiByZWR1Y2UgaGVhZGVycyBmcm9tIHRjZy1zdHViKQo0OC81MCBDaGVja2luZyBj b21taXQgZjVhMWU1YjU0MTM2IChpbmNsdWRlL2V4ZWM6IHdyYXAgY3B1X2xkc3QuaCBpbiBDT05G SUdfVENHKQo0OS81MCBDaGVja2luZyBjb21taXQgZWQxMjRlOTIyYjAxIChpbmNsdWRlL2V4ZWMv Y3B1LWRlZnMuaDogZml4IHR5cG8pCjUwLzUwIENoZWNraW5nIGNvbW1pdCAwNDkwNDhmZGI4N2Eg KFRPRE86IEFQSSBjaGFuZ2VzIHRvIG1ha2U/KQpFUlJPUjogTWlzc2luZyBTaWduZWQtb2ZmLWJ5 OiBsaW5lKHMpCgp0b3RhbDogMSBlcnJvcnMsIDAgd2FybmluZ3MsIDcgbGluZXMgY2hlY2tlZAoK UGF0Y2ggNTAvNTAgaGFzIHN0eWxlIHByb2JsZW1zLCBwbGVhc2UgcmV2aWV3LiAgSWYgYW55IG9m IHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydCB0aGVtIHRvIHRoZSBtYWlu dGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJTkVSUy4KCj09PSBPVVRQVVQgRU5EID09 PQoKVGVzdCBjb21tYW5kIGV4aXRlZCB3aXRoIGNvZGU6IDEKCgpUaGUgZnVsbCBsb2cgaXMgYXZh aWxhYmxlIGF0Cmh0dHA6Ly9wYXRjaGV3Lm9yZy9sb2dzLzIwMTkwNjE0MTcxMjAwLjIxMDc4LTEt YWxleC5iZW5uZWVAbGluYXJvLm9yZy90ZXN0aW5nLmNoZWNrcGF0Y2gvP3R5cGU9bWVzc2FnZS4K LS0tCkVtYWlsIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IFBhdGNoZXcgW2h0dHBzOi8vcGF0 Y2hldy5vcmcvXS4KUGxlYXNlIHNlbmQgeW91ciBmZWVkYmFjayB0byBwYXRjaGV3LWRldmVsQHJl ZGhhdC5jb20=