From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 7FBED44AB3 for ; Fri, 7 Apr 2023 04:03:19 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0FCF768A33A; Fri, 7 Apr 2023 07:03:17 +0300 (EEST) Received: from mail-yb1-f173.google.com (mail-yb1-f173.google.com [209.85.219.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 34049689DEF for ; Fri, 7 Apr 2023 07:03:10 +0300 (EEST) Received: by mail-yb1-f173.google.com with SMTP id d3so20165452ybu.1 for ; Thu, 06 Apr 2023 21:03:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=davyandbeth-com.20210112.gappssmtp.com; s=20210112; t=1680840189; h=in-reply-to:references:to:from:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=bv2UO+4C156RLsU33HM9JVbXjsocCTFXnEwCrYTqDkU=; b=yoIWx/e5FNSGg9ncnPeCBI+1Ywyt1B8/T0YA4VFDeLi81qUJ/QTVFwopUmzet62c72 iz8zQ3VS8T4Z5BOZ8Rr49/i9Lt0OyrwBcKtSLu7bp11wc1l/vv3lkL5YqR+WJfA5L/Qe q8r5NSq8M7eEi0M1yDtZAKrwdgcHYibR06bpV8v2B6molhgbMkY4V/vSCUzM35tSBss1 Tppu+QjbpikTBur2p9M3cfntmZogRRlyAGB74gAAqugIR5zJARAZVta7If9mw1VrMucw zzaGFtN3VWOLutnGrtqKB37XJFsSUUcOD5/jEhQxW+3eIEtFX+CVQHxDA0OEPEDyHcWD 3WMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680840189; h=in-reply-to:references:to:from:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=bv2UO+4C156RLsU33HM9JVbXjsocCTFXnEwCrYTqDkU=; b=mNwhsPQCREOqWp6aLiamlmHhl2GipWSNIckegVOs3gAFImmKPEKjFUGTIy+ad9jp/P cdiHNEaOYTl5U1bzXMKwav6xN8JAVaI7jdmQDNGV9UCo7ecqWqJddCF5No6+h1T1VwpW 6q1SRJwUGecCq2tl/h4vx3VePv+0+nTFZwigdI/fAF+sv9CKOeKHtwMCxMXPvuFo4gfW +cI+B4b/l1GcXqaBrrGzplRyo5U3wSXMgrjotbdllDXTXTuQff+GjAlYMUJTP/f3wtqE KZj2ua4Ir++q2fBbxSFaCd2Xk/wDDIW4QY6qyUOVTEymhF9o6XX8ExcTKfxCwDRN16NY PHJg== X-Gm-Message-State: AAQBX9dxiciIadQ4/j93aKsKbbQBcvx7qI+msMLfW+CKuvOdM9xfaQzG Sal6oWLVJYq/+CXmGwzBh7LvfkF0equASMEQSnUMhg== X-Google-Smtp-Source: AKy350awgh15e8vEMzpBeKEa8iU0McTaI+uHlPaYS3Aquby6TA4BU1DtFRB2OwXuuQogf9ANhOHwww== X-Received: by 2002:a25:1185:0:b0:b8b:ecb2:3c77 with SMTP id 127-20020a251185000000b00b8becb23c77mr1537967ybr.26.1680840189012; Thu, 06 Apr 2023 21:03:09 -0700 (PDT) Received: from [192.168.1.92] ([68.249.219.17]) by smtp.googlemail.com with ESMTPSA id j65-20020a256e44000000b00b8a5e96f640sm863148ybc.15.2023.04.06.21.03.08 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 06 Apr 2023 21:03:08 -0700 (PDT) Message-ID: Date: Thu, 6 Apr 2023 23:03:07 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Content-Language: en-US From: Davy Durham To: ffmpeg-devel@ffmpeg.org References: <94f54c4a-d530-f197-e3fe-5e7df5ef54af@davyandbeth.com> In-Reply-To: <94f54c4a-d530-f197-e3fe-5e7df5ef54af@davyandbeth.com> X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] ffmpeg appears to be wasting CPU time X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: QWZ0ZXIgZnVyaW91c2x5IGRpZ2dpbmcgdGhyb3VnaCB0aGUgZmZtcGVnIGNvZGUgKHBhcnRpY3Vs YXJseSBpbiBvbGRlciAKdmVyc2lvbnMgdGhhdCBhbHNvIGV4aGliaXQgdGhlIHByb2JsZW0sIGJ1 dCB3aGVyZSB0aGUgY29kZSBpcyBzaW1wbGVyKSBJIApoYXZlIGZvdW5kIG5vIHJlYXNvbiBmb3Ig dGhlcmUgdG8gYmUgd2FzdGVkIENQVSB0aW1lLgoKSW4gbXkgdHJhdmVscywgSSBmcnVzdHJhdGlu Z2x5IG5vdGljZWQgdGhhdCBzb21ldGltZSB0aGUgcHJvYmxlbSB3b3VsZCAKbXlzdGVyaW91c2x5 IHZhbmlzaC7CoCBBbmQsIGxvbmcgc3Rvcnkgc2hvcnQsIEkgYmVsaWV2ZSBJJ3ZlIGJlZW4gY2hh c2luZyAKYSBwaGFudG9tLsKgIElmLCBvbiBteSBsb2NhbCBtYWNoaW5lIHcvIDggY29yZXMsIEkg c3RhcnQgYSBwcm9jZXNzIHRoYXQgCnNpbXBseSBzcGlucyBvbmUgQ1BVLCB0aGUgcHJvYmxlbSB2 YW5pc2hlcy0tdGhhdCBpcywgbm93IHdoZXRoZXIgcnVubmluZyAKZmZtcGVnIGF0IGZ1bGwgc3Bl ZWQgb3Igd2l0aCBhIHJlYWQgcmF0ZSBsaW1pdCwgdGhlIGN1bXVsYXRpdmUgQ1BVIApyZXBvcnRl ZCBieSAndGltZScgaXMgbmVhcmx5KiogdGhlIHNhbWUsIGFzIG9uZSB3b3VsZCBleHBlY3QgaXQg dG8gYmUuCgpJIGJlbGlldmUgdGhpcyBpcyBhIG1hbmlmZXN0YXRpb24gb2Ygc29tZSBvZGRiYWxs IGxpbnV4IGtlcm5lbCBiZWhhdmlvciwgCm9yIHBlcmhhcHMgb2YgZ2xpYmMsIHdoZXJlIHRoZSBz bGVlcCBvcGVyYXRpb24gaXMgc29tZXRpbWVzIGp1c3QgYSBDUFUgCnNwaW4gcmF0aGVyIHRoYW4g YSBjb250ZXh0IHN3aXRjaCBzaW5jZSB0aGUgbWFjaGluZSBkb2Vzbid0IGhhdmUgCmFueXRoaW5n IGVsc2UgdG8gZG8tLWtpbmQgb2YgbGlrZSBhIHNwaW4gbG9jayBpbXByb3ZlcyBlZmZpY2llbmN5 IHdoZW4gCmxvY2tzIGFyZSBleHBlY3RlZCB0byBiZSBzaG9ydC4KCkkgYWxzbyBub3RpY2VkIHRo YXQgdW5kZXIgdmFsZ3JpbmQncyBjYWxsZ3JpbmQgdG9vbCwgSSBjb3VsZCBnZXQgbm8gCmRpZmZl cmVudCByZXN1bHRzIGJhc2VkIG9uIGZ1bGwgc3BlZWQgb3IgcmF0ZSBsaW1pdGVkLsKgIFByb2Jh Ymx5IGJlY2F1c2UgCnRoYXQgaW50ZW5zaXZlIGFuYWx5c2lzIHRvb2wgc3BpbnMgdGhlIENQVSBy ZWdhcmRsZXNzLgoKVGhvdWdoLCBJJ3ZlIHRyaWVkIGxvb2tpbmcgaW50byB0aGUgbWFzc2l2ZSBh bmQgaGFyZC10by1mb2xsb3cgZ2xpYmMgYW5kIAprZXJuZWwgc291cmNlcywgSSBoYXZlbid0IHNw b3R0ZWQgYSBjdWxwcml0LCBidXQgbmV2ZXJ0aGVsZXNzIHRoaXMgc2VlbXMgCnRvIGJlIHRoZSBv YnNlcnZlZCBiZWhhdmlvciwgYW5kIGl0J3Mgbm90IGFwcGFyZW50bHkgY2F1c2VkIGJ5IGZmbXBl ZyAKaXRzZWxmLgoKU28sIEknbGwgZ28gb24gZmFpdGggdGhhdCBpbiB0aGUgcHJlc2VuY2Ugb2Yg b3RoZXIgYWN0dWFsIHRhc2tzIGluIGEgCnByb2R1Y3Rpb24gZW52aXJvbm1lbnQsIHRoZSBmZm1w ZWcgd29uJ3QgYmUgdW5kdWx5IGNvbnN1bWluZyBDUFUuCgpJZiBhbnlvbmUgZWxzZSBoYXMgYW4g aW5zaWdodCwgSSdkIHN0aWxsIGJlIGludGVyZXN0ZWQgaW4gdHJ5aW5nIHRvIAp1bmRlcnN0YW5k IHRoZSBzaXR1YXRpb24sIGJ1dCBJIHRoaW5rIEknbSBnb29kIGZvciBub3cuCgotLS0tCgoqKi0g Im5lYXJseSLCoCBXaGVuIHJlYWQgcmF0ZSBsaW1pdGVkLCBzdGlsbCB0aGUgdGhlIENQVSBpcyBh Ym91dCAyMCUgCmhpZ2hlciB0aGFuIGl0IHNob3VsZCBiZSwgYW5kIEkgdHJhY2tlZCB0aGlzIGRv d24gdG8gdGhlIGZyZXF1ZW5jeSBhdCAKd2hpY2ggdGhlIHJlYWQgZnVuY3Rpb24gZ2V0cyByZXBl YXRlZGx5IGNhbGxlZCBvbmx5IHRvIHJldHVybiBFQUdBSU4gCm92ZXIgYW5kIG92ZXIuwqDCoCBU aGUgY2FsbCB0byBhdl91c2xlZXAgYWZ0ZXIgcmVjZWl2aW5nIEVBR0FJTiBpcyAxMG1zLsKgIApU aGlzIGlzIHF1aXRlIHNob3J0LCBjYXVzaW5nIGEgbG90IG9mIHdhc3RlZCB3YWtldXBzLCB3aGVu IGl0J3MgbGlrZWx5IAp0aGF0IHRoZSBuZXh0IGZyYW1lIGlzIGdvaW5nIHRvIGJlIHJldHVybmVk IG1vcmUgbGlrZSAyNTBtcyBpbiB0aGUgCmZ1dHVyZS7CoCBXaGVuIEkgY2hhbmdlIHRoaXMgc2xl ZXAgdG8gMjUwbXMsIHRoZSBjdW11bGF0aXZlIENQVSBiZWNvbWVzIAp2aXJ0dWFsbHkgaWRlbnRp Y2FsLgoKSSBiZWxpZXZlIHRoaXMgY2FuIGJlIGltcHJvdmVkIGJ5IGhhdmluZyB0aGUgcmVhZCBm dW5jdGlvbiByZXR1cm4gdGhlIApmdXR1cmUgdGltZSAoaW5zdGVhZCBvZiBFQUdBSU4pIGF0IHdo aWNoIG1vcmUgZGF0YSBzaG91bGQgYmUgcmVhZCAoYmFzZWQgCm9uIHRoZSB0aW1lc3RhbXBzIGlu IHRoZSByZWFkIGJ1ZmZlcnMpLCBhbmQgdGhlbiBpdCBjYW4gc2xlZXAgcHJlY2lzZWx5IAp0aGUg bmVlZGVkIGFtb3VudCBpbnN0ZWFkIG9mIGJsaW5kbHkgd2FraW5nIHVwIG9mdGVuIG9ubHkgdG8g YmUgdG9sZCB0byAKZ28gdHJ5IGFnYWluIGxhdGVyIChob3cgbXVjaCBsYXRlciwgaXQgZG9lc24n dCBrbm93LCBzbyBpdCBqdXN0IHRyaWVzIAphZ2FpbiBpbiAxMG1zKS7CoCBJJ20gd29ya2luZyBv biBhIHBhdGNoIHRoYXQgbWFrZXMgdGhpcyBpbXByb3ZlbWVudC4KCgoKT24gMy8zMC8yMyAwMzoy MCwgRGF2eSBEdXJoYW0gd3JvdGU6Cj4KPiBHcmVldGluZ3MsCj4KPiDCoCBJJ20gc2VlaW5nIHNv bWV0aGluZyBjdXJpb3VzIHdoZW4gdXNpbmcgZmZtcGVnIGFuZCBhIHJlYWRyYXRlICh1c2luZyAK PiAtcmUgc3BlY2lmaWNhbGx5KS4gKlRoZSBjdW11bGF0aXZlIENQVSB1c2FnZSB3aGVuIHJlYWRp bmcgYXQgYSBsb3dlciAKPiByYXRlIGlzIHNpZ25pZmljYW50bHkgaGlnaGVyIHRoYW4gd2hlbiBs ZXR0aW5nIGl0IHJ1biBhcyBmYXN0IGFzIAo+IHBvc3NpYmxlLioKPgo+Cj4KPiAgICAgICBFdmlk ZW5jZToKPgo+IFVzaW5nIG1hc3RlciBIRUFELCB1c2luZyB0aGUgL3RpbWUvIGNvbW1hbmQsIEkg YW0gY29udmVydGluZyBhIDIyLjYxcyAKPiAud2F2IGZpbGUgdG8gLm1wMy4KPgo+IFJ1bm5pbmcg YXQgKmZ1bGwgc3BlZWQqIHRoZSByZXN1bHRzIGFyZToKPgo+IHRpbWUgLi9mZm1wZWcgLWkgaW5w dXQud2F2IG91dHB1dC5tcDMKPgo+ICAgICBzaXplPcKgwqDCoMKgIDM1NWtCIHRpbWU9MDA6MDA6 MjIuNjIgYml0cmF0ZT0gMTI4LjRrYml0cy9zIHNwZWVkPTUyLjF4Cj4gICAgIHZpZGVvOjBrQiBh dWRpbzozNTRrQiBzdWJ0aXRsZTowa0Igb3RoZXIgc3RyZWFtczowa0IgZ2xvYmFsCj4gICAgIGhl YWRlcnM6MGtCIG11eGluZyBvdmVyaGVhZDogMC4xMjE4MzQlCj4KPiAgICAgcmVhbMKgwqDCoCAw bTAuNDY0cwo+ICAgICAqdXNlcsKgwqDCoCAwbTAuNDg3cyoqCj4gICAgICoqc3lzwqDCoMKgIDBt MC4wMzZzKgo+Cj4gUnVubmluZyBhdCAqcmVhbHRpbWUqKnNwZWVkKiAoYWRkaW5nIC1yZSkgdGhl IHJlc3VsdHMgYXJlOgo+Cj4gdGltZSAuL2ZmbXBlZyAtaSBpbnB1dC53YXYgb3V0cHV0Lm1wMwo+ Cj4gICAgIHJlYWzCoMKgwqAgMG0yMi42NjRzCj4gICAgICp1c2VywqDCoMKgIDBtMi4yNTNzKioK PiAgICAgKipzeXPCoMKgwqAgMG0wLjE1NnMqCj4KPiBUaGlzIHdvcmtzIG91dCB0byB0aGUgcmVh bHRpbWUgc3BlZWQgcnVuIGNvbnN1bWluZyAqfjEwLjYlKiBvZiB0aGUgQ1BVIAo+ICh3aGljaCBh Ym91dCB3aGF0IEkgc2VlIG9uIHRvcCBhcyB3ZWxsKSB3aGVuIGl0IHNob3VsZCBvbmx5IGNvbnN1 bWUgCj4gKn4yLjMxJSosIGJhc2VkIG9uIGhvdyBtdWNoIENQVSB3YXMgYWN0dWFsbHkgbmVlZGVk IGZvciB0aGUgY29udmVyc2lvbiAKPiBpbiB0aGUgZnVsbHNwZWVkIHJ1bi7CoCAoaS5lLiAoMC40 ODdzKzAuMDM2cykgKiAxMDAlIC8gMjIuNjFzID09IAo+IH4yLjMxJSkuIMKgwqAgVGhpcyBtZWFu cyBpdCBjb25zdW1lcyBhbG1vc3QgNXggdGhlIENQVSB3aGVuIHJlYWRpbmcgYXQgCj4gdGhlIHNs b3dlciByYXRlLgo+Cj4KPiAgICAgICBFeHBlcmltZW50Ogo+Cj4gSSBzdGFydGVkIGRpZ2dpbmcg YW5kIG5vdGljZWQgdGhhdCB3aGVuIHJlYWRyYXRlcyBhcmUgZW5hYmxlZCwgdGhlIAo+IHRyYW5z Y29kaW5nIGxvb3AgaW4gZmZtcGVnIHNsZWVwcyBhcmJpdHJhcmlseSBmb3IgMTBtcyB0aGVuIHdh a2VzIHVwIAo+IGFuZCBkb2VzIG1vcmUgcmVhZGluZywgaG93ZXZlciwgdGhlIHJlYWQgZnVuY3Rp b24gbWF5IGRlY2lkZSBpdCBzdGlsbCAKPiBpc24ndCB0aW1lIHRvIHJldHVybiBhbnl0aGluZyAo RUFHQUlOKSBhbmQgc28gdGhpbmdzIG1heSBnbyBiYWNrIHRvIAo+IHNsZWVwIGZvciBhbm90aGVy IHRyaXAgdGhyb3VnaCB0aGUgbG9vcC4KPgo+IEkgdGhvdWdodCB0aGlzIG1pZ2h0IGJlIHRoZSBp bmVmZmljaWVuY3ksIGJ1dCBpdCB0dXJucyBvdXQgbm90IHRvIGJlIAo+IHRoZSBjYXNlLgo+Cj4g SWYgSSBydW4gaXQgd2l0aG91dCB0aGUgLXJlIGZsYWcsIGJ1dCBpbnRyb2R1Y2UgYW4gdW5jb25k aXRpb25hbCBjYWxsIAo+IHRvIHVzbGVlcCgyNTBtcykgaW4gdGhlIGxvb3AgKHNpbXBseSB0byBz bG93IGl0IGRvd24gaW4gYSBzaW1pbGFyIAo+IGZhc2hpb24sIGJ1dCBhdm9pZGluZyB0aGUgY29k ZSBwYXRocyB0aGF0IC1yZSBpbnRyb2R1Y2VzKSwgdGhlbiBvbmUgCj4gd291bGQgZXhwZWN0IGl0 IHRvIGNvbnN1bWUgYWJvdXQgdGhlIHNhbWUgYW1vdW50IG9mIGN1bXVsYXRpdmUgQ1BVIGFzIAo+ IHRoZSBmdWxsIHNwZWQgcnVuIGFib3ZlLCBvbmx5IGl0IHNob3VsZCBqdXN0IHRha2UgbW9yZSBv dmVyYWxsIHRpbWUgCj4gd2hpbGUgaXQgbW9zdGx5IHNsZWVwcy4KPgo+IGkuZS4gdGhpcyBzaW1w bGUgY2hhbmdlCj4KPiAgICAgZGlmZiAtLWdpdCBhL2ZmdG9vbHMvZmZtcGVnLmMgYi9mZnRvb2xz L2ZmbXBlZy5jCj4gICAgIGluZGV4IDQzOGJlZThmZWYuLjMyYTIwODc2NDAgMTAwNjQ0Cj4gICAg IC0tLSBhL2ZmdG9vbHMvZmZtcGVnLmMKPiAgICAgKysrIGIvZmZ0b29scy9mZm1wZWcuYwo+ICAg ICBAQCAtMzkzNiw2ICszOTM2LDggQEAgc3RhdGljIGludCB0cmFuc2NvZGVfc3RlcCh2b2lkKQo+ ICAgICAgICAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19WRVJCT1NFLCAiTm8gbW9yZSBpbnB1 dHMgdG8gcmVhZCBmcm9tLCBmaW5pc2hpbmcuXG4iKTsKPiAgICAgICAgICAgICAgIHJldHVybiBB VkVSUk9SX0VPRjsKPiAgICAgICAgICAgfQo+ICAgICArCj4gICAgICsgICAgICAgYXZfdXNsZWVw KDI1MDAwMC8qMjUwbXMqLyk7Cj4gICAgICAgCj4gICAgICAgICAgIGlmIChvc3QtPmZpbHRlciAm JiAhb3N0LT5maWx0ZXItPmdyYXBoLT5ncmFwaCkgewo+ICAgICAgICAgICAgICAgaWYgKGlmaWx0 ZXJfaGFzX2FsbF9pbnB1dF9mb3JtYXRzKG9zdC0+ZmlsdGVyLT5ncmFwaCkpIHsKPgo+IFRoaXMg Z2l2ZXMgdGhlIHNhbWUgc3VycHJpc2luZyByZXN1bHQ6Cj4KPiB0aW1lIC4vZmZtcGVnIC1pIGlu cHV0LndhdiBvdXRwdXQubXAzCj4KPiAgICAgcmVhbAk2bTEwLjE2M3MqKip1c2VyIDBtMi4zMDRz KioqKnN5cyAwbTAuMTc0cyoKPgo+Cj4gQW5kIHNvIGFnYWluLCB0aGF0IHJlYWwgdGltZSBpcyBl eHBlY3RlZCwgYnV0IHRoZSB1c2VyK3N5cyAvc2hvdWxkLyBiZSAKPiBhYm91dCB0aGUgc2FtZSBh cyBpdCB3YXMgaW4gdGhlIGZpcnN0IHJ1biAoaS5lLiB+MC41cykuLgo+Cj4KPgo+ICAgICAgIENv bmNsdXNpb24/Cj4KPiAqQ2FuIGFueW9uZSBndWVzcyBhcyB0byB3aHkgdGhpcyBtYXkgYmUgaGFw cGVuaW5nPyrCoCBJJ2QgbGlrZSB0byBnZXQgCj4gdG8gdGhlIGJvdHRvbSBvZiBpdCBhbmQgc3Vi bWl0IGEgcGF0Y2guCj4KPiBJIHN1c3BlY3RlZCBzb21ldGhpbmcgd2l0aCB0aGUgdXNlIG9mIHRo cmVhZHMsIGFuZCBtYXliZSB0aHJlYWRzIAo+IGFyZW4ndCBlZmZpY2llbnRseSBwYXVzaW5nIGJ1 dCBhcmUgc3Bpbm5pbmcgd2hlbiBxdWV1ZXMgc3RhcnQgdG8gZmlsbCAKPiBvciBlbXB0eSBvdXQ/ wqAgQnV0IGlmIEkgaW50cm9kdWNlIGEgbXVjaCBsb25nZXIgc2xlZXAsIEkgZG9uJ3Qgc2VlIAo+ IGFueXRoaW5nIHJlZ2lzdGVyIG9uIHRvcCB3aGlsZSB0aGUgbWFpbiB0aHJlYWQgaXMgaW4gdGhh dCBzbGVlcCBzdGF0ZS4KPgo+IEFuZCBCVFcsIHRoZSBsYXJnZSBkaXNjcmVwYW5jeSBleGlzdHMg Zm9yIG11Y2ggbG9uZ2VyIGZpbGVzIHRvbyAKPiAoaW52b2x2ZWQgaW4gbXkgYWN0dWFsIHVzZSBj YXNlKS4KPgo+IEkgc2VlIHRoZSBzYW1lIGJlaGF2aW9yIGluIHY1LjEuMiB3aGljaCBJJ20gdXNp bmcgaW4gcHJvZHVjdGlvbi4KPgo+IElmIEkgcGVyZm9ybSB0aGUgc2FtZSBleHBlcmltZW50YWwg Y29kZSBjaGFuZ2Ugb24gdjIuMi4xLCBJIGRvIG5vdCBnZXQgCj4gdGhlIHVuZXhwZWN0ZWQgZGlm ZmVyZW5jZS7CoCBJIGp1c3QgcGlja2VkIHNvbWUgb2xkIHZlcnNpb24sIGFuZCB3b3VsZCAKPiBi ZSBoYXBweSB0byBmaWd1cmUgb3V0IG1vcmUgcHJlY2lzZWx5IHdoZW4gaXQgd2FzIGludHJvZHVj ZWQgaWYgdGhhdCAKPiB3b3VsZCBoZWxwLgo+Cj4gQW55IGFkdmljZSB3b3VsZCBiZSBhcHByZWNp YXRlZC7CoCBUaGFuayBZb3UKPgo+Cj4gUC5TLiBZb3UgbWlnaHQgd29uZGVyIHdoeSBJIG5lZWQg dG8gcnVuIGZmbXBlZyBpbiByZWFsdGltZSwgYW5kIGl0J3MgCj4gYmVjYXVzZSBteSBhY3R1YWwg dXNlIGNhc2UgaW52b2x2ZXMgSExTIGFuZCByZXF1aXJlcyBjb252ZXJ0aW5nIGF0IHRoZSAKPiBy ZWFsdGltZSByYXRlLCBidXQgdGhpcyBzaW1wbGUgbXAzIGNvbnZlcnNpb24gZGVtb25zdHJhdGVz IHRoZSBwcm9ibGVtIAo+IEknbSBzZWVpbmcgdGhlcmUuCj4KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1w ZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9m Zm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApm Zm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUi Lgo=