From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 17FB74DA1F for <ffmpegdev@gitmailbox.com>; Mon, 21 Apr 2025 19:50:25 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BA73E687D8B; Mon, 21 Apr 2025 22:50:20 +0300 (EEST) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F3330687D99 for <ffmpeg-devel@ffmpeg.org>; Mon, 21 Apr 2025 22:50:13 +0300 (EEST) Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-43cef035a3bso30095775e9.1 for <ffmpeg-devel@ffmpeg.org>; Mon, 21 Apr 2025 12:50:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jkqxz-net.20230601.gappssmtp.com; s=20230601; t=1745265013; x=1745869813; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=xojooq8uSO3zoar7RoJNbf2viAXfR2fLbwxI3bYCDT8=; b=l05corxGnixMwwodUj7VXi5lVZPwOAAtowjcQ54uRf9KectDYm66nYlPJR2K/dpzso T0OHSRYHTjGjdvteD09fnmbKMvwvQykeMpo3BtgV8wiKgZ7Ws5IbhCVJzBSA5XgTIX1C gVxg9D10AK4GYTJslbQPA5WByQZCyF08xZebiP1bALqzINAlU/M9IVV0tkC5PxaUMZ1f qJHvFyijkLn14mM2SqPXnHi4T+NlwfeSmRTHcCwcusMED7b14hEayd3OyCWR0N5zgSDV 9eDHFO26zUKJvQI7khiQ2sO28vy4oJWIBNGDMepSMAaYMAzjqt4aF1XM2+RLzBnPsJcm EWiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745265013; x=1745869813; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=xojooq8uSO3zoar7RoJNbf2viAXfR2fLbwxI3bYCDT8=; b=hEnJNgMuqpY5PCftcEoDZlscjH2gW7kBtjiUHcGmVU0Equ6mjymoq41VIJJshGrov5 67Jo1XmxVkgU2Wojo/I7Bt6aOJvZ9cxBChFg7Xe1LCKxRBYuxEhI3EAGc2coIj3cHj1V 7PhR1JaIStH7xzgTQTxuRX7GAfRpBQF3V1odtyy+enm1Ughfb5oyrv3i3rlat/LlEtZ1 N7UN9BZkyh3nzdQquAZNOzAau3w1JGmb3PY9ED3UfcyPN8SDqGuoh5JW9o60bUUaZ2z5 XMhSKiOMI0/T1v6tiJnnOV/wTVGHCwQM+Kb257bZt2SBcnbNSqN5E3XZ7j/zHF++ZQfr oK1w== X-Gm-Message-State: AOJu0YzLR0w6z15y1cPPB79UWk/03YyRFOsp1qH7vp8dj7LE9Zi1oTzH 6CLOjueGts/4Ud8CS+khBTkTnO3E1xVYuQLRC+qpNvMSTmxtNF06Bi+RjC1WW+RpYuW/mJAluaZ Y X-Gm-Gg: ASbGncsGeJkG8fs9JVdbwneBDHu3obdjDg6NYtaqfpbsoo68KjLUt/tKS648bVceBnQ CVgpc4taD+JcjSoBhKr2llKqYqPsN8XDRSwRrDDZbdPEh3zLz4HuaaXBHVyDyqgDid19TtGFXdD eUrI40a063kgUX/59AO3pQ/iIjLC3ykzhuzS8GduA5snupuXzYJ1+457nnh+E6Ig30aQpTlWqsi or5h5VFKqXiLZiLgO0lcG9TjgsdfEKCdOGnDH2pONKYjnFu4Y80dClVEpMIYend6tRDyOAFsw8a 02bidlX/82OZduXBba37uru+y1+THwGcEaxzOJp4KvgRSdVRtNMPrhQPlLtMBdFVhIJcpta+AO7 TMjDM6MT6DxfBkw== X-Google-Smtp-Source: AGHT+IFzCnIam2aGs6/xnaeev0IFvuhVDTyyNdkYQYC7PStxcHVun5J17WNR1i/4QyfZrWCxz7HK/Q== X-Received: by 2002:a5d:584d:0:b0:390:fe8b:f442 with SMTP id ffacd0b85a97d-39efbb0a2ebmr10312523f8f.54.1745265012859; Mon, 21 Apr 2025 12:50:12 -0700 (PDT) Received: from [192.168.0.15] (cpc92320-cmbg19-2-0-cust719.5-4.cable.virginm.net. [82.13.66.208]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39efa4931dcsm12969830f8f.63.2025.04.21.12.50.12 for <ffmpeg-devel@ffmpeg.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Apr 2025 12:50:12 -0700 (PDT) Message-ID: <286a169b-880d-41ab-8d64-73ac5ec2d5b6@jkqxz.net> Date: Mon, 21 Apr 2025 20:50:15 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20250421152445.2110045-1-sw@jkqxz.net> <20250421152445.2110045-6-sw@jkqxz.net> <cb73eb48-b7fb-4f9e-833d-8d5887b27253@gmail.com> From: Mark Thompson <sw@jkqxz.net> In-Reply-To: <cb73eb48-b7fb-4f9e-833d-8d5887b27253@gmail.com> Subject: Re: [FFmpeg-devel] [PATCH v2 5/6] lavc/apv: AVX2 transquant for x86-64 X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/286a169b-880d-41ab-8d64-73ac5ec2d5b6@jkqxz.net/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> T24gMjEvMDQvMjAyNSAxNzo1MywgSmFtZXMgQWxtZXIgd3JvdGU6Cj4gT24gNC8yMS8yMDI1IDEy OjI0IFBNLCBNYXJrIFRob21wc29uIHdyb3RlOgo+PiBUeXBpY2FsIGNoZWNrYXNtIHJlc3VsdCBv biBBbGRlciBMYWtlOgo+Pgo+PiBkZWNvZGVfdHJhbnNxdWFudF84X2M6wqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA0NjEuMSAo IDEuMDB4KQo+PiBkZWNvZGVfdHJhbnNxdWFudF84X2F2eDI6wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDk3LjUgKCA0LjczeCkKPj4g ZGVjb2RlX3RyYW5zcXVhbnRfMTBfYzrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA0ODMuOSAoIDEuMDB4KQo+PiBkZWNvZGVfdHJh bnNxdWFudF8xMF9hdngyOsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgOTEuNyAoIDUuMjh4KQo+PiAtLS0KPj4gwqAgbGliYXZjb2RlYy9h cHZfZHNwLmPCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgNCArCj4+IMKgIGxpYmF2Y29kZWMvYXB2 X2RzcC5owqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDIgKwo+PiDCoCBsaWJhdmNvZGVjL3g4Ni9N YWtlZmlsZcKgwqDCoMKgwqDCoCB8wqDCoCAyICsKPj4gwqAgbGliYXZjb2RlYy94ODYvYXB2X2Rz cC5hc23CoMKgwqAgfCAyNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiDC oCBsaWJhdmNvZGVjL3g4Ni9hcHZfZHNwX2luaXQuYyB8wqAgNDAgKysrKysKPj4gwqAgdGVzdHMv Y2hlY2thc20vTWFrZWZpbGXCoMKgwqDCoMKgwqAgfMKgwqAgMSArCj4+IMKgIHRlc3RzL2NoZWNr YXNtL2Fwdl9kc3AuY8KgwqDCoMKgwqAgfCAxMDkgKysrKysrKysrKysrKwo+PiDCoCB0ZXN0cy9j aGVja2FzbS9jaGVja2FzbS5jwqDCoMKgwqAgfMKgwqAgMyArCj4+IMKgIHRlc3RzL2NoZWNrYXNt L2NoZWNrYXNtLmjCoMKgwqDCoCB8wqDCoCAxICsKPj4gwqAgdGVzdHMvZmF0ZS9jaGVja2FzbS5t YWvCoMKgwqDCoMKgwqAgfMKgwqAgMSArCj4+IMKgIDEwIGZpbGVzIGNoYW5nZWQsIDQ0MiBpbnNl cnRpb25zKCspCj4+IMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL3g4Ni9hcHZfZHNw LmFzbQo+PiDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy94ODYvYXB2X2RzcF9pbml0 LmMKPj4gwqAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2NoZWNrYXNtL2Fwdl9kc3AuYwo+Pgo+ PiAuLi4KPj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMveDg2L2Fwdl9kc3AuYXNtIGIvbGliYXZj b2RlYy94ODYvYXB2X2RzcC5hc20KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAw MDAwMDAwMC4uNmIwNDVlOTg5YQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2xpYmF2Y29kZWMv eDg2L2Fwdl9kc3AuYXNtCj4+IEBAIC0wLDAgKzEsMjc5IEBACj4+ICs7KioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Cj4+ICs7KiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCj4+ICs7Kgo+PiArOyogRkZtcGVn IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+PiArOyog bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp Ywo+PiArOyogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyCj4+ICs7KiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPj4gKzsqCj4+ICs7KiBGRm1wZWcgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPj4gKzsqIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m Cj4+ICs7KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuwqAgU2VlIHRoZSBHTlUKPj4gKzsqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCj4+ICs7Kgo+PiArOyogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+PiArOyogTGljZW5zZSBhbG9u ZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+PiArOyog NTEsIEluYy4sIEZvdW5kYXRpb24gRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u LCBNQSAwMjExMC0xMzAxIFVTQQo+PiArOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArCj4+ICsl aW5jbHVkZSAibGliYXZ1dGlsL3g4Ni94ODZ1dGlsLmFzbSIKPj4gKwo+PiArU0VDVElPTl9ST0RB VEEgMzIKPj4gKwo+PiArOyBGdWxsIG1hdHJpeCBmb3Igcm93IHRyYW5zZm9ybS4KPj4gK2NvbnN0 IHRtYXRyaXhfcm93Cj4+ICvCoMKgwqAgZHfCoCA2NCzCoCA4OSzCoCA4NCzCoCA3NSzCoCA2NCzC oCA1MCzCoCAzNSzCoCAxOAo+PiArwqDCoMKgIGR3wqAgNjQsIC0xOCwgLTg0LMKgIDUwLMKgIDY0 LCAtNzUsIC0zNSzCoCA4OQo+PiArwqDCoMKgIGR3wqAgNjQswqAgNzUswqAgMzUsIC0xOCwgLTY0 LCAtODksIC04NCwgLTUwCj4+ICvCoMKgwqAgZHfCoCA2NCwgLTUwLCAtMzUswqAgODksIC02NCwg LTE4LMKgIDg0LCAtNzUKPj4gK8KgwqDCoCBkd8KgIDY0LMKgIDUwLCAtMzUsIC04OSwgLTY0LMKg IDE4LMKgIDg0LMKgIDc1Cj4+ICvCoMKgwqAgZHfCoCA2NCwgLTc1LMKgIDM1LMKgIDE4LCAtNjQs wqAgODksIC04NCzCoCA1MAo+PiArwqDCoMKgIGR3wqAgNjQswqAgMTgsIC04NCwgLTUwLMKgIDY0 LMKgIDc1LCAtMzUsIC04OQo+PiArwqDCoMKgIGR3wqAgNjQsIC04OSzCoCA4NCwgLTc1LMKgIDY0 LCAtNTAswqAgMzUsIC0xOAo+PiArCj4+ICs7IENvbnN0YW50IHBhaXJzIGZvciBicm9hZGNhc3Qg aW4gY29sdW1uIHRyYW5zZm9ybS4KPj4gK2NvbnN0IHRtYXRyaXhfY29sX2V2ZW4KPj4gK8KgwqDC oCBkd8KgIDY0LMKgIDY0LMKgIDY0LCAtNjQKPj4gK8KgwqDCoCBkd8KgIDg0LMKgIDM1LMKgIDM1 LCAtODQKPj4gK2NvbnN0IHRtYXRyaXhfY29sX29kZAo+PiArwqDCoMKgIGR3wqAgODkswqAgNzUs wqAgNTAswqAgMTgKPj4gK8KgwqDCoCBkd8KgIDc1LCAtMTgsIC04OSwgLTUwCj4+ICvCoMKgwqAg ZHfCoCA1MCwgLTg5LMKgIDE4LMKgIDc1Cj4+ICvCoMKgwqAgZHfCoCAxOCwgLTUwLMKgIDc1LCAt ODkKPj4gKwo+PiArOyBNZW1vcnkgdGFyZ2V0cyBmb3IgdnBicm9hZGNhc3RkIChyZWdpc3RlciB2 ZXJzaW9uIHJlcXVpcmVzIEFWWDUxMikuCj4+ICtjZXh0ZXJuIHBkXzEKPj4gK2NvbnN0IHNpeHR5 Zm91cgo+PiArwqDCoMKgIGRkwqAgNjQKPj4gKwo+PiArU0VDVElPTiAudGV4dAo+PiArCj4+ICs7 IHZvaWQgZmZfYXB2X2RlY29kZV90cmFuc3F1YW50X2F2eDIodm9pZCAqb3V0cHV0LAo+PiArO8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgcHRyZGlmZl90IHBpdGNoLAo+PiArO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgaW50 MTZfdCAqaW5wdXQsCj4+ICs7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25zdCBpbnQxNl90ICpxbWF0cml4LAo+ PiArO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgaW50IGJpdF9kZXB0aCwKPj4gKzvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBx cF9zaGlmdCk7Cj4+ICsKPj4gK0lOSVRfWU1NIGF2eDIKPj4gKwo+PiArY2dsb2JhbCBhcHZfZGVj b2RlX3RyYW5zcXVhbnQsIDYsIDcsIDE2LCBvdXRwdXQsIHBpdGNoLCBpbnB1dCwgcW1hdHJpeCwg Yml0X2RlcHRoLCBxcF9zaGlmdCwgdG1wCj4+ICsKPj4gK8KgwqDCoCA7IExvYWQgaW5wdXQgYW5k IGRlcXVhbnRpc2UKPj4gKwo+PiArwqDCoMKgIHZwYnJvYWRjYXN0ZMKgIG0xMCwgW3BkXzFdCj4+ ICvCoMKgwqAgbGVhwqDCoMKgwqDCoMKgIHRtcHEsIFtiaXRfZGVwdGhxIC0gMl0KPiAKPiBsZWHC oMKgwqDCoMKgwqAgdG1wZCwgW2JpdF9kZXB0aGQgLSAyXQo+IAo+IFRoZSB1cHBlciAzMiBiaXRz IG9mIHRoZSByZWdpc3RlciBtYXkgaGF2ZSBnYXJiYWdlLgoKQWgsIEkgd2FzIGFzc3VtaW5nIHRo YXQgbGVhIGhhZCB0byBiZSBwb2ludGVyLXNpemVkLCBidXQgYXBwYXJlbnRseSBpdCBkb2Vzbid0 LiAgQ2hhbmdlZC4KCj4+ICvCoMKgwqAgbW92ZMKgwqDCoMKgwqAgeG04LCBxcF9zaGlmdGQKPiAK PiBJZiB5b3UgZGVjbGFyZSB0aGUgZnVuY3Rpb24gYXMgNSwgNywgMTYsIHRoZW4gcXBfc2hpZnQg d2lsbCBub3QgYmUgbG9hZGVkIGludG8gYSBncHIgb24gQUJJcyB3aGVyZSBpdCdzIG9uIHN0YWNr IChXaW42NCwgYW5kIHg4Nl8zMiBpZiBpdCB3YXMgc3VwcG9ydGVkKSwgYW5kIHRoZW4geW91IGNh biBkbwo+IAo+IMKgwqDCoCBtb3ZkwqDCoMKgwqDCoCB4bTgsIHFwX3NoaWZ0bQo+IAo+IFdoaWNo IHdpbGwgbG9hZCBpdCBkaXJlY3RseSB0byB0aGUgc2ltZCByZWdpc3RlciBmcm9tIG1lbW9yeSwg c2F2aW5nIG9uZSBpbnN0cnVjdGlvbiBpbiB0aGUgcHJvbG9ndWUuCgpUaGlzIHNlZW1zIGxpa2Ug aGlnaGx5IGR1YmlvdXMgbWFnaWMgc2luY2UgaXQgaXMgbHlpbmcgYWJvdXQgdGhlIG51bWJlciBv ZiBhcmd1bWVudHMuCgpJJ3ZlIGNoYW5nZWQgaXQsIGJ1dCBJIHdhbnQgdG8gY2hlY2sgYSBXaW5k b3dzIG1hY2hpbmUgYXMgd2VsbC4KCj4+ICvCoMKgwqAgbW92ZMKgwqDCoMKgwqAgeG05LCB0bXBk Cj4+ICvCoMKgwqAgdnBzbGxkwqDCoMKgIG0xMCwgbTEwLCB4bTkKPj4gK8KgwqDCoCB2cHNybGTC oMKgwqAgbTEwLCBtMTAsIDEKPj4gKwo+PiArwqDCoMKgIDsgbTjCoCA9IHNjYWxhciBxcF9zaGlm dAo+PiArwqDCoMKgIDsgbTnCoCA9IHNjYWxhciBiZF9zaGlmdAo+PiArwqDCoMKgIDsgbTEwID0g dmVjdG9yIDEgPDwgKGJkX3NoaWZ0IC0gMSkKPj4gK8KgwqDCoCA7IG0xMSA9IHFtYXRyaXggbG9h ZAo+PiArCj4+ICslbWFjcm8gTE9BRF9BTkRfREVRVUFOVCAyIDsgKHhtbSBpbnB1dCwgY29uc3Rh bnQgb2Zmc2V0KQo+PiArwqDCoMKgIHZwbW92c3h3ZCBtJTEsIFtpbnB1dHHCoMKgICsgJTJdCj4+ ICvCoMKgwqAgdnBtb3ZzeHdkIG0xMSwgW3FtYXRyaXhxICsgJTJdCj4+ICvCoMKgwqAgdnBtYWRk d2TCoCBtJTEsIG0lMSwgbTExCj4+ICvCoMKgwqAgdnBzbGxkwqDCoMKgIG0lMSwgbSUxLCB4bTgK Pj4gK8KgwqDCoCB2cGFkZGTCoMKgwqAgbSUxLCBtJTEsIG0xMAo+PiArwqDCoMKgIHZwc3JhZMKg wqDCoCBtJTEsIG0lMSwgeG05Cj4+ICvCoMKgwqAgdnBhY2tzc2R3IG0lMSwgbSUxLCBtJTEKPj4g KyVlbmRtYWNybwo+PiArCj4+ICvCoMKgwqAgTE9BRF9BTkRfREVRVUFOVCAwLCAweDAwCj4+ICvC oMKgwqAgTE9BRF9BTkRfREVRVUFOVCAxLCAweDEwCj4+ICvCoMKgwqAgTE9BRF9BTkRfREVRVUFO VCAyLCAweDIwCj4+ICvCoMKgwqAgTE9BRF9BTkRfREVRVUFOVCAzLCAweDMwCj4+ICvCoMKgwqAg TE9BRF9BTkRfREVRVUFOVCA0LCAweDQwCj4+ICvCoMKgwqAgTE9BRF9BTkRfREVRVUFOVCA1LCAw eDUwCj4+ICvCoMKgwqAgTE9BRF9BTkRfREVRVUFOVCA2LCAweDYwCj4+ICvCoMKgwqAgTE9BRF9B TkRfREVRVUFOVCA3LCAweDcwCj4+ICsKPj4gK8KgwqDCoCA7IG1OID0gcm93IE4gd29yZHMgMCAx IDIgMyAwIDEgMiAzIDQgNSA2IDcgNCA1IDYgNwo+PiArCj4+ICvCoMKgwqAgOyBUcmFuc2Zvcm0g Y29sdW1ucwo+PiArwqDCoMKgIDsgVGhpcyBhcHBsaWVzIGEgMS1EIERDVCBidXR0ZXJmbHkKPj4g Kwo+PiArwqDCoMKgIHZwdW5wY2tsd2TCoCBtMTIsIG0wLMKgIG00Cj4+ICvCoMKgwqAgdnB1bnBj a2x3ZMKgIG0xMywgbTIswqAgbTYKPj4gK8KgwqDCoCB2cHVucGNrbHdkwqAgbTE0LCBtMSzCoCBt Mwo+PiArwqDCoMKgIHZwdW5wY2tsd2TCoCBtMTUsIG01LMKgIG03Cj4+ICsKPj4gK8KgwqDCoCA7 IG0xMiA9IHJvd3MgMCBhbmQgNCBpbnRlcmxlYXZlZAo+PiArwqDCoMKgIDsgbTEzID0gcm93cyAy IGFuZCA2IGludGVybGVhdmVkCj4+ICvCoMKgwqAgOyBtMTQgPSByb3dzIDEgYW5kIDMgaW50ZXJs ZWF2ZWQKPj4gK8KgwqDCoCA7IG0xNSA9IHJvd3MgNSBhbmQgNyBpbnRlcmxlYXZlZAo+PiArCj4+ ICvCoMKgwqAgdnBicm9hZGNhc3RkwqDCoCBtMCwgW3RtYXRyaXhfY29sX2V2ZW4gKyAweDAwXQo+ PiArwqDCoMKgIHZwYnJvYWRjYXN0ZMKgwqAgbTEsIFt0bWF0cml4X2NvbF9ldmVuICsgMHgwNF0K Pj4gK8KgwqDCoCB2cGJyb2FkY2FzdGTCoMKgIG0yLCBbdG1hdHJpeF9jb2xfZXZlbiArIDB4MDhd Cj4+ICvCoMKgwqAgdnBicm9hZGNhc3RkwqDCoCBtMywgW3RtYXRyaXhfY29sX2V2ZW4gKyAweDBj XQo+IAo+IE1heWJlIGRvCj4gCj4gbGVhIHRtcHEsIFt0bWF0cml4X2NvbF9ldmVuXQo+IHZwYnJv YWRjYXN0ZMKgwqAgbTAsIFt0bXBxICsgMHgwMF0KPiB2cGJyb2FkY2FzdGTCoMKgIG0xLCBbdG1w cSArIDB4MDRdCj4gLi4uCj4gCj4gVG8gZW1pdCBzbWFsbGVyIGluc3RydWN0aW9ucy4gU2FtZSBm b3IgdG1hdHJpeF9jb2xfb2RkIGFuZCB0bWF0cml4X3JvdyBiZWxvdy4KCiAxNTA6ICAgNDggOGQg MDUgMDAgMDAgMDAgMDAgICAgbGVhICAgIDB4MCglcmlwKSwlcmF4ICAgICAgICAjIDE1NyA8ZmZf YXB2X2RlY29kZV90cmFuc3F1YW50X2F2eDIrMHgxNTc+CiAxNTc6ICAgYzQgZTIgN2QgNTggMDAg ICAgICAgICAgdnBicm9hZGNhc3RkICglcmF4KSwleW1tMAogMTVjOiAgIGM0IGUyIDdkIDU4IDQ4 IDA0ICAgICAgIHZwYnJvYWRjYXN0ZCAweDQoJXJheCksJXltbTEKIDE2MjogICBjNCBlMiA3ZCA1 OCA1MCAwOCAgICAgICB2cGJyb2FkY2FzdGQgMHg4KCVyYXgpLCV5bW0yCiAxNjg6ICAgYzQgZTIg N2QgNTggNTggMGMgICAgICAgdnBicm9hZGNhc3RkIDB4YyglcmF4KSwleW1tMwoKIDE4ZTogICBj NCBlMiA3ZCA1OCAwNSAwMCAwMCAgICB2cGJyb2FkY2FzdGQgMHgwKCVyaXApLCV5bW0wICAgICAg ICAjIDE5NyA8ZmZfYXB2X2RlY29kZV90cmFuc3F1YW50X2F2eDIrMHgxOTc+CiAxOTU6ICAgMDAg MDAKIDE5NzogICBjNCBlMiA3ZCA1OCAwZCAwMCAwMCAgICB2cGJyb2FkY2FzdGQgMHgwKCVyaXAp LCV5bW0xICAgICAgICAjIDFhMCA8ZmZfYXB2X2RlY29kZV90cmFuc3F1YW50X2F2eDIrMHgxYTA+ CiAxOWU6ICAgMDAgMDAKIDFhMDogICBjNCBlMiA3ZCA1OCAxNSAwMCAwMCAgICB2cGJyb2FkY2Fz dGQgMHgwKCVyaXApLCV5bW0yICAgICAgICAjIDFhOSA8ZmZfYXB2X2RlY29kZV90cmFuc3F1YW50 X2F2eDIrMHgxYTk+CiAxYTc6ICAgMDAgMDAKIDFhOTogICBjNCBlMiA3ZCA1OCAxZCAwMCAwMCAg ICB2cGJyb2FkY2FzdGQgMHgwKCVyaXApLCV5bW0zICAgICAgICAjIDFiMiA8ZmZfYXB2X2RlY29k ZV90cmFuc3F1YW50X2F2eDIrMHgxYjI+CiAxYjA6ICAgMDAgMDAKClNhdmVzIDYgYnl0ZXMsIGJ1 dCB0aGVyZSBpcyBub3cgYSBkZXBlbmRlbmN5IHdoaWNoIHdhc24ndCB0aGVyZSBiZWZvcmUuICBJ cyBpdCByZWFsbHkgYmV0dGVyPwoKPj4gKwo+PiArwqDCoMKgIHZwbWFkZHdkwqAgbTQswqAgbTEy LCBtMAo+PiArwqDCoMKgIHZwbWFkZHdkwqAgbTUswqAgbTEyLCBtMQo+PiArwqDCoMKgIHZwbWFk ZHdkwqAgbTYswqAgbTEzLCBtMgo+PiArwqDCoMKgIHZwbWFkZHdkwqAgbTcswqAgbTEzLCBtMwo+ PiArwqDCoMKgIHZwYWRkZMKgwqDCoCBtOCzCoCBtNCzCoCBtNgo+PiArwqDCoMKgIHZwYWRkZMKg wqDCoCBtOSzCoCBtNSzCoCBtNwo+PiArwqDCoMKgIHZwc3ViZMKgwqDCoCBtMTAsIG01LMKgIG03 Cj4+ICvCoMKgwqAgdnBzdWJkwqDCoMKgIG0xMSwgbTQswqAgbTYKPj4gKwo+PiArwqDCoMKgIHZw YnJvYWRjYXN0ZMKgwqAgbTAsIFt0bWF0cml4X2NvbF9vZGQgKyAweDAwXQo+PiArwqDCoMKgIHZw YnJvYWRjYXN0ZMKgwqAgbTEsIFt0bWF0cml4X2NvbF9vZGQgKyAweDA0XQo+PiArwqDCoMKgIHZw YnJvYWRjYXN0ZMKgwqAgbTIsIFt0bWF0cml4X2NvbF9vZGQgKyAweDA4XQo+PiArwqDCoMKgIHZw YnJvYWRjYXN0ZMKgwqAgbTMsIFt0bWF0cml4X2NvbF9vZGQgKyAweDBjXQo+PiArCj4+ICvCoMKg wqAgdnBtYWRkd2TCoCBtNCzCoCBtMTQsIG0wCj4+ICvCoMKgwqAgdnBtYWRkd2TCoCBtNSzCoCBt MTUsIG0xCj4+ICvCoMKgwqAgdnBtYWRkd2TCoCBtNizCoCBtMTQsIG0yCj4+ICvCoMKgwqAgdnBt YWRkd2TCoCBtNyzCoCBtMTUsIG0zCj4+ICvCoMKgwqAgdnBhZGRkwqDCoMKgIG0xMiwgbTQswqAg bTUKPj4gK8KgwqDCoCB2cGFkZGTCoMKgwqAgbTEzLCBtNizCoCBtNwo+PiArCj4+ICvCoMKgwqAg dnBicm9hZGNhc3RkwqDCoCBtMCwgW3RtYXRyaXhfY29sX29kZCArIDB4MTBdCj4+ICvCoMKgwqAg dnBicm9hZGNhc3RkwqDCoCBtMSwgW3RtYXRyaXhfY29sX29kZCArIDB4MTRdCj4+ICvCoMKgwqAg dnBicm9hZGNhc3RkwqDCoCBtMiwgW3RtYXRyaXhfY29sX29kZCArIDB4MThdCj4+ICvCoMKgwqAg dnBicm9hZGNhc3RkwqDCoCBtMywgW3RtYXRyaXhfY29sX29kZCArIDB4MWNdCj4+ICsKPj4gK8Kg wqDCoCB2cG1hZGR3ZMKgIG00LMKgIG0xNCwgbTAKPj4gK8KgwqDCoCB2cG1hZGR3ZMKgIG01LMKg IG0xNSwgbTEKPj4gK8KgwqDCoCB2cG1hZGR3ZMKgIG02LMKgIG0xNCwgbTIKPj4gK8KgwqDCoCB2 cG1hZGR3ZMKgIG03LMKgIG0xNSwgbTMKPj4gK8KgwqDCoCB2cGFkZGTCoMKgwqAgbTE0LCBtNCzC oCBtNQo+PiArwqDCoMKgIHZwYWRkZMKgwqDCoCBtMTUsIG02LMKgIG03Cj4+ICsKPj4gK8KgwqDC oCB2cGFkZGTCoMKgwqAgbTAswqAgbTgswqAgbTEyCj4+ICvCoMKgwqAgdnBhZGRkwqDCoMKgIG0x LMKgIG05LMKgIG0xMwo+PiArwqDCoMKgIHZwYWRkZMKgwqDCoCBtMizCoCBtMTAsIG0xNAo+PiAr wqDCoMKgIHZwYWRkZMKgwqDCoCBtMyzCoCBtMTEsIG0xNQo+PiArwqDCoMKgIHZwc3ViZMKgwqDC oCBtNCzCoCBtMTEsIG0xNQo+PiArwqDCoMKgIHZwc3ViZMKgwqDCoCBtNSzCoCBtMTAsIG0xNAo+ PiArwqDCoMKgIHZwc3ViZMKgwqDCoCBtNizCoCBtOSzCoCBtMTMKPj4gK8KgwqDCoCB2cHN1YmTC oMKgwqAgbTcswqAgbTgswqAgbTEyCj4+ICsKPj4gK8KgwqDCoCA7IE1pZC10cmFuc2Zvcm0gbm9y bWFsaXNhdGlvbgo+PiArwqDCoMKgIDsgTm90ZSB0aGF0IG91dHB1dHMgaGVyZSBhcmUgZml0dGVk IHRvIDE2IGJpdHMKPj4gKwo+PiArwqDCoMKgIHZwYnJvYWRjYXN0ZMKgIG04LCBbc2l4dHlmb3Vy XQo+PiArCj4+ICslbWFjcm8gTk9STUFMSVNFIDEKPj4gK8KgwqDCoCB2cGFkZGTCoMKgwqAgbSUx LCBtJTEsIG04Cj4+ICvCoMKgwqAgdnBzcmFkwqDCoMKgIG0lMSwgbSUxLCA3Cj4+ICvCoMKgwqAg dnBhY2tzc2R3IG0lMSwgbSUxLCBtJTEKPj4gK8KgwqDCoCB2cGVybXHCoMKgwqAgbSUxLCBtJTEs IHEzMTIwCj4+ICslZW5kbWFjcm8KPj4gKwo+PiArwqDCoMKgIE5PUk1BTElTRSAwCj4+ICvCoMKg wqAgTk9STUFMSVNFIDEKPj4gK8KgwqDCoCBOT1JNQUxJU0UgMgo+PiArwqDCoMKgIE5PUk1BTElT RSAzCj4+ICvCoMKgwqAgTk9STUFMSVNFIDQKPj4gK8KgwqDCoCBOT1JNQUxJU0UgNQo+PiArwqDC oMKgIE5PUk1BTElTRSA2Cj4+ICvCoMKgwqAgTk9STUFMSVNFIDcKPj4gKwo+PiArwqDCoMKgIDsg bU4gPSByb3cgTiB3b3JkcyAwIDEgMiAzIDQgNSA2IDcgMCAxIDIgMyA0IDUgNiA3Cj4+ICsKPj4g K8KgwqDCoCA7IFRyYW5zZm9ybSByb3dzCj4+ICvCoMKgwqAgOyBUaGlzIG11bHRpcGxpZXMgdGhl IHJvd3MgZGlyZWN0bHkgYnkgdGhlIHRyYW5zZm9ybSBtYXRyaXgsCj4+ICvCoMKgwqAgOyBhdm9p ZGluZyB0aGUgbmVlZCB0byB0cmFuc3Bvc2UgYW55dGhpbmcKPj4gKwo+PiArwqDCoMKgIG1vdmHC oMKgwqDCoMKgIG0xMiwgW3RtYXRyaXhfcm93ICsgMHgwMF0KPj4gK8KgwqDCoCBtb3ZhwqDCoMKg wqDCoCBtMTMsIFt0bWF0cml4X3JvdyArIDB4MjBdCj4+ICvCoMKgwqAgbW92YcKgwqDCoMKgwqAg bTE0LCBbdG1hdHJpeF9yb3cgKyAweDQwXQo+PiArwqDCoMKgIG1vdmHCoMKgwqDCoMKgIG0xNSwg W3RtYXRyaXhfcm93ICsgMHg2MF0KPj4gKwo+PiArJW1hY3JvIFRSQU5TX1JPV19TVEVQIDEKPj4g K8KgwqDCoCB2cG1hZGR3ZMKgIG04LMKgIG0lMSwgbTEyCj4+ICvCoMKgwqAgdnBtYWRkd2TCoCBt OSzCoCBtJTEsIG0xMwo+PiArwqDCoMKgIHZwbWFkZHdkwqAgbTEwLCBtJTEsIG0xNAo+PiArwqDC oMKgIHZwbWFkZHdkwqAgbTExLCBtJTEsIG0xNQo+PiArwqDCoMKgIHZwaGFkZGTCoMKgIG04LMKg IG04LMKgIG05Cj4+ICvCoMKgwqAgdnBoYWRkZMKgwqAgbTEwLCBtMTAsIG0xMQo+PiArwqDCoMKg IHZwaGFkZGTCoMKgIG0lMSwgbTgswqAgbTEwCj4+ICslZW5kbWFjcm8KPj4gKwo+PiArwqDCoMKg IFRSQU5TX1JPV19TVEVQIDAKPj4gK8KgwqDCoCBUUkFOU19ST1dfU1RFUCAxCj4+ICvCoMKgwqAg VFJBTlNfUk9XX1NURVAgMgo+PiArwqDCoMKgIFRSQU5TX1JPV19TVEVQIDMKPj4gK8KgwqDCoCBU UkFOU19ST1dfU1RFUCA0Cj4+ICvCoMKgwqAgVFJBTlNfUk9XX1NURVAgNQo+PiArwqDCoMKgIFRS QU5TX1JPV19TVEVQIDYKPj4gK8KgwqDCoCBUUkFOU19ST1dfU1RFUCA3Cj4+ICsKPj4gK8KgwqDC oCA7IFJlbm9ybWFsaXNlLCBjbGlwIGFuZCBzdG9yZSBvdXRwdXQKPj4gKwo+PiArwqDCoMKgIHZw YnJvYWRjYXN0ZMKgIG0xNCwgW3BkXzFdCj4+ICvCoMKgwqAgbW92wqDCoMKgwqDCoMKgIHRtcGQs IDIwCj4+ICvCoMKgwqAgc3ViwqDCoMKgwqDCoMKgIHRtcGQsIGJpdF9kZXB0aGQKPj4gK8KgwqDC oCBtb3ZkwqDCoMKgwqDCoCB4bTksIHRtcGQKPj4gK8KgwqDCoCBkZWPCoMKgwqDCoMKgwqAgdG1w ZAo+PiArwqDCoMKgIG1vdmTCoMKgwqDCoMKgIHhtMTMsIHRtcGQKPj4gK8KgwqDCoCBtb3ZkwqDC oMKgwqDCoCB4bTE1LCBiaXRfZGVwdGhkCj4+ICvCoMKgwqAgdnBzbGxkwqDCoMKgIG04LMKgIG0x NCwgeG0xMwo+PiArwqDCoMKgIHZwc2xsZMKgwqDCoCBtMTIsIG0xNCwgeG0xNQo+PiArwqDCoMKg IHZwc3JsZMKgwqDCoCBtMTAsIG0xMiwgMQo+PiArwqDCoMKgIHZwc3ViZMKgwqDCoCBtMTIsIG0x MiwgbTE0Cj4+ICvCoMKgwqAgdnB4b3LCoMKgwqDCoCBtMTEsIG0xMSwgbTExCj4+ICsKPj4gK8Kg wqDCoCA7IG04wqAgPSB2ZWN0b3IgMSA8PCAoYmRfc2hpZnQgLSAxKQo+PiArwqDCoMKgIDsgbTnC oCA9IHNjYWxhciBiZF9zaGlmdAo+PiArwqDCoMKgIDsgbTEwID0gdmVjdG9yIDEgPDwgKGJpdF9k ZXB0aCAtIDEpCj4+ICvCoMKgwqAgOyBtMTEgPSB6ZXJvCj4+ICvCoMKgwqAgOyBtMTIgPSB2ZWN0 b3IgKDEgPDwgYml0X2RlcHRoKSAtIDEKPj4gKwo+PiArwqDCoMKgIGNtcMKgwqDCoMKgwqDCoCBi aXRfZGVwdGhkLCA4Cj4+ICvCoMKgwqAgam5lwqDCoMKgwqDCoMKgIHN0b3JlXzEwCj4+ICsKPj4g KyVtYWNybyBOT1JNQUxJU0VfQU5EX1NUT1JFXzggMQo+PiArwqDCoMKgIHZwYWRkZMKgwqDCoCBt JTEsIG0lMSwgbTgKPj4gK8KgwqDCoCB2cHNyYWTCoMKgwqAgbSUxLCBtJTEsIHhtOQo+PiArwqDC oMKgIHZwYWRkZMKgwqDCoCBtJTEsIG0lMSwgbTEwCj4+ICvCoMKgwqAgdmV4dHJhY3RpMTI4wqAg eG0xMywgbSUxLCAwCj4+ICvCoMKgwqAgdmV4dHJhY3RpMTI4wqAgeG0xNCwgbSUxLCAxCj4+ICvC oMKgwqAgdnBhY2t1c2R3IHhtJTEsIHhtMTMsIHhtMTQKPj4gK8KgwqDCoCB2cGFja3Vzd2IgeG0l MSwgeG0lMSwgeG0lMQo+IAo+IMKgwqDCoCB2cGFkZGTCoMKgwqAgbSUxLCBtJTEsIG0xMAo+IMKg wqDCoCB2ZXh0cmFjdGkxMjjCoCB4bTE0LCBtJTEsIDEKPiDCoMKgwqAgdnBhY2t1c2R3IHhtJTEs IHhtJTEsIHhtMTQKPiDCoMKgwqAgdnBhY2t1c3diIHhtJTEsIHhtJTEsIHhtJTEKPiAKPiB2ZXh0 cmFjdGkxMjggd2l0aCAwIGFzIHRoaXJkIGFyZ3VtZW50IGlzIHRoZSBzYW1lIGFzIGEgbW92YSBm b3IgdGhlIGxvd2VyIDEyOCBiaXRzLCBzbyBpdCdzIG5vdCBuZWVkZWQuCgpUaGlua2luZyBhYm91 dCB0aGlzIGEgYml0IG1vcmUgbWFrZXMgbWUgd2FudCB0byBjb21iaW5lIHJvd3MgdG8gbm90IHdh c3RlIGVsZW1lbnRzLiAgSXQncyBub3Qgb2J2aW91cyB0aGF0IHRoaXMgaXMgYmV0dGVyLCBidXQg aG93IGFib3V0OgoKJW1hY3JvIE5PUk1BTElTRV9BTkRfU1RPUkVfOCA0CiAgICB2cGFkZGQgICAg bSUxLCBtJTEsIG04CiAgICB2cGFkZGQgICAgbSUyLCBtJTIsIG04CiAgICB2cGFkZGQgICAgbSUz LCBtJTMsIG04CiAgICB2cGFkZGQgICAgbSU0LCBtJTQsIG04CiAgICB2cHNyYWQgICAgbSUxLCBt JTEsIHhtOQogICAgdnBzcmFkICAgIG0lMiwgbSUyLCB4bTkKICAgIHZwc3JhZCAgICBtJTMsIG0l MywgeG05CiAgICB2cHNyYWQgICAgbSU0LCBtJTQsIHhtOQogICAgdnBhZGRkICAgIG0lMSwgbSUx LCBtMTAKICAgIHZwYWRkZCAgICBtJTIsIG0lMiwgbTEwCiAgICB2cGFkZGQgICAgbSUzLCBtJTMs IG0xMAogICAgdnBhZGRkICAgIG0lNCwgbSU0LCBtMTAKICAgIDsgbSUxID0gMzJ4NCAgIEEwLTMg QTQtNwogICAgOyBtJTIgPSAzMng0ICAgQjAtMyBCNC03CiAgICA7IG0lMyA9IDMyeDggICBDMC0z IEM0LTcKICAgIDsgbSU0ID0gMzJ4OCAgIEQwLTMgRDQtNwogICAgdnBhY2t1c2R3IG0lMSwgbSUx LCBtJTIKICAgIHZwYWNrdXNkdyBtJTMsIG0lMywgbSU0CiAgICA7IG0lMSA9IDE2eDE2ICBBMC0z IEIwLTMgQTQtNyBCNC03CiAgICA7IG0lMiA9IDE2eDE2ICBDMC0zIEQwLTMgQzQtNyBENC03CiAg ICB2cGVybXEgICAgbSUxLCBtJTEsIHEzMTIwCiAgICB2cGVybXEgICAgbSUyLCBtJTMsIHEzMTIw CiAgICA7IG0lMSA9IDE2eDE2ICBBMC0zIEE0LTcgQjAtMyBCNC03CiAgICA7IG0lMiA9IDE2eDE2 ICBDMC0zIEM0LTcgRDAtMyBENC03CiAgICB2cGFja3Vzd2IgbSUxLCBtJTEsIG0lMgogICAgOyBt JTEgPSAzMng4ICAgQTAtMyBBNC03IEMwLTMgQzQtNyBCMC0zIEI0LTcgRDAtMyBENC03CiAgICB2 ZXh0cmFjdGkxMjggIHhtJTIsIG0lMSwgMQogICAgdnBzcmxkcSAgIHhtJTMsIHhtJTEsIDgKICAg IHZwc3JsZHEgICB4bSU0LCB4bSUyLCA4CiAgICB2bW92cSAgICAgW291dHB1dHFdLCAgICAgICAg ICB4bSUxCiAgICB2bW92cSAgICAgW291dHB1dHEgKyBwaXRjaHFdLCB4bSUyCiAgICBsZWEgICAg ICAgb3V0cHV0cSwgW291dHB1dHEgKyAyKnBpdGNocV0KICAgIHZtb3ZxICAgICBbb3V0cHV0cV0s ICAgICAgICAgIHhtJTMKICAgIHZtb3ZxICAgICBbb3V0cHV0cSArIHBpdGNocV0sIHhtJTQKICAg IGxlYSAgICAgICBvdXRwdXRxLCBbb3V0cHV0cSArIDIqcGl0Y2hxXQolZW5kbWFjcm8KCiAgICBO T1JNQUxJU0VfQU5EX1NUT1JFXzggMCwgMSwgMiwgMwogICAgTk9STUFMSVNFX0FORF9TVE9SRV84 IDQsIDUsIDYsIDcKCj4+ICvCoMKgwqAgbW92ccKgwqDCoMKgwqAgW291dHB1dHFdLCB4bSUxCj4+ ICvCoMKgwqAgYWRkwqDCoMKgwqDCoMKgIG91dHB1dHEsIHBpdGNocQo+PiArJWVuZG1hY3JvCj4+ ICsKPj4gK8KgwqDCoCBOT1JNQUxJU0VfQU5EX1NUT1JFXzggMAo+PiArwqDCoMKgIE5PUk1BTElT RV9BTkRfU1RPUkVfOCAxCj4+ICvCoMKgwqAgTk9STUFMSVNFX0FORF9TVE9SRV84IDIKPj4gK8Kg wqDCoCBOT1JNQUxJU0VfQU5EX1NUT1JFXzggMwo+PiArwqDCoMKgIE5PUk1BTElTRV9BTkRfU1RP UkVfOCA0Cj4+ICvCoMKgwqAgTk9STUFMSVNFX0FORF9TVE9SRV84IDUKPj4gK8KgwqDCoCBOT1JN QUxJU0VfQU5EX1NUT1JFXzggNgo+PiArwqDCoMKgIE5PUk1BTElTRV9BTkRfU1RPUkVfOCA3Cj4+ ICsKPj4gK8KgwqDCoCBSRVQKPj4gKwo+PiArc3RvcmVfMTA6Cj4+ICsKPj4gKyVtYWNybyBOT1JN QUxJU0VfQU5EX1NUT1JFXzEwIDEKPj4gK8KgwqDCoCB2cGFkZGTCoMKgwqAgbSUxLCBtJTEsIG04 Cj4+ICvCoMKgwqAgdnBzcmFkwqDCoMKgIG0lMSwgbSUxLCB4bTkKPj4gK8KgwqDCoCB2cGFkZGTC oMKgwqAgbSUxLCBtJTEsIG0xMAo+PiArwqDCoMKgIHZwbWF4c2TCoMKgIG0lMSwgbSUxLCBtMTEK Pj4gK8KgwqDCoCB2cG1pbnNkwqDCoCBtJTEsIG0lMSwgbTEyCj4+ICvCoMKgwqAgdmV4dHJhY3Rp MTI4wqAgeG0xMywgbSUxLCAwCj4+ICvCoMKgwqAgdmV4dHJhY3RpMTI4wqAgeG0xNCwgbSUxLCAx Cj4+ICvCoMKgwqAgdnBhY2t1c2R3IHhtJTEsIHhtMTMsIHhtMTQKPiAKPiBTYW1lLgoKQSBzaW1p bGFyIG1ldGhvZCBmb3IgcGFpcnMgYXBwbGllcyBoZXJlIGFzIHdlbGwuCgo+PiArwqDCoMKgIG1v dmHCoMKgwqDCoMKgIFtvdXRwdXRxXSwgeG0lMQo+PiArwqDCoMKgIGFkZMKgwqDCoMKgwqDCoCBv dXRwdXRxLCBwaXRjaHEKPj4gKyVlbmRtYWNybwo+PiArCj4+ICvCoMKgwqAgTk9STUFMSVNFX0FO RF9TVE9SRV8xMCAwCj4+ICvCoMKgwqAgTk9STUFMSVNFX0FORF9TVE9SRV8xMCAxCj4+ICvCoMKg wqAgTk9STUFMSVNFX0FORF9TVE9SRV8xMCAyCj4+ICvCoMKgwqAgTk9STUFMSVNFX0FORF9TVE9S RV8xMCAzCj4+ICvCoMKgwqAgTk9STUFMSVNFX0FORF9TVE9SRV8xMCA0Cj4+ICvCoMKgwqAgTk9S TUFMSVNFX0FORF9TVE9SRV8xMCA1Cj4+ICvCoMKgwqAgTk9STUFMSVNFX0FORF9TVE9SRV8xMCA2 Cj4+ICvCoMKgwqAgTk9STUFMSVNFX0FORF9TVE9SRV8xMCA3Cj4+ICsKPj4gK8KgwqDCoCBSRVQK Pj4gLi4uCgpUaGFua3MsCgotIE1hcmsKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZm bXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVs CgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVs LXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K