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=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 A0902C2D0FD for ; Wed, 13 May 2020 06:12:47 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 71A86206D3 for ; Wed, 13 May 2020 06:12:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="UCPqsUtf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 71A86206D3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E8A2C6E0F4; Wed, 13 May 2020 06:02:17 +0000 (UTC) Received: from mail-ot1-x344.google.com (mail-ot1-x344.google.com [IPv6:2607:f8b0:4864:20::344]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8C30E6E124 for ; Wed, 13 May 2020 06:02:17 +0000 (UTC) Received: by mail-ot1-x344.google.com with SMTP id d26so1267920otc.7 for ; Tue, 12 May 2020 23:02:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=qe7DEkVnPnAD93/teZnIUm1SC/00lbP9Vn4InsOAzGs=; b=UCPqsUtf/ZY0c5mazL6AEo9FQv9bSu84RXiPvzWJ8LjkBjX38y0+G/QuZ92gQ4i5V5 scYaNR6/i2rymzSo4pM/OGiocCvRAihXpbZGWeE1wh0k7IYluhxh6+kYUVapsDobU8wW snpfzuETebT5FzZqEvle1ShKMVrW6ncepxdOI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=qe7DEkVnPnAD93/teZnIUm1SC/00lbP9Vn4InsOAzGs=; b=H2v3dF9Al2p+Lq1OMTDoVUfO4sRhMwhZfIJQqCAb1ewwi/WrZ72hyPboqHHhGCtZ9G Jva4Bs8nv9WX1hdNgHN4hEzrrNOUXE0nnEiSCHtce7tJDYe+5UVRmaXpyIg/yd3BSaXh vT6Tni/zCCgzGnFAbXg3R01fb6WY0KWDKW2IMLetCTgiLaYgRO/ORwpFWaXgDBNWo+FE My17Usq4osqh6Y/LQ9keeQ1wTJ2HUU3FEOdrV1ewPVjJ8ulygYgkR8vjpmxwGt8w/aRU YWAJ1+9+qRtD8TjnLMMAz8zRq9Cjine5VuvNav5uO1sQ5lQ283A0uh+H7XQEstotOiPV E5Lw== X-Gm-Message-State: AGi0PuZ1fwOET2igS46FABsYzgLIOgmmDHe8ztfJ1LwHSOQVTCi4sOLm vhB1zT0S0Hh8jxtrJc4rnGO8eaSPClVHrsmFD+K+/Q== X-Google-Smtp-Source: APiQypJhBGBMbqp2fk0W704/owSaHWeMu8oJjYcB1KHtS1AuK87yeiknqShS1MQw+/I2lHh9U6N8ti2VHpu0rbRKFGM= X-Received: by 2002:a05:6830:1d0:: with SMTP id r16mr18624229ota.303.1589349736609; Tue, 12 May 2020 23:02:16 -0700 (PDT) MIME-Version: 1.0 References: <20200512085944.222637-1-daniel.vetter@ffwll.ch> <20200512085944.222637-17-daniel.vetter@ffwll.ch> <20200512125841.GH206103@phenom.ffwll.local> <84ce83ba-0dc7-756a-c576-81c7319edfa0@amd.com> In-Reply-To: <84ce83ba-0dc7-756a-c576-81c7319edfa0@amd.com> From: Daniel Vetter Date: Wed, 13 May 2020 08:02:05 +0200 Message-ID: To: "Kazlauskas, Nicholas" Subject: Re: [Intel-gfx] [RFC 16/17] drm/amdgpu: gpu recovery does full modesets X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-rdma , Intel Graphics Development , LKML , amd-gfx list , Chris Wilson , "moderated list:DMA BUFFER SHARING FRAMEWORK" , DRI Development , Alex Deucher , Daniel Vetter , =?UTF-8?Q?Christian_K=C3=B6nig?= , linux-media Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVHVlLCBNYXkgMTIsIDIwMjAgYXQgMTA6MTAgUE0gS2F6bGF1c2thcywgTmljaG9sYXMKPG5p Y2hvbGFzLmthemxhdXNrYXNAYW1kLmNvbT4gd3JvdGU6Cj4KPiBPbiAyMDIwLTA1LTEyIDEyOjEy IHAubS4sIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiBPbiBUdWUsIE1heSAxMiwgMjAyMCBhdCA0 OjI0IFBNIEFsZXggRGV1Y2hlciA8YWxleGRldWNoZXJAZ21haWwuY29tPiB3cm90ZToKPiA+Pgo+ ID4+IE9uIFR1ZSwgTWF5IDEyLCAyMDIwIGF0IDk6NDUgQU0gRGFuaWVsIFZldHRlciA8ZGFuaWVs LnZldHRlckBmZndsbC5jaD4gd3JvdGU6Cj4gPj4+Cj4gPj4+IE9uIFR1ZSwgTWF5IDEyLCAyMDIw IGF0IDM6MjkgUE0gQWxleCBEZXVjaGVyIDxhbGV4ZGV1Y2hlckBnbWFpbC5jb20+IHdyb3RlOgo+ ID4+Pj4KPiA+Pj4+IE9uIFR1ZSwgTWF5IDEyLCAyMDIwIGF0IDk6MTcgQU0gRGFuaWVsIFZldHRl ciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4gd3JvdGU6Cj4gPj4+Pj4KPiA+Pj4+PiBPbiBUdWUs IE1heSAxMiwgMjAyMCBhdCAzOjEyIFBNIEFsZXggRGV1Y2hlciA8YWxleGRldWNoZXJAZ21haWwu Y29tPiB3cm90ZToKPiA+Pj4+Pj4KPiA+Pj4+Pj4gT24gVHVlLCBNYXkgMTIsIDIwMjAgYXQgODo1 OCBBTSBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+IHdyb3RlOgo+ID4+Pj4+Pj4KPiA+ Pj4+Pj4+IE9uIFR1ZSwgTWF5IDEyLCAyMDIwIGF0IDA4OjU0OjQ1QU0gLTA0MDAsIEFsZXggRGV1 Y2hlciB3cm90ZToKPiA+Pj4+Pj4+PiBPbiBUdWUsIE1heSAxMiwgMjAyMCBhdCA1OjAwIEFNIERh bmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+IHdyb3RlOgo+ID4+Pj4+Pj4+Pgo+ ID4+Pj4+Pj4+PiAuLi4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gSSB0aGluayBpdCdzIHRpbWUg dG8gc3RvcCB0aGlzIGxpdHRsZSBleGVyY2lzZS4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gVGhl IGxvY2tkZXAgc3BsYXQsIGZvciB0aGUgcmVjb3JkOgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBb ICAxMzIuNTgzMzgxXSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KPiA+Pj4+Pj4+Pj4gWyAgMTMyLjU4NDA5MV0gV0FSTklORzogcG9zc2libGUg Y2lyY3VsYXIgbG9ja2luZyBkZXBlbmRlbmN5IGRldGVjdGVkCj4gPj4+Pj4+Pj4+IFsgIDEzMi41 ODQ3NzVdIDUuNy4wLXJjMysgIzM0NiBUYWludGVkOiBHICAgICAgICBXCj4gPj4+Pj4+Pj4+IFsg IDEzMi41ODU0NjFdIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ID4+Pj4+Pj4+PiBbICAxMzIuNTg2MTg0XSBrd29ya2VyLzI6My84NjUgaXMg dHJ5aW5nIHRvIGFjcXVpcmUgbG9jazoKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjU4Njg1N10gZmZmZmM5 MDAwMDY3N2M3MCAoY3J0Y193d19jbGFzc19hY3F1aXJlKXsrLisufS17MDowfSwgYXQ6IGRybV9h dG9taWNfaGVscGVyX3N1c3BlbmQrMHgzOC8weDEyMCBbZHJtX2ttc19oZWxwZXJdCj4gPj4+Pj4+ Pj4+IFsgIDEzMi41ODc1NjldCj4gPj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICBidXQgdGFzayBp cyBhbHJlYWR5IGhvbGRpbmcgbG9jazoKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjU4OTA0NF0gZmZmZmZm ZmY4MjMxOGM4MCAoZG1hX2ZlbmNlX21hcCl7KysrK30tezA6MH0sIGF0OiBkcm1fc2NoZWRfam9i X3RpbWVkb3V0KzB4MjUvMHhmMCBbZ3B1X3NjaGVkXQo+ID4+Pj4+Pj4+PiBbICAxMzIuNTg5ODAz XQo+ID4+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgd2hpY2ggbG9jayBhbHJlYWR5IGRlcGVuZHMg b24gdGhlIG5ldyBsb2NrLgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBbICAxMzIuNTkyMDA5XQo+ ID4+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgdGhlIGV4aXN0aW5nIGRlcGVuZGVuY3kgY2hhaW4g KGluIHJldmVyc2Ugb3JkZXIpIGlzOgo+ID4+Pj4+Pj4+PiBbICAxMzIuNTkzNTA3XQo+ID4+Pj4+ Pj4+PiAgICAgICAgICAgICAgICAgLT4gIzIgKGRtYV9mZW5jZV9tYXApeysrKyt9LXswOjB9Ogo+ ID4+Pj4+Pj4+PiBbICAxMzIuNTk1MDE5XSAgICAgICAgZG1hX2ZlbmNlX2JlZ2luX3NpZ25hbGxp bmcrMHg1MC8weDYwCj4gPj4+Pj4+Pj4+IFsgIDEzMi41OTU3NjddICAgICAgICBkcm1fYXRvbWlj X2hlbHBlcl9jb21taXQrMHhhMS8weDE4MCBbZHJtX2ttc19oZWxwZXJdCj4gPj4+Pj4+Pj4+IFsg IDEzMi41OTY1NjddICAgICAgICBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2F0b21pYysweDFl YS8weDI1MCBbZHJtXQo+ID4+Pj4+Pj4+PiBbICAxMzIuNTk3NDIwXSAgICAgICAgZHJtX2NsaWVu dF9tb2Rlc2V0X2NvbW1pdF9sb2NrZWQrMHg1NS8weDE5MCBbZHJtXQo+ID4+Pj4+Pj4+PiBbICAx MzIuNTk4MTc4XSAgICAgICAgZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdCsweDI0LzB4NDAgW2Ry bV0KPiA+Pj4+Pj4+Pj4gWyAgMTMyLjU5ODk0OF0gICAgICAgIGRybV9mYl9oZWxwZXJfcmVzdG9y ZV9mYmRldl9tb2RlX3VubG9ja2VkKzB4NGIvMHhhMCBbZHJtX2ttc19oZWxwZXJdCj4gPj4+Pj4+ Pj4+IFsgIDEzMi41OTk3MzhdICAgICAgICBkcm1fZmJfaGVscGVyX3NldF9wYXIrMHgzMC8weDQw IFtkcm1fa21zX2hlbHBlcl0KPiA+Pj4+Pj4+Pj4gWyAgMTMyLjYwMDUzOV0gICAgICAgIGZiY29u X2luaXQrMHgyZTgvMHg2NjAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjYwMTM0NF0gICAgICAgIHZpc3Vh bF9pbml0KzB4Y2UvMHgxMzAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjYwMjE1Nl0gICAgICAgIGRvX2Jp bmRfY29uX2RyaXZlcisweDFiYy8weDJiMAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjAyOTcwXSAgICAg ICAgZG9fdGFrZV9vdmVyX2NvbnNvbGUrMHgxMTUvMHgxODAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjYw Mzc2M10gICAgICAgIGRvX2ZiY29uX3Rha2VvdmVyKzB4NTgvMHhiMAo+ID4+Pj4+Pj4+PiBbICAx MzIuNjA0NTY0XSAgICAgICAgcmVnaXN0ZXJfZnJhbWVidWZmZXIrMHgxZWUvMHgzMDAKPiA+Pj4+ Pj4+Pj4gWyAgMTMyLjYwNTM2OV0gICAgICAgIF9fZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZp Z19hbmRfdW5sb2NrKzB4MzZlLzB4NTIwIFtkcm1fa21zX2hlbHBlcl0KPiA+Pj4+Pj4+Pj4gWyAg MTMyLjYwNjE4N10gICAgICAgIGFtZGdwdV9mYmRldl9pbml0KzB4YjMvMHhmMCBbYW1kZ3B1XQo+ ID4+Pj4+Pj4+PiBbICAxMzIuNjA3MDMyXSAgICAgICAgYW1kZ3B1X2RldmljZV9pbml0LmNvbGQr MHhlOTAvMHgxNjc3IFthbWRncHVdCj4gPj4+Pj4+Pj4+IFsgIDEzMi42MDc4NjJdICAgICAgICBh bWRncHVfZHJpdmVyX2xvYWRfa21zKzB4NWEvMHgyMDAgW2FtZGdwdV0KPiA+Pj4+Pj4+Pj4gWyAg MTMyLjYwODY5N10gICAgICAgIGFtZGdwdV9wY2lfcHJvYmUrMHhmNy8weDE4MCBbYW1kZ3B1XQo+ ID4+Pj4+Pj4+PiBbICAxMzIuNjA5NTExXSAgICAgICAgbG9jYWxfcGNpX3Byb2JlKzB4NDIvMHg4 MAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjEwMzI0XSAgICAgICAgcGNpX2RldmljZV9wcm9iZSsweDEw NC8weDFhMAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjExMTMwXSAgICAgICAgcmVhbGx5X3Byb2JlKzB4 MTQ3LzB4M2MwCj4gPj4+Pj4+Pj4+IFsgIDEzMi42MTE5MzldICAgICAgICBkcml2ZXJfcHJvYmVf ZGV2aWNlKzB4YjYvMHgxMDAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjYxMjc2Nl0gICAgICAgIGRldmlj ZV9kcml2ZXJfYXR0YWNoKzB4NTMvMHg2MAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjEzNTkzXSAgICAg ICAgX19kcml2ZXJfYXR0YWNoKzB4OGMvMHgxNTAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjYxNDQxOV0g ICAgICAgIGJ1c19mb3JfZWFjaF9kZXYrMHg3Yi8weGMwCj4gPj4+Pj4+Pj4+IFsgIDEzMi42MTUy NDldICAgICAgICBidXNfYWRkX2RyaXZlcisweDE0Yy8weDFmMAo+ID4+Pj4+Pj4+PiBbICAxMzIu NjE2MDcxXSAgICAgICAgZHJpdmVyX3JlZ2lzdGVyKzB4NmMvMHhjMAo+ID4+Pj4+Pj4+PiBbICAx MzIuNjE2OTAyXSAgICAgICAgZG9fb25lX2luaXRjYWxsKzB4NWQvMHgyZjAKPiA+Pj4+Pj4+Pj4g WyAgMTMyLjYxNzczMV0gICAgICAgIGRvX2luaXRfbW9kdWxlKzB4NWMvMHgyMzAKPiA+Pj4+Pj4+ Pj4gWyAgMTMyLjYxODU2MF0gICAgICAgIGxvYWRfbW9kdWxlKzB4Mjk4MS8weDJiYzAKPiA+Pj4+ Pj4+Pj4gWyAgMTMyLjYxOTM5MV0gICAgICAgIF9fZG9fc3lzX2Zpbml0X21vZHVsZSsweGFhLzB4 MTEwCj4gPj4+Pj4+Pj4+IFsgIDEzMi42MjAyMjhdICAgICAgICBkb19zeXNjYWxsXzY0KzB4NWEv MHgyNTAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjYyMTA2NF0gICAgICAgIGVudHJ5X1NZU0NBTExfNjRf YWZ0ZXJfaHdmcmFtZSsweDQ5LzB4YjMKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjYyMTkwM10KPiA+Pj4+ Pj4+Pj4gICAgICAgICAgICAgICAgIC0+ICMxIChjcnRjX3d3X2NsYXNzX211dGV4KXsrLisufS17 MzozfToKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjYyMzU4N10gICAgICAgIF9fd3dfbXV0ZXhfbG9jay5j b25zdHByb3AuMCsweGNjLzB4MTBjMAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjI0NDQ4XSAgICAgICAg d3dfbXV0ZXhfbG9jaysweDQzLzB4YjAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjYyNTMxNV0gICAgICAg IGRybV9tb2Rlc2V0X2xvY2srMHg0NC8weDEyMCBbZHJtXQo+ID4+Pj4+Pj4+PiBbICAxMzIuNjI2 MTg0XSAgICAgICAgZHJtbV9tb2RlX2NvbmZpZ19pbml0KzB4MmRiLzB4OGIwIFtkcm1dCj4gPj4+ Pj4+Pj4+IFsgIDEzMi42MjcwOThdICAgICAgICBhbWRncHVfZGV2aWNlX2luaXQuY29sZCsweGJk MS8weDE2NzcgW2FtZGdwdV0KPiA+Pj4+Pj4+Pj4gWyAgMTMyLjYyODAwN10gICAgICAgIGFtZGdw dV9kcml2ZXJfbG9hZF9rbXMrMHg1YS8weDIwMCBbYW1kZ3B1XQo+ID4+Pj4+Pj4+PiBbICAxMzIu NjI4OTIwXSAgICAgICAgYW1kZ3B1X3BjaV9wcm9iZSsweGY3LzB4MTgwIFthbWRncHVdCj4gPj4+ Pj4+Pj4+IFsgIDEzMi42Mjk4MDRdICAgICAgICBsb2NhbF9wY2lfcHJvYmUrMHg0Mi8weDgwCj4g Pj4+Pj4+Pj4+IFsgIDEzMi42MzA2OTBdICAgICAgICBwY2lfZGV2aWNlX3Byb2JlKzB4MTA0LzB4 MWEwCj4gPj4+Pj4+Pj4+IFsgIDEzMi42MzE1ODNdICAgICAgICByZWFsbHlfcHJvYmUrMHgxNDcv MHgzYzAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjYzMjQ3OV0gICAgICAgIGRyaXZlcl9wcm9iZV9kZXZp Y2UrMHhiNi8weDEwMAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjMzMzc5XSAgICAgICAgZGV2aWNlX2Ry aXZlcl9hdHRhY2grMHg1My8weDYwCj4gPj4+Pj4+Pj4+IFsgIDEzMi42MzQyNzVdICAgICAgICBf X2RyaXZlcl9hdHRhY2grMHg4Yy8weDE1MAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjM1MTcwXSAgICAg ICAgYnVzX2Zvcl9lYWNoX2RldisweDdiLzB4YzAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjYzNjA2OV0g ICAgICAgIGJ1c19hZGRfZHJpdmVyKzB4MTRjLzB4MWYwCj4gPj4+Pj4+Pj4+IFsgIDEzMi42MzY5 NzRdICAgICAgICBkcml2ZXJfcmVnaXN0ZXIrMHg2Yy8weGMwCj4gPj4+Pj4+Pj4+IFsgIDEzMi42 Mzc4NzBdICAgICAgICBkb19vbmVfaW5pdGNhbGwrMHg1ZC8weDJmMAo+ID4+Pj4+Pj4+PiBbICAx MzIuNjM4NzY1XSAgICAgICAgZG9faW5pdF9tb2R1bGUrMHg1Yy8weDIzMAo+ID4+Pj4+Pj4+PiBb ICAxMzIuNjM5NjU0XSAgICAgICAgbG9hZF9tb2R1bGUrMHgyOTgxLzB4MmJjMAo+ID4+Pj4+Pj4+ PiBbICAxMzIuNjQwNTIyXSAgICAgICAgX19kb19zeXNfZmluaXRfbW9kdWxlKzB4YWEvMHgxMTAK PiA+Pj4+Pj4+Pj4gWyAgMTMyLjY0MTM3Ml0gICAgICAgIGRvX3N5c2NhbGxfNjQrMHg1YS8weDI1 MAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjQyMjAzXSAgICAgICAgZW50cnlfU1lTQ0FMTF82NF9hZnRl cl9od2ZyYW1lKzB4NDkvMHhiMwo+ID4+Pj4+Pj4+PiBbICAxMzIuNjQzMDIyXQo+ID4+Pj4+Pj4+ PiAgICAgICAgICAgICAgICAgLT4gIzAgKGNydGNfd3dfY2xhc3NfYWNxdWlyZSl7Ky4rLn0tezA6 MH06Cj4gPj4+Pj4+Pj4+IFsgIDEzMi42NDQ2NDNdICAgICAgICBfX2xvY2tfYWNxdWlyZSsweDEy NDEvMHgyM2YwCj4gPj4+Pj4+Pj4+IFsgIDEzMi42NDU0NjldICAgICAgICBsb2NrX2FjcXVpcmUr MHhhZC8weDM3MAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjQ2Mjc0XSAgICAgICAgZHJtX21vZGVzZXRf YWNxdWlyZV9pbml0KzB4ZDIvMHgxMDAgW2RybV0KPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY0NzA3MV0g ICAgICAgIGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQrMHgzOC8weDEyMCBbZHJtX2ttc19oZWxw ZXJdCj4gPj4+Pj4+Pj4+IFsgIDEzMi42NDc5MDJdICAgICAgICBkbV9zdXNwZW5kKzB4MWMvMHg2 MCBbYW1kZ3B1XQo+ID4+Pj4+Pj4+PiBbICAxMzIuNjQ4Njk4XSAgICAgICAgYW1kZ3B1X2Rldmlj ZV9pcF9zdXNwZW5kX3BoYXNlMSsweDgzLzB4ZTAgW2FtZGdwdV0KPiA+Pj4+Pj4+Pj4gWyAgMTMy LjY0OTQ5OF0gICAgICAgIGFtZGdwdV9kZXZpY2VfaXBfc3VzcGVuZCsweDFjLzB4NjAgW2FtZGdw dV0KPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY1MDMwMF0gICAgICAgIGFtZGdwdV9kZXZpY2VfZ3B1X3Jl Y292ZXIuY29sZCsweDRlNi8weGU2NCBbYW1kZ3B1XQo+ID4+Pj4+Pj4+PiBbICAxMzIuNjUxMDg0 XSAgICAgICAgYW1kZ3B1X2pvYl90aW1lZG91dCsweGZiLzB4MTUwIFthbWRncHVdCj4gPj4+Pj4+ Pj4+IFsgIDEzMi42NTE4MjVdICAgICAgICBkcm1fc2NoZWRfam9iX3RpbWVkb3V0KzB4OGEvMHhm MCBbZ3B1X3NjaGVkXQo+ID4+Pj4+Pj4+PiBbICAxMzIuNjUyNTk0XSAgICAgICAgcHJvY2Vzc19v bmVfd29yaysweDIzYy8weDU4MAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjUzNDAyXSAgICAgICAgd29y a2VyX3RocmVhZCsweDUwLzB4M2IwCj4gPj4+Pj4+Pj4+IFsgIDEzMi42NTQxMzldICAgICAgICBr dGhyZWFkKzB4MTJlLzB4MTUwCj4gPj4+Pj4+Pj4+IFsgIDEzMi42NTQ4NjhdICAgICAgICByZXRf ZnJvbV9mb3JrKzB4MjcvMHg1MAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjU1NTk4XQo+ID4+Pj4+Pj4+ PiAgICAgICAgICAgICAgICAgb3RoZXIgaW5mbyB0aGF0IG1pZ2h0IGhlbHAgdXMgZGVidWcgdGhp czoKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY1NzczOV0gQ2hhaW4gZXhpc3RzIG9m Ogo+ID4+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgICBjcnRjX3d3X2NsYXNzX2FjcXVpcmUgLS0+ IGNydGNfd3dfY2xhc3NfbXV0ZXggLS0+IGRtYV9mZW5jZV9tYXAKPiA+Pj4+Pj4+Pj4KPiA+Pj4+ Pj4+Pj4gWyAgMTMyLjY1OTg3N10gIFBvc3NpYmxlIHVuc2FmZSBsb2NraW5nIHNjZW5hcmlvOgo+ ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBbICAxMzIuNjYxNDE2XSAgICAgICAgQ1BVMCAgICAgICAg ICAgICAgICAgICAgQ1BVMQo+ID4+Pj4+Pj4+PiBbICAxMzIuNjYyMTI2XSAgICAgICAgLS0tLSAg ICAgICAgICAgICAgICAgICAgLS0tLQo+ID4+Pj4+Pj4+PiBbICAxMzIuNjYyODQ3XSAgIGxvY2so ZG1hX2ZlbmNlX21hcCk7Cj4gPj4+Pj4+Pj4+IFsgIDEzMi42NjM1NzRdICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsb2NrKGNydGNfd3dfY2xhc3NfbXV0ZXgpOwo+ID4+Pj4+Pj4+PiBb ICAxMzIuNjY0MzE5XSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jayhkbWFfZmVu Y2VfbWFwKTsKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY2NTA2M10gICBsb2NrKGNydGNfd3dfY2xhc3Nf YWNxdWlyZSk7Cj4gPj4+Pj4+Pj4+IFsgIDEzMi42NjU3OTldCj4gPj4+Pj4+Pj4+ICAgICAgICAg ICAgICAgICAgKioqIERFQURMT0NLICoqKgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBbICAxMzIu NjY3OTY1XSA0IGxvY2tzIGhlbGQgYnkga3dvcmtlci8yOjMvODY1Ogo+ID4+Pj4+Pj4+PiBbICAx MzIuNjY4NzAxXSAgIzA6IGZmZmY4ODg3ZmI4MWM5MzggKCh3cV9jb21wbGV0aW9uKWV2ZW50cyl7 Ky4rLn0tezA6MH0sIGF0OiBwcm9jZXNzX29uZV93b3JrKzB4MWJjLzB4NTgwCj4gPj4+Pj4+Pj4+ IFsgIDEzMi42Njk0NjJdICAjMTogZmZmZmM5MDAwMDY3N2U1OCAoKHdvcmtfY29tcGxldGlvbiko Jigmc2NoZWQtPndvcmtfdGRyKS0+d29yaykpeysuKy59LXswOjB9LCBhdDogcHJvY2Vzc19vbmVf d29yaysweDFiYy8weDU4MAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjcwMjQyXSAgIzI6IGZmZmZmZmZm ODIzMThjODAgKGRtYV9mZW5jZV9tYXApeysrKyt9LXswOjB9LCBhdDogZHJtX3NjaGVkX2pvYl90 aW1lZG91dCsweDI1LzB4ZjAgW2dwdV9zY2hlZF0KPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY3MTAzOV0g ICMzOiBmZmZmODg4N2I4NGExNzQ4ICgmYWRldi0+bG9ja19yZXNldCl7Ky4rLn0tezM6M30sIGF0 OiBhbWRncHVfZGV2aWNlX2dwdV9yZWNvdmVyLmNvbGQrMHg1OWUvMHhlNjQgW2FtZGdwdV0KPiA+ Pj4+Pj4+Pj4gWyAgMTMyLjY3MTkwMl0KPiA+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgIHN0YWNr IGJhY2t0cmFjZToKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY3MzUxNV0gQ1BVOiAyIFBJRDogODY1IENv bW06IGt3b3JrZXIvMjozIFRhaW50ZWQ6IEcgICAgICAgIFcgICAgICAgICA1LjcuMC1yYzMrICMz NDYKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY3NDM0N10gSGFyZHdhcmUgbmFtZTogU3lzdGVtIG1hbnVm YWN0dXJlciBTeXN0ZW0gUHJvZHVjdCBOYW1lL1BSSU1FIFgzNzAtUFJPLCBCSU9TIDQwMTEgMDQv MTkvMjAxOAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjc1MTk0XSBXb3JrcXVldWU6IGV2ZW50cyBkcm1f c2NoZWRfam9iX3RpbWVkb3V0IFtncHVfc2NoZWRdCj4gPj4+Pj4+Pj4+IFsgIDEzMi42NzYwNDZd IENhbGwgVHJhY2U6Cj4gPj4+Pj4+Pj4+IFsgIDEzMi42NzY4OTddICBkdW1wX3N0YWNrKzB4OGYv MHhkMAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjc3NzQ4XSAgY2hlY2tfbm9uY2lyY3VsYXIrMHgxNjIv MHgxODAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY3ODYwNF0gID8gc3RhY2tfdHJhY2Vfc2F2ZSsweDRi LzB4NzAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY3OTQ1OV0gIF9fbG9ja19hY3F1aXJlKzB4MTI0MS8w eDIzZjAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY4MDMxMV0gIGxvY2tfYWNxdWlyZSsweGFkLzB4Mzcw Cj4gPj4+Pj4+Pj4+IFsgIDEzMi42ODExNjNdICA/IGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQr MHgzOC8weDEyMCBbZHJtX2ttc19oZWxwZXJdCj4gPj4+Pj4+Pj4+IFsgIDEzMi42ODIwMjFdICA/ IGNwdW1hc2tfbmV4dCsweDE2LzB4MjAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY4Mjg4MF0gID8gbW9k dWxlX2Fzc2VydF9tdXRleF9vcl9wcmVlbXB0KzB4MTQvMHg0MAo+ID4+Pj4+Pj4+PiBbICAxMzIu NjgzNzM3XSAgPyBfX21vZHVsZV9hZGRyZXNzKzB4MjgvMHhmMAo+ID4+Pj4+Pj4+PiBbICAxMzIu Njg0NjAxXSAgZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KzB4ZDIvMHgxMDAgW2RybV0KPiA+Pj4+ Pj4+Pj4gWyAgMTMyLjY4NTQ2Nl0gID8gZHJtX2F0b21pY19oZWxwZXJfc3VzcGVuZCsweDM4LzB4 MTIwIFtkcm1fa21zX2hlbHBlcl0KPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY4NjMzNV0gIGRybV9hdG9t aWNfaGVscGVyX3N1c3BlbmQrMHgzOC8weDEyMCBbZHJtX2ttc19oZWxwZXJdCj4gPj4+Pj4+Pj4+ IFsgIDEzMi42ODcyNTVdICBkbV9zdXNwZW5kKzB4MWMvMHg2MCBbYW1kZ3B1XQo+ID4+Pj4+Pj4+ PiBbICAxMzIuNjg4MTUyXSAgYW1kZ3B1X2RldmljZV9pcF9zdXNwZW5kX3BoYXNlMSsweDgzLzB4 ZTAgW2FtZGdwdV0KPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY4OTA1N10gID8gYW1kZ3B1X2ZlbmNlX3By b2Nlc3MrMHg0Yy8weDE1MCBbYW1kZ3B1XQo+ID4+Pj4+Pj4+PiBbICAxMzIuNjg5OTYzXSAgYW1k Z3B1X2RldmljZV9pcF9zdXNwZW5kKzB4MWMvMHg2MCBbYW1kZ3B1XQo+ID4+Pj4+Pj4+PiBbICAx MzIuNjkwODkzXSAgYW1kZ3B1X2RldmljZV9ncHVfcmVjb3Zlci5jb2xkKzB4NGU2LzB4ZTY0IFth bWRncHVdCj4gPj4+Pj4+Pj4+IFsgIDEzMi42OTE4MThdICBhbWRncHVfam9iX3RpbWVkb3V0KzB4 ZmIvMHgxNTAgW2FtZGdwdV0KPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY5MjcwN10gIGRybV9zY2hlZF9q b2JfdGltZWRvdXQrMHg4YS8weGYwIFtncHVfc2NoZWRdCj4gPj4+Pj4+Pj4+IFsgIDEzMi42OTM1 OTddICBwcm9jZXNzX29uZV93b3JrKzB4MjNjLzB4NTgwCj4gPj4+Pj4+Pj4+IFsgIDEzMi42OTQ0 ODddICB3b3JrZXJfdGhyZWFkKzB4NTAvMHgzYjAKPiA+Pj4+Pj4+Pj4gWyAgMTMyLjY5NTM3M10g ID8gcHJvY2Vzc19vbmVfd29yaysweDU4MC8weDU4MAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjk2MjY0 XSAga3RocmVhZCsweDEyZS8weDE1MAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjk3MTU0XSAgPyBrdGhy ZWFkX2NyZWF0ZV93b3JrZXJfb25fY3B1KzB4NzAvMHg3MAo+ID4+Pj4+Pj4+PiBbICAxMzIuNjk4 MDU3XSAgcmV0X2Zyb21fZm9yaysweDI3LzB4NTAKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gQ2M6 IGxpbnV4LW1lZGlhQHZnZXIua2VybmVsLm9yZwo+ID4+Pj4+Pj4+PiBDYzogbGluYXJvLW1tLXNp Z0BsaXN0cy5saW5hcm8ub3JnCj4gPj4+Pj4+Pj4+IENjOiBsaW51eC1yZG1hQHZnZXIua2VybmVs Lm9yZwo+ID4+Pj4+Pj4+PiBDYzogYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+Pj4+ Pj4+Pj4gQ2M6IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+Pj4+Pj4+Pj4gQ2M6 IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ID4+Pj4+Pj4+PiBDYzog TWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiA+ Pj4+Pj4+Pj4gQ2M6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4K PiA+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBp bnRlbC5jb20+Cj4gPj4+Pj4+Pj4+IC0tLQo+ID4+Pj4+Pj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8IDggKysrKysrKysKPiA+Pj4+Pj4+Pj4gICAxIGZp bGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPiA+Pj4+Pj4+Pj4gaW5kZXgg MzU4NGUyOTMyM2MwLi5iM2I4NGEwZDNiYWYgMTAwNjQ0Cj4gPj4+Pj4+Pj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+ID4+Pj4+Pj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPiA+Pj4+Pj4+Pj4gQEAg LTI0MTUsNiArMjQxNSwxNCBAQCBzdGF0aWMgaW50IGFtZGdwdV9kZXZpY2VfaXBfc3VzcGVuZF9w aGFzZTEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gPj4+Pj4+Pj4+ICAgICAgICAgICAg ICAgICAgLyogZGlzcGxheXMgYXJlIGhhbmRsZWQgc2VwYXJhdGVseSAqLwo+ID4+Pj4+Pj4+PiAg ICAgICAgICAgICAgICAgIGlmIChhZGV2LT5pcF9ibG9ja3NbaV0udmVyc2lvbi0+dHlwZSA9PSBB TURfSVBfQkxPQ0tfVFlQRV9EQ0UpIHsKPiA+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIFhYWCBoYW5kbGUgZXJyb3JzICovCj4gPj4+Pj4+Pj4+ICsKPiA+Pj4+Pj4+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgLyoKPiA+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICogVGhpcyBpcyBkbV9zdXNwZW5kLCB3aGljaCBjYWxscyBtb2Rlc2V0IGxvY2tzLCBhbmQK PiA+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICogdGhhdCBhIHByZXR0eSBnb29k IGludmVyc2lvbiBhZ2FpbnN0IGRtYV9mZW5jZV9zaWduYWwKPiA+Pj4+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICogd2hpY2ggZ3B1IHJlY292ZXJ5IGlzIHN1cHBvc2VkIHRvIGd1YXJh bnRlZS4KPiA+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICoKPiA+Pj4+Pj4+Pj4g KyAgICAgICAgICAgICAgICAgICAgICAgICogRG9udCBhc2sgbWUgaG93IHRvIGZpeCB0aGlzLgo+ ID4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgKi8KPiA+Pj4+Pj4+Pgo+ID4+Pj4+ Pj4+IFdlIGFjdHVhbGx5IGhhdmUgYSBmaXggZm9yIHRoaXMuICBXaWxsIGJlIG91dCBzaG9ydGx5 Lgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IFNwb2lsZXJzPyBTb2xpZCB3YXkgaXMgdG8gc2lkZXN0ZWNr IHRoZSBlbnRpcmUgdGhpbmcgYnkgYXZvaWRpbmcgdG8gcmVzZXQKPiA+Pj4+Pj4+IHRoZSBkaXNw bGF5IGJsb2NrIGVudGlyZWx5LiBGaXhpbmcgdGhlIGxvY2tpbmcgd2hpbGUgc3RpbGwgcmVzZXR0 aW5nIHRoZQo+ID4+Pj4+Pj4gZGlzcGxheSBpcyBnb2luZyB0byBiZSByZWFsbHkgaGFyZCBvdG9o IC4uLgo+ID4+Pj4+Pgo+ID4+Pj4+PiBUaGVyZSdzIG5vIHdheSB0byBhdm9pZCB0aGF0LiAgT24g ZEdQVXMgYXQgbGVhc3QgYSBmdWxsIGFzaWMgcmVzZXQgaXMKPiA+Pj4+Pj4gYSBmdWxsIGFzaWMg cmVzZXQuICBNb3N0bHkganVzdCBza2lwcyB0aGUgbW9kZXNldCBhbmQgZG9lcyB0aGUgbWluaW11 bQo+ID4+Pj4+PiBhbW91bnQgbmVjZXNzYXJ5IHRvIGdldCB0aGUgZGlzcGxheSBibG9jayBpbnRv IGEgZ29vZCBzdGF0ZSBmb3IgcmVzZXQuCj4gPj4+Pj4KPiA+Pj4+PiBCdXQgaG93IGRvIHlvdSBy ZXN0b3JlIHRoZSBkaXNwbGF5IGFmdGVyd2FyZHM/ICJbUkZDIDEzLzE3XQo+ID4+Pj4+IGRybS9z Y2hlZHVsZXI6IHVzZSBkbWEtZmVuY2UgYW5ub3RhdGlvbnMgaW4gdGRyIHdvcmsiIGVhcmxpZXIg aW4gdGhlCj4gPj4+Pj4gc2VyaWVzIGhhcyBzb21lIGlkZWFzIGZyb20gbWUgZm9yIGF0IGxlYXN0 Cj4gPj4+Pj4gc29tZSBvZiB0aGUgcHJvYmxlbXMgZm9yIHRkciB3aGVuIHRoZSBkaXNwbGF5IGdl dHMgcmVzZXQgYWxvbmcuCj4gPj4+Pj4gV2hhY2tpbmcgdGhlIGRpc3BsYXkgd2hpbGUgYSBtb2Rl c2V0L2ZsaXAvd2hhdGV2ZXIgaXMgb25nb2luZwo+ID4+Pj4+IGNvbmN1cnJlbnRseSBkb2Vzbid0 IHNvdW5kIGxpa2UgYSBnb29kIGlkZWEsIHNvIG5vdCBzdXJlIGhvdyB5b3UgY2FuCj4gPj4+Pj4g ZG8gdGhhdCB3aXRob3V0IHRha2luZyB0aGUgZHJtX21vZGVzZXRfbG9ja3MuIEFuZCBvbmNlIHlv dSBkbyB0aGF0LAo+ID4+Pj4+IGl0J3MgZGVhZGxvY2sgdGltZS4KPiA+Pj4+Cj4gPj4+PiBXZSBj YWNoZSB0aGUgY3VycmVudCBkaXNwbGF5IGh3IHN0YXRlIGFuZCByZXN0b3JlIGl0IGFmdGVyIHRo ZSByZXNldAo+ID4+Pj4gd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoZSBhdG9taWMgaW50ZXJmYWNl cyBzbyBldmVyeXRoaW5nIGlzIGJhY2sgdGhlCj4gPj4+PiB3YXkgaXQgd2FzIGJlZm9yZSB0aGUg cmVzZXQuCj4gPj4+Cj4gPj4+IEhtIHRoaXMgc291bmRzIGludGVyZXN0aW5nIC4uLiBob3cgZG8g eW91IG1ha2Ugc3VyZSBhIGNvbmN1cnJlbnQKPiA+Pj4gYXRvbWljIHVwZGF0ZSBkb2Vzbid0IHRy YW1wbGUgb3ZlciB0aGUgc2FtZSBtbWlvIHJlZ2lzdGVycyB3aGlsZSB5b3UKPiA+Pj4gZG8gdGhh dCBkYW5jZT8KPiA+Pgo+ID4+IFdlIHRha2UgdGhlIGRtLT5kY19sb2NrIGFjcm9zcyB0aGUgcmVz ZXQuCj4gPgo+ID4gT2sgaWYgdGhhdCdzIGFuIGlubmVybW9zdCBsb2NrIGFuZCB5b3UgZG9uJ3Qg ZG8gYW55IGRtYV9mZW5jZV93YWl0KCkKPiA+IHdoaWxlIGhvbGRpbmcgdGhhdCAob3IgYW55dGhp bmcgdGhhdCBzb21laG93IGRlcGVuZHMgdXBvbiB0aGF0IGFnYWluKQo+ID4gSSB0aGluayB0aGF0 IHNob3VsZCB3b3JrLiBGcm9tIGEgcXVpY2sgbG9vayBhdCBjdXJyZW50IGNvZGUgaW4KPiA+IGRy bS1uZXh0IHRoYXQgc2VlbXMgdG8gYmUgdGhlIGNhc2UuIEJ1dCB3b3VsZCBiZSBnb29kIHRvIGNo ZWNrIHdpdGggbXkKPiA+IGFubm90YXRpb25zIHdoZXRoZXIgZXZlcnl0aGluZyBpcyBwbGFjZWQg Y29ycmVjdGx5IChvciBtYXliZSB0aGVyZSdzIGEKPiA+IGJ1ZyBpbiBteSBhbm5vdGF0aW9ucyku Cj4gPgo+ID4gSSBzdGlsbCB0aGluayBzb21ldGhpbmcgbGlrZSBJIGRlc2NyaWJlZCBpbiB0aGUg ZHJtL3NjaGVkdWxlciBwYXRjaCwKPiA+IHdoaWNoIHdvdWxkIGFsbG93IHVzIHRvIHRha2UgZHJt X21vZGVzZXRfbG9ja3MgaW4gdGRyIHBhdGgsIHdvdWxkIGJlIGEKPiA+IGNsZWFuZXIgYW5kIG1v cmUgcm9idXN0IHNvbHV0aW9uIGxvbmdlciB0ZXJtLiBGb3JjaW5nIGRyaXZlcnMgdG8gZG8KPiA+ IHRoZWlyIG93biBtb2Rlc2V0IHN0YXRlIGxvb2tpbmcganVzdCBkb2Vzbid0IGZlZWwgdGhhdCBh d2Vzb21lIC4uLiBJCj4gPiBndWVzcyB0aGF0IGFsc28gZGVwZW5kcyB1cG9uIGhvdyBtYW55IG90 aGVyIGRyaXZlcnMgaGF2ZSB0aGlzIHByb2JsZW0uCj4gPgo+Cj4gSSB3b3JrZWQgYSBiaXQgb24g YW5hbHl6aW5nIHRoZSBvcmlnaW5hbCBwcm9ibGVtIGZhY2VkIGhlcmUgd2l0aCB1c2luZwo+IG91 ciByZWd1bGFyIGRtX3N1c3BlbmQvZG1fcmVzdW1lIGhlcmUgZm9yIEdQVSByZXNldCBhbmQgSSdt IG5vdCBzdXJlIGhvdwo+IHRha2luZyB0aGUgZHJtX21vZGVzZXRfbG9ja3MgcmVhbGx5IGJ1eXMg dXMgYW55dGhpbmcuCj4KPiBXZSByYW4gaW50byBhIGRlYWRsb2NrIGNhdXNlZCBieSBhbiBhc3lu YyBwYWdlZmxpcCBjb21taXQgY29taW5nIGluCj4gYWxvbmcgd2l0aCB0aGUgVERSIHN1c3BlbmQg Y29tbWl0IGFuZCB0aGUgYXN5bmMgY29tbWl0IHdhbnRlZCB0aGUKPiBkbWFfZmVuY2UgYXNzb2Np YXRlZCB3aXRoIHRoZSBwbGFuZS4gVGhlIHRkciBjb21taXQgc3VzcGVuZCBjb21taXQgdGhlbgo+ IHN0YXJ0ZWQgd2FpdGluZyBmb3IgdGhlIHBhZ2VmbGlwIGNvbW1pdCB0byBmaW5pc2ggLSB3aGlj aCBuZXZlciBoYXBwZW5zCj4gc2luY2UgdGhlIGZlbmNlIGhhc24ndCBiZWVuIHNpZ25hbGVkIHll dCBhbmQgRFJNIHNwaW5zIGZvcmV2ZXIuCj4KPiBJZiB0aGUgZG1hX2ZlbmNlIGlzICJmb3JjZSIg c2lnbmFsZWQgaW4gc3VzcGVuZCB0aGVuIHRoZSBhc3luYyBjb21taXQKPiBjb250aW51ZXMgYW5k IHRoZSBzdXNwZW5kIGNvbW1pdCBmb2xsb3dzIGFmdGVyIGFzIG5vcm1hbC4gVGhlIGFzeW5jCj4g Y29tbWl0IG5vIGxvbmdlciBob2xkcyBhbnkgb2YgdGhlIERSTSBsb2NrcyBiZWNhdXNlIGF0b21p Y19jb21taXQgaGFzCj4gYWxyZWFkeSBmaW5pc2hlZCAtIHdlIGhhZCBubyB0cm91YmxlIGdyYWJi aW5nIHRoZSBsb2NrcyBmb3IgdGhlIHRkciBjb21taXQuCj4KPiBGb3JjZSBzaWduYWxpbmcgdGhl IGZlbmNlIHdhc24ndCByZWFsbHkgYW4gb3B0aW9uIGZvciBzb2x2aW5nIHRoaXMgaXNzdWUKPiB0 aG91Z2gsIGFuZCBEUk0gZG9lc24ndCBzdXBwb3J0IGFib3J0aW5nIGF0b21pYyBjb21taXRzIG5v ciB3b3VsZCBtb3N0Cj4gZHJpdmVycyBiZSB3ZWxsIGVxdWlwcGVkIHRvIGhhbmRsZSB0aGlzIEkg dGhpbmsgLSBpdCdzIG5vIGxvbmdlciByZWFsbHkKPiBhdG9taWMgYXQgdGhhdCBwb2ludC4KPgo+ IElkZWFsbHkgd2UgZG9uJ3QgYWN0dWFsbHkgaGF2ZSB0aGF0IHBhZ2VmbGlwIGNvbW1pdCBwcm9n cmFtbWVkIGR1cmluZwo+IHRoZSBURFIgc2luY2Ugd2UnbGwgaGF2ZSB0byByZWFwcGx5IHRoYXQg c2FtZSBzdGF0ZSBhZ2FpbiBhZnRlciwgc28gd2hhdAo+IHdlJ3JlIHN0dWNrIHdpdGggaXMgdGhl IHNvbHV0aW9uIHRoYXQgd2UncmUgcGxhbm5pbmcgb24gcHV0dGluZyBpbnRvCj4gZHJpdmVyIC0g aG9sZCB0aGUgaW50ZXJuYWwgZHJpdmVyIGxvY2tzIGFjcm9zcyB0aGUgc3VzcGVuZC9yZXNldCBz bwo+IHRoZXJlJ3Mgbm8gd2F5IGZvciB0aGUgcGFnZWZsaXAgY29tbWl0IHRvIHN0YXJ0IHByb2Nl c3NpbmcgYWZ0ZXIgaGF2aW5nCj4gaXRzIGZlbmNlIHNpZ25hbGVkLgo+Cj4gV2UncmUgZXNzZW50 aWFsbHkganVzdCBmYWtpbmcgdGhhdCB0aGUgc3RhdGUgaXMgdGhlIGV4YWN0IHNhbWUgYXMgaXQg d2FzCj4gYmVmb3JlIHRoZSBHUFUgcmVzZXQgcHJvY2VzcyBzdGFydGVkLgo+Cj4gSSdtIG9wZW4g dG8gc3VnZ2VzdGlvbnMgb3IgaW1wcm92ZW1lbnRzIGZvciBoYW5kbGluZyB0aGlzIGJ1dCB0aGUK PiBlYXNpZXN0IHNvbHV0aW9uIHNlZW1lZCB0byBqdXN0IGJ5cGFzcyB0aGUgZW50aXJlIERSTSBz dGFjayB1bmRlciB0aGUgaG9vZC4KClllYWggZ2V0cyB0aGUgam9iIGRvbmUsIHBsdXMgYXNpZGUg ZnJvbSB0aGUgbG9ja3Mgc2hvdWxkIGFsc28gYXZvaWQKdGhlIG1lbW9yeSBhbGxvY2F0aW9ucyAo d2hpY2ggSSBhbHNvIHRoaW5rIGFyZSBuby1nbywgYnV0IG11Y2ggaGFyZGVyCnRvIGhpdCkuIFRo ZSBkb3duc2lkZSBpcyB0aGF0IGl0J3MgYWxsIGN1c3RvbSBjb2RlLCBwbHVzIHlvdSBuZWVkIHRo YXQKaW50ZXJuYWwgbG9jayAobm90IHJlYWxseSBuZWVkZWQgaW4gYXRvbWljIGRyaXZlcnMsIG5v dCBzdXJlIHdoeSB5b3UKaGFkIHRoYXQgdG8gYmVnaW4gd2l0aCksIGFuZCBpZiB3ZSBoYXZlIGEg cGlsZSBvZiBvdGhlciBkcml2ZXJzIHdoaWNoCmhhdmUgdGhlIHNhbWUgcHJvYmxlbSwgbWlnaHQg YmUgd29ydGggZml4aW5nIHRoaXMgaW4gaGVscGVycyBpdHNlbGYuCk9uZSBpZGVhIEkgc2tldGNo ZWQgaXMgaGVyZToKCmh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8zNjUz MzUvP3Nlcmllcz03NzE3OSZyZXY9MQoKQnV0IGl0J3MgaW5jb21wbGV0ZSBhbmQgcHJvYmFibHkg bm90IHRoZSBiZXN0IG9uZS4KCkNoZWVycywgRGFuaWVsCgoKPgo+IFJlZ2FyZHMsCj4gTmljaG9s YXMgS2F6bGF1c2thcwo+Cj4gPj4+PiBJSVJDLCB3aGVuIHdlIHJlc2V0IHRoZSByZXNldCBvZiB0 aGUKPiA+Pj4+IEdQVSwgd2UgZGlzY29ubmVjdCB0aGUgZmVuY2VzLCBhbmQgdGhlbiByZS1hdHRh Y2ggdGhlbSBhZnRlciBhIHJlc2V0Lgo+ID4+Pgo+ID4+PiBXaGVyZSBpcyB0aGF0IGNvZGU/IFNp bmNlIEknbSBub3Qgc3VyZSBob3cgeW91IGNhbiBtYWtlIHRoYXQgd29yawo+ID4+PiB3aXRob3V0 IGdldHRpbmcgc3R1Y2sgaW4gYW5vdGhlciBraW5kIG9mIGRlYWRsb2NrIGluIHRkci4gQnV0IG1h eWJlCj4gPj4+IHRoZSBjb2RlIGhhcyBzb21lIGNsZXZlciB0cmljayB0byBwdWxsIHRoYXQgb2Zm IHNvbWVob3cuCj4gPj4KPiA+PiBUaGUgR1BVIHNjaGVkdWxlci4gIGRybV9zY2hlZF9zdG9wLCBk cm1fc2NoZWRfcmVzdWJtaXRfam9icywgYW5kCj4gPj4gZHJtX3NjaGVkX3N0YXJ0Lgo+ID4KPiA+ IFRoYXQgc2VlbXMgdG8ganVzdCBiZSBhYm91dCB0aGUgc2NoZWR1bGVyLWludGVybmFsIGZlbmNl cy4gVGhhdAo+ID4gdHJhY2tpbmcgeW91IGtpbmRhIGhhdmUgdG8gdGhyb3cgYXdheSBhbmQgcmVz dGFydCB3aXRoIGEgcmVzZXQuIEJ1dCBJCj4gPiBkb24ndCB0aGluayB0aGVzZSBhcmUgdGhlIGZl bmNlcyB2aXNpYmxlIHRvIG90aGVyIHBsYWNlcywgbGlrZSBpbgo+ID4gZG1hX3Jlc3Ygb3IgZHJt X3N5bmNvYmogb3Igd2hlcmV2ZXIuCj4gPiAtRGFuaWVsCj4gPgo+ID4+IEFsZXgKPiA+Pgo+ID4+ Cj4gPj4+IC1EYW5pZWwKPiA+Pj4KPiA+Pj4+Cj4gPj4+PiBBbGV4Cj4gPj4+Pgo+ID4+Pj4+IC1E YW5pZWwKPiA+Pj4+PiAtLQo+ID4+Pj4+IERhbmllbCBWZXR0ZXIKPiA+Pj4+PiBTb2Z0d2FyZSBF bmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiA+Pj4+PiArNDEgKDApIDc5IDM2NSA1NyA0OCAt IGh0dHA6Ly9ibG9nLmZmd2xsLmNoLwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAtLQo+ID4+PiBE YW5pZWwgVmV0dGVyCj4gPj4+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ ID4+PiArNDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9nLmZmd2xsLmNoLwo+ID4KPiA+ Cj4gPgo+CgoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBv cmF0aW9uCis0MSAoMCkgNzkgMzY1IDU3IDQ4IC0gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==