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=-11.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 D8537C433DF for ; Fri, 9 Oct 2020 18:29:23 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 60D3D22284 for ; Fri, 9 Oct 2020 18:29:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="FPAGnkCW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 60D3D22284 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=grimberg.me Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=GxBKc2u26hdolyFK0pvQVHo0EtrVqBG4IlyN83weeDY=; b=FPAGnkCWIRm0O7ngS9EfOzIEJ fahw55ZUDltjr6VSce8H0PEDJqR7Qt+Ij5h+PLfoOoiHn6dCCdPtw0IR/5CqUnfQJNLPKgF7h8NR3 n7ZBPXXFm7bM0gLYVyyEoS0LBe1H1lJre6GmKREJdJaYQhzR/X3O48immjsUMMTwqc6sq1xZ+2KY6 uZxq5h0lJLXcVJBLTJvC+Q0trSvDwtYUKn3aK53gEJ8ENBKFEET+R5cLXDI59nLcrXath5QIBUXeR YYDfuMH0mcpZEY/16zV/rorXY3/EvWTnSvOgh33zcQyE2kmgSDtarvLGVom8lLc2DqV4b66go9vGO 1oMhIS1gg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQx8l-0002My-Q2; Fri, 09 Oct 2020 18:29:16 +0000 Received: from mail-pf1-f196.google.com ([209.85.210.196]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQx8g-0002L3-Gs for linux-nvme@lists.infradead.org; Fri, 09 Oct 2020 18:29:12 +0000 Received: by mail-pf1-f196.google.com with SMTP id n14so7572056pff.6 for ; Fri, 09 Oct 2020 11:29:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=OqfbBtmO9466TAmZvUpqVKxo9OIQvJeRY1ncn0+gSmk=; b=oQckG48mU/xZiFefaLGCJi6mxDeKRLGWSs6lw+mlOq/o7BRL21NIhDco1A1mx1CitQ WtwmcVX0dmBNrbO2Ol8w/hb4+nvgXoBUsZExA76bs0iGbGKYPBujliJjsNWWKuyLYXzP oC8FmnGwzRmX6ERJqaea1AyyzTWXVuxzvcuHMxURD/hvW701FTogFOzILyNuqhZhhXvj cXTSYO8mkGUnzRet8V8W5JNHnxbSRrGmjSN8wO7DK7A/5r5z20LjxfGvObusAP4AgA/u fQP566sosYiYHqLPCJzkuwZyXjaQBYDbjicHjgjJPF/Q5jBqcUaaYkGgJWXN61zR85eH cc1w== X-Gm-Message-State: AOAM531qRT8NgjaBxCgX9LAAITOwTrdxLUsR8jJ7pmNWOcS1YDsnw7g8 dszUhEs4H94XlNQIiBmME3s= X-Google-Smtp-Source: ABdhPJxbm4lq+6+xV4b9hS5x7xPKtKIspAwecD2sKwNkUVF+QejpWassLPaj5qVR7J6DxC7p+wScXg== X-Received: by 2002:a62:7a53:0:b029:152:5482:8935 with SMTP id v80-20020a627a530000b029015254828935mr13787713pfc.31.1602268149032; Fri, 09 Oct 2020 11:29:09 -0700 (PDT) Received: from ?IPv6:2601:647:4802:9070:e430:c9cb:46e0:d242? ([2601:647:4802:9070:e430:c9cb:46e0:d242]) by smtp.gmail.com with ESMTPSA id g14sm11495681pfo.17.2020.10.09.11.29.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 09 Oct 2020 11:29:08 -0700 (PDT) Subject: Re: [PATCH] block: re-introduce blk_mq_complete_request_sync To: Yi Zhang , Ming Lei References: <20201008213750.899462-1-sagi@grimberg.me> <20201009043938.GC27356@T590> <1711488120.3435389.1602219830518.JavaMail.zimbra@redhat.com> <23f19725-f46b-7de7-915d-b97fd6d69cdc@redhat.com> From: Sagi Grimberg Message-ID: Date: Fri, 9 Oct 2020 11:29:06 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <23f19725-f46b-7de7-915d-b97fd6d69cdc@redhat.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201009_142910_601513_57585327 X-CRM114-Status: GOOD ( 27.31 ) X-BeenThere: linux-nvme@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jens Axboe , linux-block@vger.kernel.org, linux-nvme@lists.infradead.org, Keith Busch , Christoph Hellwig Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-nvme" Errors-To: linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org CgpPbiAxMC85LzIwIDY6NTUgQU0sIFlpIFpoYW5nIHdyb3RlOgo+IEhpIFNhZ2kKPiAKPiBPbiAx MC85LzIwIDQ6MDkgUE0sIFNhZ2kgR3JpbWJlcmcgd3JvdGU6Cj4+PiBIaSBTYWdpCj4+Pgo+Pj4g SSBhcHBsaWVkIHRoaXMgcGF0Y2ggb24gYmxvY2sgb3JpZ2luL2Zvci1uZXh0IGFuZCBzdGlsbCBj YW4gcmVwcm9kdWNlIAo+Pj4gaXQuCj4+Cj4+IFRoYXQncyB1bmV4cGVjdGVkLCBjYW4geW91IHRy eSB0aGlzIHBhdGNoPwo+PiAtLSAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZS9ob3N0L3Rj cC5jIGIvZHJpdmVycy9udm1lL2hvc3QvdGNwLmMKPj4gaW5kZXggNjI5YjAyNTY4NWQxLi40NjQy OGZmMGIwZmMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvbnZtZS9ob3N0L3RjcC5jCj4+ICsrKyBi L2RyaXZlcnMvbnZtZS9ob3N0L3RjcC5jCj4+IEBAIC0yMTc1LDcgKzIxNzUsNyBAQCBzdGF0aWMg dm9pZCBudm1lX3RjcF9jb21wbGV0ZV90aW1lZF9vdXQoc3RydWN0IAo+PiByZXF1ZXN0ICpycSkK Pj4gwqDCoMKgwqDCoMKgwqAgLyogZmVuY2Ugb3RoZXIgY29udGV4dHMgdGhhdCBtYXkgY29tcGxl dGUgdGhlIGNvbW1hbmQgKi8KPj4gwqDCoMKgwqDCoMKgwqAgbXV0ZXhfbG9jaygmdG9fdGNwX2N0 cmwoY3RybCktPnRlYXJkb3duX2xvY2spOwo+PiDCoMKgwqDCoMKgwqDCoCBudm1lX3RjcF9zdG9w X3F1ZXVlKGN0cmwsIG52bWVfdGNwX3F1ZXVlX2lkKHJlcS0+cXVldWUpKTsKPj4gLcKgwqDCoMKg wqDCoCBpZiAoIWJsa19tcV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpIHsKPj4gK8KgwqDCoMKgwqDC oCBpZiAoYmxrX21xX3JlcXVlc3Rfc3RhcnRlZChycSkgJiYgCj4+ICFibGtfbXFfcmVxdWVzdF9j b21wbGV0ZWQocnEpKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBudm1lX3Jl cShycSktPnN0YXR1cyA9IE5WTUVfU0NfSE9TVF9BQk9SVEVEX0NNRDsKPj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGJsa19tcV9jb21wbGV0ZV9yZXF1ZXN0X3N5bmMocnEpOwo+PiDC oMKgwqDCoMKgwqDCoCB9Cj4gTm8gV0FSTklORyB3aXRoIHRoaXMgcGF0Y2gsIGJ1dCB0aGUgdGVz dCBzdGlsbCB3aWxsIGJlIGhhbmcgYW5kIG5ldmVyIAo+IGZpbmlzaGVkLCBoZXJlIGlzIHRoZSBr ZXJuZWwgbG9nOgoKVGhhbmtzIFlpLAoKR29vZCB0byBrbm93IG5vIHdhcm5pbmcsIHRoYXQgY29u ZmlybXMgdGhlIGlzc3VlIGFuYWx5c2lzLgoKQXMgZm9yIHRoZSB0ZXN0LCBJJ20gYWJsZSB0byBz dWNjZXNzZnVseSBwYXNzIHRoaXMgb24gbXkgVk0sIGFuZAp0aGlzIHRlc3QgaXMgbm90IGRlc2ln bmVkIHRvIGdlbmVyYXRlIGVycm9ycywganVzdCBmaW8gdG8KYSBmaWxlIGJhY2tlZCBuYW1lc3Bh Y2UuIEknbSB3YW5kZXJpbmcgd2hhdCBpcyBjYXVzaW5nIHRoZXNlCmRlbGF5cyBpbiBJL08gdGhh dCBjYXVzZSB0aW1lb3V0cy4uLgoKPiAKPiBbIDMzMjcuMDExMDY3XSBydW4gYmxrdGVzdHMgbnZt ZS8wMTIgYXQgMjAyMC0xMC0wOSAwNjoyMTo1OQo+IFsgMzMyNy4yNzgxNjldIGxvb3A6IG1vZHVs ZSBsb2FkZWQKPiBbIDMzMjcuMzE0Mjg3XSBudm1ldDogYWRkaW5nIG5zaWQgMSB0byBzdWJzeXN0 ZW0gYmxrdGVzdHMtc3Vic3lzdGVtLTEKPiBbIDMzMjcuMzQ2Mjc2XSBudm1ldF90Y3A6IGVuYWJs aW5nIHBvcnQgMCAoMTI3LjAuMC4xOjQ0MjApCj4gWyAzMzI3LjM5Njc0Nl0gbnZtZXQ6IGNyZWF0 aW5nIGNvbnRyb2xsZXIgMSBmb3Igc3Vic3lzdGVtIAo+IGJsa3Rlc3RzLXN1YnN5c3RlbS0xIGZv ciBOUU4gCj4gbnFuLjIwMTQtMDgub3JnLm52bWV4cHJlc3M6dXVpZDplNTQ0MTQ5MTI2YTI0MTQ1 YWJlZWI2MTI5YjBlYzUyYy4KPiBbIDMzMjcuNDExMDAwXSBudm1lIG52bWUwOiBjcmVhdGluZyAx MiBJL08gcXVldWVzLgo+IFsgMzMyNy40MTY5NjNdIG52bWUgbnZtZTA6IG1hcHBlZCAxMi8wLzAg ZGVmYXVsdC9yZWFkL3BvbGwgcXVldWVzLgo+IFsgMzMyNy40Mjg4MzZdIG52bWUgbnZtZTA6IG5l dyBjdHJsOiBOUU4gImJsa3Rlc3RzLXN1YnN5c3RlbS0xIiwgYWRkciAKPiAxMjcuMC4wLjE6NDQy MAo+IFsgMzMyOS40MDM2NThdIFhGUyAobnZtZTBuMSk6IE1vdW50aW5nIFY1IEZpbGVzeXN0ZW0K PiBbIDMzMjkuNDE3MjEzXSBYRlMgKG52bWUwbjEpOiBFbmRpbmcgY2xlYW4gbW91bnQKPiBbIDMz MjkuNDIzMDQ0XSB4ZnMgZmlsZXN5c3RlbSBiZWluZyBtb3VudGVkIGF0IC9tbnQvYmxrdGVzdHMg c3VwcG9ydHMgCj4gdGltZXN0YW1wcyB1bnRpbCAyMDM4ICgweDdmZmZmZmZmKQo+IFsgMzM5MC4w NjkxMjZdIG52bWUgbnZtZTA6IHF1ZXVlIDY6IHRpbWVvdXQgcmVxdWVzdCAweDIxIHR5cGUgNAo+ IFsgMzM5MC4wNzQ3OTddIG52bWUgbnZtZTA6IHN0YXJ0aW5nIGVycm9yIHJlY292ZXJ5Cj4gWyAz MzkwLjA3OTM2Ml0gbnZtZSBudm1lMDogcXVldWUgNjogdGltZW91dCByZXF1ZXN0IDB4MjIgdHlw ZSA0Cj4gWyAzMzkwLjA3OTkzMl0gYmxvY2sgbnZtZTBuMTogbm8gdXNhYmxlIHBhdGggLSByZXF1 ZXVpbmcgSS9PCj4gWyAzMzkwLjA4MTk5OV0gbnZtZSBudm1lMDogUmVjb25uZWN0aW5nIGluIDEw IHNlY29uZHMuLi4KPiBbIDMzOTAuMDk1NDY3XSBibG9jayBudm1lMG4xOiBubyB1c2FibGUgcGF0 aCAtIHJlcXVldWluZyBJL08KPiBbIDMzOTAuMTAwODc5XSBibG9jayBudm1lMG4xOiBubyB1c2Fi bGUgcGF0aCAtIHJlcXVldWluZyBJL08KPiBbIDMzOTAuMTA2Mjc5XSBibG9jayBudm1lMG4xOiBu byB1c2FibGUgcGF0aCAtIHJlcXVldWluZyBJL08KPiBbIDMzOTAuMTExNjkxXSBibG9jayBudm1l MG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVldWluZyBJL08KPiBbIDMzOTAuMTE3MDk4XSBibG9j ayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVldWluZyBJL08KPiBbIDMzOTAuMTIyNTA3 XSBibG9jayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVldWluZyBJL08KPiBbIDMzOTAu MTI3OTIwXSBibG9jayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVldWluZyBJL08KPiBb IDMzOTAuMTMzMzMzXSBibG9jayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVldWluZyBJ L08KPiBbIDMzOTAuMTM4NzM0XSBibG9jayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVl dWluZyBJL08KPiBbIDM0MTUuNjY5NjU5XSBudm1ldDogY3RybCAyIGtlZXAtYWxpdmUgdGltZXIg KDE1IHNlY29uZHMpIGV4cGlyZWQhCj4gWyAzNDE1LjY3NTY4Ml0gbnZtZXQ6IGN0cmwgMiBmYXRh bCBlcnJvciBvY2N1cnJlZCEKPiBbIDM0MTkuNzY1NzM4XSBudm1ldDogY3RybCAxIGtlZXAtYWxp dmUgdGltZXIgKDE1IHNlY29uZHMpIGV4cGlyZWQhCj4gWyAzNDE5Ljc3MTc2Ml0gbnZtZXQ6IGN0 cmwgMSBmYXRhbCBlcnJvciBvY2N1cnJlZCEKPiBbIDM0NDAuMDAwMzUyXSBudm1ldDogY3JlYXRp bmcgY29udHJvbGxlciAyIGZvciBzdWJzeXN0ZW0gCj4gYmxrdGVzdHMtc3Vic3lzdGVtLTEgZm9y IE5RTiAKPiBucW4uMjAxNC0wOC5vcmcubnZtZXhwcmVzczp1dWlkOmU1NDQxNDkxMjZhMjQxNDVh YmVlYjYxMjliMGVjNTJjLgo+IFsgMzQ2My4yODY3MDBdIG52bWUgbnZtZTA6IHF1ZXVlIDA6IHRp bWVvdXQgcmVxdWVzdCAweDAgdHlwZSA0Cj4gWyAzNDYzLjI5MjM1N10gbnZtZSBudm1lMDogQ29u bmVjdCBjb21tYW5kIGZhaWxlZCwgZXJyb3Igd28vRE5SIGJpdDogODgxCj4gWyAzNDYzLjI5ODgz MF0gbnZtZSBudm1lMDogZmFpbGVkIHRvIGNvbm5lY3QgcXVldWU6IDAgcmV0PTg4MQo+IFsgMzQ2 My4zMDQzNTJdIG52bWUgbnZtZTA6IEZhaWxlZCByZWNvbm5lY3QgYXR0ZW1wdCAxCj4gWyAzNDYz LjMwOTE1Nl0gbnZtZSBudm1lMDogUmVjb25uZWN0aW5nIGluIDEwIHNlY29uZHMuLi4KPiBbIDM0 NzMuNTI3NTc0XSBudm1ldDogY3JlYXRpbmcgY29udHJvbGxlciAxIGZvciBzdWJzeXN0ZW0gCj4g YmxrdGVzdHMtc3Vic3lzdGVtLTEgZm9yIE5RTiAKPiBucW4uMjAxNC0wOC5vcmcubnZtZXhwcmVz czp1dWlkOmU1NDQxNDkxMjZhMjQxNDVhYmVlYjYxMjliMGVjNTJjLgo+IFsgMzQ3My41NDE0Mzhd IG52bWVfbnNfaGVhZF9zdWJtaXRfYmlvOiA0NyBjYWxsYmFja3Mgc3VwcHJlc3NlZAo+IFsgMzQ3 My41NDE0NDVdIGJsb2NrIG52bWUwbjE6IG5vIHVzYWJsZSBwYXRoIC0gcmVxdWV1aW5nIEkvTwo+ IFsgMzQ3My41NTI1MjFdIGJsb2NrIG52bWUwbjE6IG5vIHVzYWJsZSBwYXRoIC0gcmVxdWV1aW5n IEkvTwo+IFsgMzQ3My41NTc5MjNdIGJsb2NrIG52bWUwbjE6IG5vIHVzYWJsZSBwYXRoIC0gcmVx dWV1aW5nIEkvTwo+IFsgMzQ3My41NjMzMTldIGJsb2NrIG52bWUwbjE6IG5vIHVzYWJsZSBwYXRo IC0gcmVxdWV1aW5nIEkvTwo+IFsgMzQ3My41Njg3MzldIGJsb2NrIG52bWUwbjE6IG5vIHVzYWJs ZSBwYXRoIC0gcmVxdWV1aW5nIEkvTwo+IFsgMzQ3My41NzQ2NzhdIGJsb2NrIG52bWUwbjE6IG5v IHVzYWJsZSBwYXRoIC0gcmVxdWV1aW5nIEkvTwo+IFsgMzQ3My41ODAwNjhdIGJsb2NrIG52bWUw bjE6IG5vIHVzYWJsZSBwYXRoIC0gcmVxdWV1aW5nIEkvTwo+IFsgMzQ3My41ODU0NjFdIGJsb2Nr IG52bWUwbjE6IG5vIHVzYWJsZSBwYXRoIC0gcmVxdWV1aW5nIEkvTwo+IFsgMzQ3My41OTA4NjFd IGJsb2NrIG52bWUwbjE6IG5vIHVzYWJsZSBwYXRoIC0gcmVxdWV1aW5nIEkvTwo+IFsgMzQ3My41 OTYyNDldIGJsb2NrIG52bWUwbjE6IG5vIHVzYWJsZSBwYXRoIC0gcmVxdWV1aW5nIEkvTwo+IFsg MzQ3My42MDE4ODBdIG52bWUgbnZtZTA6IGNyZWF0aW5nIDEyIEkvTyBxdWV1ZXMuCj4gWyAzNDcz LjYxMzk1NV0gbnZtZSBudm1lMDogbWFwcGVkIDEyLzAvMCBkZWZhdWx0L3JlYWQvcG9sbCBxdWV1 ZXMuCj4gWyAzNDczLjYyMjEwNl0gbnZtZSBudm1lMDogU3VjY2Vzc2Z1bGx5IHJlY29ubmVjdGVk ICgyIGF0dGVtcHQpCj4gWyAzNTMxLjM4NDE3MF0gbnZtZSBudm1lMDogcXVldWUgMTogdGltZW91 dCByZXF1ZXN0IDB4NjIgdHlwZSA0Cj4gWyAzNTMxLjM4OTgzN10gbnZtZSBudm1lMDogc3RhcnRp bmcgZXJyb3IgcmVjb3ZlcnkKPiBbIDM1MzEuMzk0Mzk2XSBudm1lIG52bWUwOiBxdWV1ZSA3OiB0 aW1lb3V0IHJlcXVlc3QgMHg2MSB0eXBlIDQKPiBbIDM1MzEuMzk0OTU0XSBudm1lX25zX2hlYWRf c3VibWl0X2JpbzogMTQgY2FsbGJhY2tzIHN1cHByZXNzZWQKPiBbIDM1MzEuMzk0OTY0XSBibG9j ayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVldWluZyBJL08KPiBbIDM1MzEuNDExMTQ3 XSBibG9jayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVldWluZyBJL08KPiBbIDM1MzEu NDE2NTQ4XSBibG9jayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVldWluZyBJL08KPiBb IDM1MzEuNDIxOTU0XSBibG9jayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVldWluZyBJ L08KPiBbIDM1MzEuNDI3MzYxXSBibG9jayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVl dWluZyBJL08KPiBbIDM1MzEuNDMyNzYzXSBibG9jayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAt IHJlcXVldWluZyBJL08KPiBbIDM1MzEuNDM4Mjg3XSBibG9jayBudm1lMG4xOiBubyB1c2FibGUg cGF0aCAtIHJlcXVldWluZyBJL08KPiBbIDM1MzEuNDQzNzAxXSBibG9jayBudm1lMG4xOiBubyB1 c2FibGUgcGF0aCAtIHJlcXVldWluZyBJL08KPiBbIDM1MzEuNDQ5MTAzXSBibG9jayBudm1lMG4x OiBubyB1c2FibGUgcGF0aCAtIHJlcXVldWluZyBJL08KPiBbIDM1MzEuNDU0NDk3XSBibG9jayBu dm1lMG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVldWluZyBJL08KPiBbIDM1NjAuNTY4ODMyXSBu dm1ldDogY3RybCAxIGtlZXAtYWxpdmUgdGltZXIgKDE1IHNlY29uZHMpIGV4cGlyZWQhCj4gWyAz NTYwLjU3NDgzOV0gbnZtZXQ6IGN0cmwgMSBmYXRhbCBlcnJvciBvY2N1cnJlZCEKPiAKPiAKPj4g LS0gCj4+Cj4+Pgo+Pj4gW8KgIDcyNC4yNjc4NjVdIHJ1biBibGt0ZXN0cyBudm1lLzAxMiBhdCAy MDIwLTEwLTA5IDAwOjQ4OjUyCj4+PiBbwqAgNzI0LjUxODQ5OF0gbG9vcDogbW9kdWxlIGxvYWRl ZAo+Pj4gW8KgIDcyNC41NTI4ODBdIG52bWV0OiBhZGRpbmcgbnNpZCAxIHRvIHN1YnN5c3RlbSBi bGt0ZXN0cy1zdWJzeXN0ZW0tMQo+Pj4gW8KgIDcyNC41ODY2MDldIG52bWV0X3RjcDogZW5hYmxp bmcgcG9ydCAwICgxMjcuMC4wLjE6NDQyMCkKPj4+IFvCoCA3MjQuNjQ4ODk4XSBudm1ldDogY3Jl YXRpbmcgY29udHJvbGxlciAxIGZvciBzdWJzeXN0ZW0gCj4+PiBibGt0ZXN0cy1zdWJzeXN0ZW0t MSBmb3IgTlFOIAo+Pj4gbnFuLjIwMTQtMDgub3JnLm52bWV4cHJlc3M6dXVpZDplNTQ0MTQ5MTI2 YTI0MTQ1YWJlZWI2MTI5YjBlYzUyYy4KPj4+IFvCoCA3MjQuNjYzMzAwXSBudm1lIG52bWUwOiBj cmVhdGluZyAxMiBJL08gcXVldWVzLgo+Pj4gW8KgIDcyNC42Njk4MjZdIG52bWUgbnZtZTA6IG1h cHBlZCAxMi8wLzAgZGVmYXVsdC9yZWFkL3BvbGwgcXVldWVzLgo+Pj4gW8KgIDcyNC42ODEzNTBd IG52bWUgbnZtZTA6IG5ldyBjdHJsOiBOUU4gImJsa3Rlc3RzLXN1YnN5c3RlbS0xIiwgYWRkciAK Pj4+IDEyNy4wLjAuMTo0NDIwCj4+PiBbwqAgNzI2LjY0MTYwNV0gWEZTIChudm1lMG4xKTogTW91 bnRpbmcgVjUgRmlsZXN5c3RlbQo+Pj4gW8KgIDcyNi42NTQ2MzddIFhGUyAobnZtZTBuMSk6IEVu ZGluZyBjbGVhbiBtb3VudAo+Pj4gW8KgIDcyNi42NjAzMDJdIHhmcyBmaWxlc3lzdGVtIGJlaW5n IG1vdW50ZWQgYXQgL21udC9ibGt0ZXN0cyBzdXBwb3J0cyAKPj4+IHRpbWVzdGFtcHMgdW50aWwg MjAzOCAoMHg3ZmZmZmZmZikKPj4+IFvCoCA3ODcuMDQyMDY2XSBudm1lIG52bWUwOiBxdWV1ZSAy OiB0aW1lb3V0IHJlcXVlc3QgMHhlIHR5cGUgNAo+Pj4gW8KgIDc4Ny4wNDc2NDldIG52bWUgbnZt ZTA6IHN0YXJ0aW5nIGVycm9yIHJlY292ZXJ5Cj4+PiBbwqAgNzg3LjA1MjIxMV0gbnZtZSBudm1l MDogcXVldWUgNDogdGltZW91dCByZXF1ZXN0IDB4NjEgdHlwZSA0Cj4+PiBbwqAgNzg3LjA1MzQw N10gYmxvY2sgbnZtZTBuMTogbm8gdXNhYmxlIHBhdGggLSByZXF1ZXVpbmcgSS9PCj4+PiBbwqAg Nzg3LjA1NDU0M10gbnZtZSBudm1lMDogUmVjb25uZWN0aW5nIGluIDEwIHNlY29uZHMuLi4KPj4+ IFvCoCA3ODcuMDU3ODc3XSAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0KPj4+ IFvCoCA3ODcuMDYzMjc0XSBibG9jayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVldWlu ZyBJL08KPj4+IFvCoCA3ODcuMDY4MzEzXSByZWZjb3VudF90OiB1bmRlcmZsb3c7IHVzZS1hZnRl ci1mcmVlLgo+Pj4gW8KgIDc4Ny4wNjgzNzBdIFdBUk5JTkc6IENQVTogMyBQSUQ6IDMwIGF0IGxp Yi9yZWZjb3VudC5jOjI4IAo+Pj4gcmVmY291bnRfd2Fybl9zYXR1cmF0ZSsweGE2LzB4ZjAKPj4+ IFvCoCA3ODcuMDcyOTQxXSBibG9jayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAtIHJlcXVldWlu ZyBJL08KPj4+IFvCoCA3ODcuMDcyOTQ1XSBibG9jayBudm1lMG4xOiBubyB1c2FibGUgcGF0aCAt IHJlcXVldWluZyBJL08KPj4+IFvCoCA3ODcuMDc4MzMzXSBNb2R1bGVzIGxpbmtlZCBpbjogbG9v cCBudm1lX3RjcCBudm1lX2ZhYnJpY3MgCj4+PiBudm1lX2NvcmUgbnZtZXRfdGNwIG52bWV0IHJw Y3NlY19nc3Nfa3JiNSBhdXRoX3JwY2dzcyBuZnN2NCAKPj4+IGRuc19yZXNvbHZlciBuZnMgbG9j a2QgZ3JhY2UgZnNjYWNoZSBzdW5ycGMgc25kX2hkYV9jb2RlY19yZWFsdGVrIAo+Pj4gc25kX2hk YV9jb2RlY19nZW5lcmljIGxlZHRyaWdfYXVkaW8gc25kX2hkYV9pbnRlbCBzbmRfaW50ZWxfZHNw Y2ZnIAo+Pj4gc25kX2hkYV9jb2RlYyBzbmRfaGRhX2NvcmUgc25kX2h3ZGVwIHNuZF9wY20gc25k X3RpbWVyIGFtZDY0X2VkYWNfbW9kIAo+Pj4gc25kIGVkYWNfbWNlX2FtZCBzb3VuZGNvcmUga3Zt X2FtZCBjY3Aga3ZtIHBjc3BrciBpcnFieXBhc3MgaHBfd21pIAo+Pj4gc3BhcnNlX2tleW1hcCBy ZmtpbGwgazEwdGVtcCB3bWlfYm1vZiBudl90Y28gaTJjX25mb3JjZTIgYWNwaV9jcHVmcmVxIAo+ Pj4gaXBfdGFibGVzIHhmcyBub3V2ZWF1IHZpZGVvIG14bV93bWkgaTJjX2FsZ29fYml0IGRybV9r bXNfaGVscGVyIAo+Pj4gbXB0c2FzIGNlYyBzY3NpX3RyYW5zcG9ydF9zYXMgdHRtIG1wdHNjc2lo IGF0YV9nZW5lcmljIGZpcmV3aXJlX29oY2kgCj4+PiBwYXRhX2FjcGkgZmlyZXdpcmVfY29yZSBk cm0gc2VyaW9fcmF3IG1wdGJhc2UgZm9yY2VkZXRoIGNyY19pdHVfdCAKPj4+IHNhdGFfbnYgcGF0 YV9hbWQgd21pIGZsb3BweQo+Pj4gW8KgIDc4Ny4wODMxNDJdIGJsb2NrIG52bWUwbjE6IG5vIHVz YWJsZSBwYXRoIC0gcmVxdWV1aW5nIEkvTwo+Pj4gW8KgIDc4Ny4wOTEzMDRdIENQVTogMyBQSUQ6 IDMwIENvbW06IGt3b3JrZXIvMzowSCBOb3QgdGFpbnRlZCAKPj4+IDUuOS4wLXJjOC51cGRhdGUr ICMzCj4+PiBbwqAgNzg3LjA5NjY3M10gYmxvY2sgbnZtZTBuMTogbm8gdXNhYmxlIHBhdGggLSBy ZXF1ZXVpbmcgSS9PCj4+PiBbwqAgNzg3LjA5NjY3NF0gYmxvY2sgbnZtZTBuMTogbm8gdXNhYmxl IHBhdGggLSByZXF1ZXVpbmcgSS9PCj4+PiBbwqAgNzg3LjA5NjY4MF0gYmxvY2sgbnZtZTBuMTog bm8gdXNhYmxlIHBhdGggLSByZXF1ZXVpbmcgSS9PCj4+PiBbwqAgNzg3LjA5NjY4MV0gYmxvY2sg bnZtZTBuMTogbm8gdXNhYmxlIHBhdGggLSByZXF1ZXVpbmcgSS9PCj4+PiBbwqAgNzg3LjA5NjY4 M10gYmxvY2sgbnZtZTBuMTogbm8gdXNhYmxlIHBhdGggLSByZXF1ZXVpbmcgSS9PCj4+PiBbwqAg Nzg3LjIwMTI0Ml0gSGFyZHdhcmUgbmFtZTogSGV3bGV0dC1QYWNrYXJkIEhQIHh3OTQwMCAKPj4+ IFdvcmtzdGF0aW9uLzBBMUNoLCBCSU9TIDc4NkQ2IHYwNC4wMiAwNC8yMS8yMDA5Cj4+PiBbwqAg Nzg3LjIxMDM2Nl0gV29ya3F1ZXVlOiBrYmxvY2tkIGJsa19tcV90aW1lb3V0X3dvcmsKPj4+IFvC oCA3ODcuMjE1MTYxXSBSSVA6IDAwMTA6cmVmY291bnRfd2Fybl9zYXR1cmF0ZSsweGE2LzB4ZjAK Pj4+IFvCoCA3ODcuMjIwMjk1XSBDb2RlOiAwNSBhYSA5OCAyMiAwMSAwMSBlOCA5ZiBjZiBhZCBm ZiAwZiAwYiBjMyA4MCAzZCAKPj4+IDk4IDk4IDIyIDAxIDAwIDc1IDk1IDQ4IGM3IGM3IDQ4IDU0 IDNlIGEyIGM2IDA1IDg4IDk4IDIyIDAxIDAxIGU4IDgwIAo+Pj4gY2YgYWQgZmYgPDBmPiAwYiBj MyA4MCAzZCA3NyA5OCAyMiAwMSAwMCAwZiA4NSA3MiBmZiBmZiBmZiA0OCBjNyBjNyAKPj4+IGEw IDU0IDNlCj4+PiBbwqAgNzg3LjIzOTAyMV0gUlNQOiAwMDE4OmZmZmZiODYwNDA3YjNkYzggRUZM QUdTOiAwMDAxMDI5Mgo+Pj4gW8KgIDc4Ny4yNDQyNDBdIFJBWDogMDAwMDAwMDAwMDAwMDAyNiBS Qlg6IDAwMDAwMDAwMDAwMDAwMDAgUkNYOiAKPj4+IGZmZmY5ZDkzZGRjNThkMDgKPj4+IFvCoCA3 ODcuMjUxMzYxXSBSRFg6IDAwMDAwMDAwZmZmZmZmZDggUlNJOiAwMDAwMDAwMDAwMDAwMDI3IFJE STogCj4+PiBmZmZmOWQ5M2RkYzU4ZDAwCj4+PiBbwqAgNzg3LjI1ODQ4MF0gUkJQOiBmZmZmOWQ5 M2RiZDZjMjAwIFIwODogMDAwMDAwYjc0MGVkNjBlOCBSMDk6IAo+Pj4gZmZmZmZmZmZhMmZmZmJj NAo+Pj4gW8KgIDc4Ny4yNjU2MTJdIFIxMDogMDAwMDAwMDAwMDAwMDQ3NyBSMTE6IDAwMDAwMDAw MDAwMjgzMjAgUjEyOiAKPj4+IGZmZmY5ZDkzZGJkNmMyZTgKPj4+IFvCoCA3ODcuMjcyNzQxXSBS MTM6IGZmZmY5ZDkzZGJlYTAwMDAgUjE0OiBmZmZmYjg2MDQwN2IzZTcwIFIxNTogCj4+PiBmZmZm OWQ5M2RiZWEwMDAwCj4+PiBbwqAgNzg3LjI3OTg2NF0gRlM6wqAgMDAwMDAwMDAwMDAwMDAwMCgw MDAwKSBHUzpmZmZmOWQ5M2RkYzQwMDAwKDAwMDApIAo+Pj4ga25sR1M6MDAwMDAwMDAwMDAwMDAw MAo+Pj4gW8KgIDc4Ny4yODc5NDhdIENTOsKgIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAw MDAwMDAwMDgwMDUwMDMzCj4+PiBbwqAgNzg3LjI5MzY5NV0gQ1IyOiAwMDAwN2Y0NWZkOGZhMDI0 IENSMzogMDAwMDAwMDA3OTJkYzAwMCBDUjQ6IAo+Pj4gMDAwMDAwMDAwMDAwMDZlMAo+Pj4gW8Kg IDc4Ny4zMDA4MjBdIENhbGwgVHJhY2U6Cj4+PiBbwqAgNzg3LjMwMzI3N13CoCBibGtfbXFfY2hl Y2tfZXhwaXJlZCsweDEwOS8weDFiMAo+Pj4gW8KgIDc4Ny4zMDc2MzhdwqAgYmxrX21xX3F1ZXVl X3RhZ19idXN5X2l0ZXIrMHgxYjgvMHgzMzAKPj4+IFvCoCA3ODcuMzEyNTI0XcKgID8gYmxrX3Bv bGwrMHgzMDAvMHgzMDAKPj4+IFvCoCA3ODcuMzE2MDIyXcKgIGJsa19tcV90aW1lb3V0X3dvcmsr MHg0NC8weGUwCj4+PiBbwqAgNzg3LjMyMDEyOF3CoCBwcm9jZXNzX29uZV93b3JrKzB4MWI0LzB4 MzcwCj4+PiBbwqAgNzg3LjMyNDEzN13CoCB3b3JrZXJfdGhyZWFkKzB4NTMvMHgzZTAKPj4+IFvC oCA3ODcuMzI3ODA5XcKgID8gcHJvY2Vzc19vbmVfd29yaysweDM3MC8weDM3MAo+Pj4gW8KgIDc4 Ny4zMzIwMTVdwqAga3RocmVhZCsweDExYi8weDE0MAo+Pj4gW8KgIDc4Ny4zMzUyNDVdwqAgPyBf X2t0aHJlYWRfYmluZF9tYXNrKzB4NjAvMHg2MAo+Pj4gW8KgIDc4Ny4zMzk1MTVdwqAgcmV0X2Zy b21fZm9yaysweDIyLzB4MzAKPj4+IFvCoCA3ODcuMzQzMDk0XSAtLS1bIGVuZCB0cmFjZSA2MDZj ZjkxODkzNzlmY2ZjIF0tLS0KPj4+Cj4+Pgo+Pj4gQmVzdCBSZWdhcmRzLAo+Pj4gwqDCoCBZaSBa aGFuZwo+Pj4KPj4+Cj4+PiAtLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tCj4+PiBGcm9tOiAi TWluZyBMZWkiIDxtaW5nLmxlaUByZWRoYXQuY29tPgo+Pj4gVG86ICJTYWdpIEdyaW1iZXJnIiA8 c2FnaUBncmltYmVyZy5tZT4KPj4+IENjOiAiSmVucyBBeGJvZSIgPGF4Ym9lQGtlcm5lbC5kaz4s ICJZaSBaaGFuZyIgPHlpLnpoYW5nQHJlZGhhdC5jb20+LCAKPj4+IGxpbnV4LW52bWVAbGlzdHMu aW5mcmFkZWFkLm9yZywgbGludXgtYmxvY2tAdmdlci5rZXJuZWwub3JnLCAiS2VpdGggCj4+PiBC dXNjaCIgPGtidXNjaEBrZXJuZWwub3JnPiwgIkNocmlzdG9waCBIZWxsd2lnIiA8aGNoQGxzdC5k ZT4KPj4+IFNlbnQ6IEZyaWRheSwgT2N0b2JlciA5LCAyMDIwIDEyOjM5OjM4IFBNCj4+PiBTdWJq ZWN0OiBSZTogW1BBVENIXSBibG9jazogcmUtaW50cm9kdWNlIGJsa19tcV9jb21wbGV0ZV9yZXF1 ZXN0X3N5bmMKPj4+Cj4+PiBPbiBUaHUsIE9jdCAwOCwgMjAyMCBhdCAwMjozNzo1MFBNIC0wNzAw LCBTYWdpIEdyaW1iZXJnIHdyb3RlOgo+Pj4+IEluIG52bWUtdGNwIGFuZCBudm1lLXJkbWEsIHRo ZSB0aW1lb3V0IGhhbmRsZXIgaW4gY2VydGFpbiBjb25kaXRpb25zCj4+Pj4gbmVlZHMgdG8gY29t cGxldGUgYW4gYWJvcnRlZCByZXF1ZXN0LiBUaGUgdGltZW91dCBoYW5kbGVyIHNlcmlhbGl6ZXMK Pj4+PiBhZ2FpbnN0IGFuIGVycm9yIHJlY292ZXJ5IHNlcXVlbmNlIHRoYXQgaXRlcmF0ZXMgb3Zl ciB0aGUgaW5mbGlnaHQKPj4+PiByZXF1ZXN0cyBhbmQgY2FuY2VscyB0aGVtLgo+Pj4+Cj4+Pj4g SG93ZXZlciwgdGhlIGZhY3QgdGhhdCBibGtfbXFfY29tcGxldGVfcmVxdWVzdCBtYXkgZGVmZXIg dG8gYSBkaWZmZXJlbnQKPj4+PiBjb3JlIHRoYXQgc2VyaWFsaXphdGlvbiBicmVha3MuCj4+Pj4K Pj4+PiBIZW5jZSByZS1pbnRyb2R1Y2UgYmxrX21xX2NvbXBsZXRlX3JlcXVlc3Rfc3luYyBhbmQg dXNlIHRoYXQgaW4gdGhlCj4+Pj4gdGltZW91dCBoYW5kbGVyIHRvIG1ha2Ugc3VyZSB0aGF0IHdl IGRvbid0IGdldCBhIHVzZS1hZnRlci1mcmVlCj4+Pj4gY29uZGl0aW9uLgo+Pj4+Cj4+Pj4gVGhp cyB3YXMgdW5jb3ZlcmVkIGJ5IHRoZSBibGt0ZXN0czoKPj4+PiAtLSAKPj4+PiAkIG52bWVfdHJ0 eXBlPXRjcCAuL2NoZWNrIG52bWUvMDEyCj4+Pj4KPj4+PiBbIDIxNTIuNTQ2MzQzXSBydW4gYmxr dGVzdHMgbnZtZS8wMTIgYXQgMjAyMC0xMC0wOCAwNTo1OTowMwo+Pj4+IFsgMjE1Mi43OTk2NDBd IGxvb3A6IG1vZHVsZSBsb2FkZWQKPj4+PiBbIDIxNTIuODM1MjIyXSBudm1ldDogYWRkaW5nIG5z aWQgMSB0byBzdWJzeXN0ZW0gYmxrdGVzdHMtc3Vic3lzdGVtLTEKPj4+PiBbIDIxNTIuODYwNjk3 XSBudm1ldF90Y3A6IGVuYWJsaW5nIHBvcnQgMCAoMTI3LjAuMC4xOjQ0MjApCj4+Pj4gWyAyMTUy LjkzNzg4OV0gbnZtZXQ6IGNyZWF0aW5nIGNvbnRyb2xsZXIgMSBmb3Igc3Vic3lzdGVtIAo+Pj4+ IGJsa3Rlc3RzLXN1YnN5c3RlbS0xIGZvciBOUU4gCj4+Pj4gbnFuLjIwMTQtMDgub3JnLm52bWV4 cHJlc3M6dXVpZDplNTQ0MTQ5MTI2YTI0MTQ1YWJlZWI2MTI5YjBlYzUyYy4KPj4+PiBbIDIxNTIu OTUyMDg1XSBudm1lIG52bWUwOiBjcmVhdGluZyAxMiBJL08gcXVldWVzLgo+Pj4+IFsgMjE1Mi45 NTgwNDJdIG52bWUgbnZtZTA6IG1hcHBlZCAxMi8wLzAgZGVmYXVsdC9yZWFkL3BvbGwgcXVldWVz Lgo+Pj4+IFsgMjE1Mi45Njk5NDhdIG52bWUgbnZtZTA6IG5ldyBjdHJsOiBOUU4gImJsa3Rlc3Rz LXN1YnN5c3RlbS0xIiwgCj4+Pj4gYWRkciAxMjcuMC4wLjE6NDQyMAo+Pj4+IFsgMjE1NC45Mjc5 NTNdIFhGUyAobnZtZTBuMSk6IE1vdW50aW5nIFY1IEZpbGVzeXN0ZW0KPj4+PiBbIDIxNTQuOTQy NDMyXSBYRlMgKG52bWUwbjEpOiBFbmRpbmcgY2xlYW4gbW91bnQKPj4+PiBbIDIxNTQuOTQ4MTgz XSB4ZnMgZmlsZXN5c3RlbSBiZWluZyBtb3VudGVkIGF0IC9tbnQvYmxrdGVzdHMgCj4+Pj4gc3Vw cG9ydHMgdGltZXN0YW1wcyB1bnRpbCAyMDM4ICgweDdmZmZmZmZmKQo+Pj4+IFsgMjIxNS4xOTM2 NDVdIG52bWUgbnZtZTA6IHF1ZXVlIDc6IHRpbWVvdXQgcmVxdWVzdCAweDExIHR5cGUgNAo+Pj4+ IFsgMjIxNS4xOTkzMzFdIG52bWUgbnZtZTA6IHN0YXJ0aW5nIGVycm9yIHJlY292ZXJ5Cj4+Pj4g WyAyMjE1LjIwMzg5MF0gbnZtZSBudm1lMDogcXVldWUgNzogdGltZW91dCByZXF1ZXN0IDB4MTIg dHlwZSA0Cj4+Pj4gWyAyMjE1LjIwNDQ4M10gYmxvY2sgbnZtZTBuMTogbm8gdXNhYmxlIHBhdGgg LSByZXF1ZXVpbmcgSS9PCj4+Pj4gWyAyMjE1LjIxNDk3Nl0gYmxvY2sgbnZtZTBuMTogbm8gdXNh YmxlIHBhdGggLSByZXF1ZXVpbmcgSS9PCj4+Pj4gWyAyMjE1LjIxNTQ5NV0gbnZtZSBudm1lMDog UmVjb25uZWN0aW5nIGluIDEwIHNlY29uZHMuLi4KPj4+PiBbIDIyMTUuMjE1NTAyXSAtLS0tLS0t LS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0KPj4+PiBbIDIyMTUuMjE1NTA1XSByZWZjb3Vu dF90OiB1bmRlcmZsb3c7IHVzZS1hZnRlci1mcmVlLgo+Pj4+IFsgMjIxNS4yMTU2MTddIFdBUk5J Tkc6IENQVTogNiBQSUQ6IDQ1IGF0IGxpYi9yZWZjb3VudC5jOjI4IAo+Pj4+IHJlZmNvdW50X3dh cm5fc2F0dXJhdGUrMHhhNi8weGYwCj4+Pj4gWyAyMjE1LjIxNTc0NV0gUlNQOiAwMDE4OmZmZmZi NzFiODA4MzdkYzggRUZMQUdTOiAwMDAxMDI5Mgo+Pj4+IFsgMjIxNS4yMTU3NTBdIFJBWDogMDAw MDAwMDAwMDAwMDAyNiBSQlg6IDAwMDAwMDAwMDAwMDAwMDAgUkNYOiAKPj4+PiBmZmZmOTNmMzdk Y2Q4ZDA4Cj4+Pj4gWyAyMjE1LjIxNTc1M10gUkRYOiAwMDAwMDAwMGZmZmZmZmQ4IFJTSTogMDAw MDAwMDAwMDAwMDAyNyBSREk6IAo+Pj4+IGZmZmY5M2YzN2RjZDhkMDAKPj4+PiBbIDIyMTUuMjE1 NzU1XSBSQlA6IGZmZmY5M2YzN2E4MTI0MDAgUjA4OiAwMDAwMDIwM2M1MjIxZmNlIFIwOTogCj4+ Pj4gZmZmZmZmZmZhN2ZmZmJjNAo+Pj4+IFsgMjIxNS4yMTU3NThdIFIxMDogMDAwMDAwMDAwMDAw MDQ3NyBSMTE6IDAwMDAwMDAwMDAwMjgzNWMgUjEyOiAKPj4+PiBmZmZmOTNmMzdhODEyNGU4Cj4+ Pj4gWyAyMjE1LjIxNTc2MV0gUjEzOiBmZmZmOTNmMzdhMmIwMDAwIFIxNDogZmZmZmI3MWI4MDgz N2U3MCBSMTU6IAo+Pj4+IGZmZmY5M2YzN2EyYjAwMDAKPj4+PiBbIDIyMTUuMjE1NzY1XSBGUzrC oCAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY5M2YzN2RjYzAwMDAoMDAwMCkgCj4+Pj4g a25sR1M6MDAwMDAwMDAwMDAwMDAwMAo+Pj4+IFsgMjIxNS4yMTU3NjhdIENTOsKgIDAwMTAgRFM6 IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCj4+Pj4gWyAyMjE1LjIxNTc3MV0g Q1IyOiAwMDAwNTYzN2I0MTM3MDI4IENSMzogMDAwMDAwMDA3YzFiZTAwMCBDUjQ6IAo+Pj4+IDAw MDAwMDAwMDAwMDA2ZTAKPj4+PiBbIDIyMTUuMjE1NzczXSBDYWxsIFRyYWNlOgo+Pj4+IFsgMjIx NS4yMTU3ODRdwqAgYmxrX21xX2NoZWNrX2V4cGlyZWQrMHgxMDkvMHgxYjAKPj4+PiBbIDIyMTUu MjE1Nzk3XcKgIGJsa19tcV9xdWV1ZV90YWdfYnVzeV9pdGVyKzB4MWI4LzB4MzMwCj4+Pj4gWyAy MjE1LjIxNTgwMV3CoCA/IGJsa19wb2xsKzB4MzAwLzB4MzAwCj4+Pj4gWyAyMjE1LjIxNTgwNl3C oCBibGtfbXFfdGltZW91dF93b3JrKzB4NDQvMHhlMAo+Pj4+IFsgMjIxNS4yMTU4MTRdwqAgcHJv Y2Vzc19vbmVfd29yaysweDFiNC8weDM3MAo+Pj4+IFsgMjIxNS4yMTU4MjBdwqAgd29ya2VyX3Ro cmVhZCsweDUzLzB4M2UwCj4+Pj4gWyAyMjE1LjIxNTgyNV3CoCA/IHByb2Nlc3Nfb25lX3dvcmsr MHgzNzAvMHgzNzAKPj4+PiBbIDIyMTUuMjE1ODI5XcKgIGt0aHJlYWQrMHgxMWIvMHgxNDAKPj4+ PiBbIDIyMTUuMjE1ODM0XcKgID8gX19rdGhyZWFkX2JpbmRfbWFzaysweDYwLzB4NjAKPj4+PiBb IDIyMTUuMjE1ODQxXcKgIHJldF9mcm9tX2ZvcmsrMHgyMi8weDMwCj4+Pj4gWyAyMjE1LjIxNTg0 N10gLS0tWyBlbmQgdHJhY2UgN2QxMzdlMzZlMjNjMGQxOSBdLS0tCj4+Pj4gLS0gCj4+Pj4KPj4+ PiBSZXBvcnRlZC1ieTogWWkgWmhhbmcgPHlpLnpoYW5nQHJlZGhhdC5jb20+Cj4+Pj4gRml4ZXM6 IDIzNjE4N2M0ZWQxOSAoIm52bWUtdGNwOiBmaXggdGltZW91dCBoYW5kbGVyIikKPj4+PiBGaXhl czogMDQ3NWE4ZGNiY2VlICgibnZtZS1yZG1hOiBmaXggdGltZW91dCBoYW5kbGVyIikKPj4+PiBT aWduZWQtb2ZmLWJ5OiBTYWdpIEdyaW1iZXJnIDxzYWdpQGdyaW1iZXJnLm1lPgo+Pj4+IC0tLQo+ Pj4+IFlpLCB3b3VsZCBhcHByZWNpYXRlIHlvdXIgVGVzdGVkLWJ5IHRhZwo+Pj4+Cj4+Pj4gwqAg YmxvY2svYmxrLW1xLmPCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDcgKysrKysrKwo+Pj4+IMKgIGRy aXZlcnMvbnZtZS9ob3N0L3JkbWEuYyB8IDIgKy0KPj4+PiDCoCBkcml2ZXJzL252bWUvaG9zdC90 Y3AuY8KgIHwgMiArLQo+Pj4+IMKgIGluY2x1ZGUvbGludXgvYmxrLW1xLmjCoMKgIHwgMSArCj4+ Pj4gwqAgNCBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1tcS5jIGIvYmxvY2svYmxrLW1xLmMKPj4+ PiBpbmRleCBmOGUxZTc1OWM5MDUuLjJkMTU0NzIyZWYzOSAxMDA2NDQKPj4+PiAtLS0gYS9ibG9j ay9ibGstbXEuYwo+Pj4+ICsrKyBiL2Jsb2NrL2Jsay1tcS5jCj4+Pj4gQEAgLTcyOSw2ICs3Mjks MTMgQEAgYm9vbCBibGtfbXFfY29tcGxldGVfcmVxdWVzdF9yZW1vdGUoc3RydWN0IAo+Pj4+IHJl cXVlc3QgKnJxKQo+Pj4+IMKgIH0KPj4+PiDCoCBFWFBPUlRfU1lNQk9MX0dQTChibGtfbXFfY29t cGxldGVfcmVxdWVzdF9yZW1vdGUpOwo+Pj4+IMKgICt2b2lkIGJsa19tcV9jb21wbGV0ZV9yZXF1 ZXN0X3N5bmMoc3RydWN0IHJlcXVlc3QgKnJxKQo+Pj4+ICt7Cj4+Pj4gK8KgwqDCoCBXUklURV9P TkNFKHJxLT5zdGF0ZSwgTVFfUlFfQ09NUExFVEUpOwo+Pj4+ICvCoMKgwqAgcnEtPnEtPm1xX29w cy0+Y29tcGxldGUocnEpOwo+Pj4+ICt9Cj4+Pj4gK0VYUE9SVF9TWU1CT0xfR1BMKGJsa19tcV9j b21wbGV0ZV9yZXF1ZXN0X3N5bmMpOwo+Pj4+ICsKPj4+PiDCoCAvKioKPj4+PiDCoMKgICogYmxr X21xX2NvbXBsZXRlX3JlcXVlc3QgLSBlbmQgSS9PIG9uIGEgcmVxdWVzdAo+Pj4+IMKgwqAgKiBA cnE6wqDCoMKgwqDCoMKgwqAgdGhlIHJlcXVlc3QgYmVpbmcgcHJvY2Vzc2VkCj4+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvbnZtZS9ob3N0L3JkbWEuYyBiL2RyaXZlcnMvbnZtZS9ob3N0L3JkbWEu Ywo+Pj4+IGluZGV4IDllMzc4ZDBhMGMwMS4uNDVmYzYwNTM0OWRhIDEwMDY0NAo+Pj4+IC0tLSBh L2RyaXZlcnMvbnZtZS9ob3N0L3JkbWEuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L3Jk bWEuYwo+Pj4+IEBAIC0xOTc1LDcgKzE5NzUsNyBAQCBzdGF0aWMgdm9pZCAKPj4+PiBudm1lX3Jk bWFfY29tcGxldGVfdGltZWRfb3V0KHN0cnVjdCByZXF1ZXN0ICpycSkKPj4+PiDCoMKgwqDCoMKg IG52bWVfcmRtYV9zdG9wX3F1ZXVlKHF1ZXVlKTsKPj4+PiDCoMKgwqDCoMKgIGlmICghYmxrX21x X3JlcXVlc3RfY29tcGxldGVkKHJxKSkgewo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBudm1lX3Jl cShycSktPnN0YXR1cyA9IE5WTUVfU0NfSE9TVF9BQk9SVEVEX0NNRDsKPj4+PiAtwqDCoMKgwqDC oMKgwqAgYmxrX21xX2NvbXBsZXRlX3JlcXVlc3QocnEpOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBi bGtfbXFfY29tcGxldGVfcmVxdWVzdF9zeW5jKHJxKTsKPj4+PiDCoMKgwqDCoMKgIH0KPj4+PiDC oMKgwqDCoMKgIG11dGV4X3VubG9jaygmY3RybC0+dGVhcmRvd25fbG9jayk7Cj4+Pj4gwqAgfQo+ Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWUvaG9zdC90Y3AuYyBiL2RyaXZlcnMvbnZtZS9o b3N0L3RjcC5jCj4+Pj4gaW5kZXggOGY0ZjI5ZjE4YjhjLi42MjliMDI1Njg1ZDEgMTAwNjQ0Cj4+ Pj4gLS0tIGEvZHJpdmVycy9udm1lL2hvc3QvdGNwLmMKPj4+PiArKysgYi9kcml2ZXJzL252bWUv aG9zdC90Y3AuYwo+Pj4+IEBAIC0yMTc3LDcgKzIxNzcsNyBAQCBzdGF0aWMgdm9pZCBudm1lX3Rj cF9jb21wbGV0ZV90aW1lZF9vdXQoc3RydWN0IAo+Pj4+IHJlcXVlc3QgKnJxKQo+Pj4+IMKgwqDC oMKgwqAgbnZtZV90Y3Bfc3RvcF9xdWV1ZShjdHJsLCBudm1lX3RjcF9xdWV1ZV9pZChyZXEtPnF1 ZXVlKSk7Cj4+Pj4gwqDCoMKgwqDCoCBpZiAoIWJsa19tcV9yZXF1ZXN0X2NvbXBsZXRlZChycSkp IHsKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgbnZtZV9yZXEocnEpLT5zdGF0dXMgPSBOVk1FX1ND X0hPU1RfQUJPUlRFRF9DTUQ7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIGJsa19tcV9jb21wbGV0ZV9y ZXF1ZXN0KHJxKTsKPj4+PiArwqDCoMKgwqDCoMKgwqAgYmxrX21xX2NvbXBsZXRlX3JlcXVlc3Rf c3luYyhycSk7Cj4+Pgo+Pj4gT3IgY29tcGxldGUgdGhlIHJlcXVlc3QgaW4gdGhlIGZvbGxvd2lu ZyB3YXk/IFRoZW4gb25lIGJsb2NrIGxheWVyIEFQSQo+Pj4gY2FuIGJlIHNhdmVkOgo+Pj4KPj4+ IMKgwqDCoMKgYmxrX21xX2NvbXBsZXRlX3JlcXVlc3RfcmVtb3RlKHJxKTsKPj4+IMKgwqDCoMKg bnZtZV9jb21wbGV0ZV9ycShycSk7Cj4+Pgo+Pj4KPj4+IHRoYW5rcywKPj4+IE1pbmcKPj4+Cj4+ Pgo+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+ IExpbnV4LW52bWUgbWFpbGluZyBsaXN0Cj4+PiBMaW51eC1udm1lQGxpc3RzLmluZnJhZGVhZC5v cmcKPj4+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt bnZtZQo+Pj4KPj4+Cj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+Pj4gTGludXgtbnZtZSBtYWlsaW5nIGxpc3QKPj4+IExpbnV4LW52bWVAbGlzdHMu aW5mcmFkZWFkLm9yZwo+Pj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1udm1lCj4+Pgo+Pgo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KTGludXgtbnZtZSBtYWlsaW5nIGxpc3QKTGludXgtbnZtZUBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtbnZtZQo=