Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1roN5V-0018iF-WD for pgsql-hackers@arkaria.postgresql.org; Sun, 24 Mar 2024 12:36:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1roN5T-00CdtT-Ew for pgsql-hackers@arkaria.postgresql.org; Sun, 24 Mar 2024 12:36:31 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1roN5T-00CdtL-27 for pgsql-hackers@lists.postgresql.org; Sun, 24 Mar 2024 12:36:31 +0000 Received: from mail-ej1-x633.google.com ([2a00:1450:4864:20::633]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1roN5L-006ECr-8U for pgsql-hackers@postgresql.org; Sun, 24 Mar 2024 12:36:30 +0000 Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-a46a7208eedso484888966b.0 for ; Sun, 24 Mar 2024 05:36:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; t=1711283781; x=1711888581; darn=postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=ZD3NK80J4u40wcAgsi3biIVQSOlVe9/+LHfiyWqnmZA=; b=dLvAIP2k3LF16c6D6ZbeuUPxOqpQp9c47nLRdZMZ9LN0q+ZpFecoAB8z2mUg+Dn+zP 4LjmHU8nqBrV/gq8JgtObOgXYmzT/GHCFhbVcGhVgP6pVfyqInKxhHFcr6FwACRjMZzy fKYjnDgn5QrQVgfYRK3cqPGFA0bZcxPGcBSz9cCj34CBpmkCZm6NBLlakhgjELv+9RDg 3CGneBSF+vtNhO0/JVjvfnrv+PsOT3I5609uI9n6+LYguNmdZ3ZylgVAs0B3a25UcScr GO8Z1UQr4wIOiKK1Wc5lqfmQn4151tBhiZ1aunksrbWh1Ovf33Up8ttrCAtAmaOQXS3+ +NZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711283781; x=1711888581; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=ZD3NK80J4u40wcAgsi3biIVQSOlVe9/+LHfiyWqnmZA=; b=BD5pyF7IU8Imd5sOeaDYFCKCZr3hfI3rl9B0XVgcFESIzE/XbqK3ONrOim1jfJ4lt6 pw/3t/QbNw6ohaePwSkZ+Zmte8bHRqQW6VcuE8nlPCFz6QW8MyrkSGFIsZg3OBXus4au gH3aB0aQJrP0UGnxQGRxWXaxesHAg+0sXUP1Daf5IHuY7mkgCu0Zh60wYTjNkIHF/rq/ qNUqG0Ji5DBg161ZWOiXO4HWRJQVxpvClApQ7VnTh/CXuUzRxAmjI5hZwOQ8V+qIwD2Z q8jzmrcZBkgRrBLRT2m+hG4ULUR+Ua7PmZtlUlcZ9P5MQo+o8H+1lQgQ1sMxpo+1UjXv NdWw== X-Forwarded-Encrypted: i=1; AJvYcCXrzBsxuakBwF2Fmhec5pLt90LpmgKuvx7E165WDGrsCARwz2EiWydUDSvP7GTNCuw4MkUmGfKEDh2Q4gpL5vncxoG7xRJVbkbvNoQF X-Gm-Message-State: AOJu0YzNkVml8S9j4dA/NOSDmnUWCDvwQwoBtd1a1mNkYUNFAQpH1sem tDtWJMEcbDwIwFn4tv089pLEYdxSK4Md6/fIjgzLrQZQYy3l/ZT21Bf4gm8iDg== X-Google-Smtp-Source: AGHT+IFVA3BlRcmmNWJgyKQzjXv+YEJqgVvaaNZ5HYU/TxB1fPxH4DnwYOU78D3zVyfW4pv0IG1zJQ== X-Received: by 2002:a17:907:97c7:b0:a47:49f0:78de with SMTP id js7-20020a17090797c700b00a4749f078demr2378405ejc.73.1711283780821; Sun, 24 Mar 2024 05:36:20 -0700 (PDT) Received: from [10.137.0.18] (ip-86-49-229-30.bb.vodafone.cz. [86.49.229.30]) by smtp.gmail.com with ESMTPSA id u6-20020a1709063b8600b00a48f5845a7esm268387ejf.150.2024.03.24.05.36.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 24 Mar 2024 05:36:20 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------Aul0KPuADtLmavVHelN095Fi" Message-ID: Date: Sun, 24 Mar 2024 13:36:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: BitmapHeapScan streaming read user and prelim refactoring To: Melanie Plageman , Heikki Linnakangas Cc: Andres Freund , Pg Hackers , Thomas Munro , Nazir Bilal Yavuz References: <20240214194228.jf4o7luxtyra5ggv@awork3.anarazel.de> <7c2017c3-f12e-4c43-adad-c5ae0f93cd5d@iki.fi> <20240318151947.uu2il7iegi2gkmol@liskov> <5a172d1e-d69c-409a-b1fa-6521214c81c2@iki.fi> <20240323002211.on5vb5ulk6lsdb2u@liskov> <20240323002607.abegehmmjyxrnmm2@liskov> Content-Language: en-US From: Tomas Vondra In-Reply-To: <20240323002607.abegehmmjyxrnmm2@liskov> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Aul0KPuADtLmavVHelN095Fi Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 3/23/24 01:26, Melanie Plageman wrote: > On Fri, Mar 22, 2024 at 08:22:11PM -0400, Melanie Plageman wrote: >> On Tue, Mar 19, 2024 at 02:33:35PM +0200, Heikki Linnakangas wrote: >>> On 18/03/2024 17:19, Melanie Plageman wrote: >>>> I've attached v7 rebased over this commit. >>> >>> If we delayed table_beginscan_bm() call further, after starting the TBM >>> iterator, we could skip it altogether when the iterator is empty. >>> >>> That's a further improvement, doesn't need to be part of this patch set. >>> Just caught my eye while reading this. >> >> Hmm. You mean like until after the first call to tbm_[shared]_iterate()? >> AFAICT, tbm_begin_iterate() doesn't tell us anything about whether or >> not the iterator is "empty". Do you mean cases when the bitmap has no >> blocks in it? It seems like we should be able to tell that from the >> TIDBitmap. >> >>> >>>> v7-0003-Push-BitmapHeapScan-skip-fetch-optimization-into-.patch >>> >>> I suggest to avoid the double negative with SO_CAN_SKIP_FETCH, and call the >>> flag e.g. SO_NEED_TUPLE. >> >> Agreed. Done in attached v8. Though I wondered if it was a bit weird >> that the flag is set in the common case and not set in the uncommon >> case... > > v8 actually attached this time I tried to run the benchmarks with v8, but unfortunately it crashes for me very quickly (I've only seen 0015 to crash, so I guess the bug is in that patch). The backtrace attached, this doesn't seem right: (gdb) p hscan->rs_cindex $1 = 543516018 regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --------------Aul0KPuADtLmavVHelN095Fi Content-Type: text/plain; charset=UTF-8; name="crash.txt" Content-Disposition: attachment; filename="crash.txt" Content-Transfer-Encoding: base64 Q29yZSB3YXMgZ2VuZXJhdGVkIGJ5IGBwb3N0Z3JlczogcG9zdGdyZXMgdGVzdC0xMDAwMDAw IFtsb2NhbF0gU0VMRUNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLgpQcm9ncmFt IHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgU0lHU0VHViwgU2VnbWVudGF0aW9uIGZhdWx0Lgoj MCAgMHgwMDAwNTU2Zjk5Y2E3Y2QwIGluIGhlYXBhbV9zY2FuX2JpdG1hcF9uZXh0X3R1cGxl IChzY2FuPTB4NTU2ZjliOWU2OTYwLCBzbG90PTB4NTU2ZjliOWVmNDQwLCByZWNoZWNrPTB4 NTU2ZjliOWVlYzEwLCBsb3NzeV9wYWdlcz0weDU1NmY5YjllZWJmOCwgZXhhY3RfcGFnZXM9 MHg1NTZmOWI5ZWViZjApCiAgICBhdCBoZWFwYW1faGFuZGxlci5jOjI1NzYKCndhcm5pbmc6 IFNvdXJjZSBmaWxlIGlzIG1vcmUgcmVjZW50IHRoYW4gZXhlY3V0YWJsZS4KMjU3NiAgICAg ICAgICAgIHRhcmdvZmZzZXQgPSBoc2Nhbi0+cnNfdmlzdHVwbGVzW2hzY2FuLT5yc19jaW5k ZXhdOwooZ2RiKSBidAojMCAgMHgwMDAwNTU2Zjk5Y2E3Y2QwIGluIGhlYXBhbV9zY2FuX2Jp dG1hcF9uZXh0X3R1cGxlIChzY2FuPTB4NTU2ZjliOWU2OTYwLCBzbG90PTB4NTU2ZjliOWVm NDQwLCByZWNoZWNrPTB4NTU2ZjliOWVlYzEwLCBsb3NzeV9wYWdlcz0weDU1NmY5YjllZWJm OCwgZXhhY3RfcGFnZXM9MHg1NTZmOWI5ZWViZjApCiAgICBhdCBoZWFwYW1faGFuZGxlci5j OjI1NzYKIzEgIDB4MDAwMDU1NmY5OWUxN2FkYiBpbiB0YWJsZV9zY2FuX2JpdG1hcF9uZXh0 X3R1cGxlIChleGFjdF9wYWdlcz0weDU1NmY5YjllZWJmMCwgbG9zc3lfcGFnZXM9MHg1NTZm OWI5ZWViZjgsIHJlY2hlY2s9MHg1NTZmOWI5ZWVjMTAsIHNsb3Q9MHg1NTZmOWI5ZWY0NDAs IHNjYW49MHg1NTZmOWI5ZTY5NjApCiAgICBhdCAuLi8uLi8uLi9zcmMvaW5jbHVkZS9hY2Nl c3MvdGFibGVhbS5oOjIwMDMKIzIgIEJpdG1hcEhlYXBOZXh0IChub2RlPTB4NTU2ZjliOWVl YjAwKSBhdCBub2RlQml0bWFwSGVhcHNjYW4uYzoyMjcKIzMgIDB4MDAwMDU1NmY5OWUxYTMz MSBpbiBFeGVjUHJvY05vZGUgKG5vZGU9MHg1NTZmOWI5ZWViMDApIGF0IC4uLy4uLy4uL3Ny Yy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmg6Mjc0CiM0ICBnYXRoZXJfZ2V0bmV4dCAo Z2F0aGVyc3RhdGU9MHg1NTZmOWI5ZWU5NzApIGF0IG5vZGVHYXRoZXIuYzoyODcKIzUgIEV4 ZWNHYXRoZXIgKHBzdGF0ZT0weDU1NmY5YjllZTk3MCkgYXQgbm9kZUdhdGhlci5jOjIyMgoj NiAgMHgwMDAwNTU2Zjk5ZTI0YWMzIGluIEV4ZWNQcm9jTm9kZSAobm9kZT0weDU1NmY5Yjll ZTk3MCkgYXQgLi4vLi4vLi4vc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaDoyNzQK IzcgIEV4ZWNMaW1pdCAocHN0YXRlPTB4NTU2ZjliOWVlNjk4KSBhdCBub2RlTGltaXQuYzo5 NQojOCAgMHgwMDAwNTU2Zjk5ZTAxNzRhIGluIEV4ZWNQcm9jTm9kZSAobm9kZT0weDU1NmY5 YjllZTY5OCkgYXQgLi4vLi4vLi4vc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaDoy NzQKIzkgIEV4ZWN1dGVQbGFuIChleGVjdXRlX29uY2U9PG9wdGltaXplZCBvdXQ+LCBkZXN0 PTB4NTU2ZjliOWYyMzYwLCBkaXJlY3Rpb249PG9wdGltaXplZCBvdXQ+LCBudW1iZXJUdXBs ZXM9MCwgc2VuZFR1cGxlcz10cnVlLCBvcGVyYXRpb249Q01EX1NFTEVDVCwgdXNlX3BhcmFs bGVsX21vZGU9PG9wdGltaXplZCBvdXQ+LCAKICAgIHBsYW5zdGF0ZT0weDU1NmY5YjllZTY5 OCwgZXN0YXRlPTB4NTU2ZjliOWVlNDU4KSBhdCBleGVjTWFpbi5jOjE2NDQKIzEwIHN0YW5k YXJkX0V4ZWN1dG9yUnVuIChxdWVyeURlc2M9MHg1NTZmOWI5NDRmODgsIGRpcmVjdGlvbj08 b3B0aW1pemVkIG91dD4sIGNvdW50PTAsIGV4ZWN1dGVfb25jZT08b3B0aW1pemVkIG91dD4p IGF0IGV4ZWNNYWluLmM6MzYzCiMxMSAweDAwMDA1NTZmOTlmOWNjN2YgaW4gUG9ydGFsUnVu U2VsZWN0IChwb3J0YWw9cG9ydGFsQGVudHJ5PTB4NTU2ZjliOTk3MDA4LCBmb3J3YXJkPWZv cndhcmRAZW50cnk9dHJ1ZSwgY291bnQ9MCwgY291bnRAZW50cnk9OTIyMzM3MjAzNjg1NDc3 NTgwNywgZGVzdD1kZXN0QGVudHJ5PTB4NTU2ZjliOWYyMzYwKQogICAgYXQgcHF1ZXJ5LmM6 OTI0CiMxMiAweDAwMDA1NTZmOTlmOWRmZmEgaW4gUG9ydGFsUnVuIChwb3J0YWw9cG9ydGFs QGVudHJ5PTB4NTU2ZjliOTk3MDA4LCBjb3VudD1jb3VudEBlbnRyeT05MjIzMzcyMDM2ODU0 Nzc1ODA3LCBpc1RvcExldmVsPWlzVG9wTGV2ZWxAZW50cnk9dHJ1ZSwgcnVuX29uY2U9cnVu X29uY2VAZW50cnk9dHJ1ZSwgCiAgICBkZXN0PWRlc3RAZW50cnk9MHg1NTZmOWI5ZjIzNjAs IGFsdGRlc3Q9YWx0ZGVzdEBlbnRyeT0weDU1NmY5YjlmMjM2MCwgcWM9MHg3ZmZjMTIzYTBi NjApIGF0IHBxdWVyeS5jOjc2OAojMTMgMHgwMDAwNTU2Zjk5ZjlhNTdjIGluIGV4ZWNfc2lt cGxlX3F1ZXJ5IChxdWVyeV9zdHJpbmc9MHg1NTZmOWI5MWFiMTggIlNFTEVDVCAqIEZST00g bGluZWFyIFdIRVJFIChhIEJFVFdFRU4gMjAxMyBBTkQgODA2MSkgT0ZGU0VUIDEwMDAwMDA7 IikgYXQgcG9zdGdyZXMuYzoxMjc0CiMxNCAweDAwMDA1NTZmOTlmOWMwNTEgaW4gUG9zdGdy ZXNNYWluIChkYm5hbWU9PG9wdGltaXplZCBvdXQ+LCB1c2VybmFtZT08b3B0aW1pemVkIG91 dD4pIGF0IHBvc3RncmVzLmM6NDY4MAojMTUgMHgwMDAwNTU2Zjk5Zjk2ZGVmIGluIEJhY2tl bmRNYWluIChzdGFydHVwX2RhdGE9PG9wdGltaXplZCBvdXQ+LCBzdGFydHVwX2RhdGFfbGVu PTxvcHRpbWl6ZWQgb3V0PikgYXQgYmFja2VuZF9zdGFydHVwLmM6MTAxCiMxNiAweDAwMDA1 NTZmOTlmMGM1NjQgaW4gcG9zdG1hc3Rlcl9jaGlsZF9sYXVuY2ggKGNoaWxkX3R5cGU9Y2hp bGRfdHlwZUBlbnRyeT1CX0JBQ0tFTkQsIHN0YXJ0dXBfZGF0YT1zdGFydHVwX2RhdGFAZW50 cnk9MHg3ZmZjMTIzYTBmOTAgIiIsIHN0YXJ0dXBfZGF0YV9sZW49c3RhcnR1cF9kYXRhX2xl bkBlbnRyeT00LCAKICAgIGNsaWVudF9zb2NrPWNsaWVudF9zb2NrQGVudHJ5PTB4N2ZmYzEy M2EwZmIwKSBhdCBsYXVuY2hfYmFja2VuZC5jOjI2NQojMTcgMHgwMDAwNTU2Zjk5ZjBmZWE5 IGluIEJhY2tlbmRTdGFydHVwIChjbGllbnRfc29jaz0weDdmZmMxMjNhMGZiMCkgYXQgcG9z dG1hc3Rlci5jOjM1OTMKIzE4IFNlcnZlckxvb3AgKCkgYXQgcG9zdG1hc3Rlci5jOjE2NzQK IzE5IDB4MDAwMDU1NmY5OWYxMWI1MCBpbiBQb3N0bWFzdGVyTWFpbiAoYXJnYz1hcmdjQGVu dHJ5PTMsIGFyZ3Y9YXJndkBlbnRyeT0weDU1NmY5YjkxNTI2MCkgYXQgcG9zdG1hc3Rlci5j OjEzNzIKIzIwIDB4MDAwMDU1NmY5OWM1YjBjMyBpbiBtYWluIChhcmdjPTMsIGFyZ3Y9MHg1 NTZmOWI5MTUyNjApIGF0IG1haW4uYzoxOTcKKGdkYikgcCBoc2Nhbi0+cnNfY2luZGV4CiQx ID0gNTQzNTE2MDE4CihnZGIpIHAgaHNjYW4KJDIgPSAoSGVhcFNjYW5EZXNjKSAweDU1NmY5 YjllNjk2MAooZ2RiKSBwICpoc2NhbgokMyA9IHtyc19iYXNlID0ge3JzX3JkID0gMHg3ZjY1 ZmI4M2UxMzAsIHJzX3NuYXBzaG90ID0gMHg1NTZmOWI5NGNmNjAsIHJzX25rZXlzID0gMCwg cnNfa2V5ID0gMHgwLCByc19taW50aWQgPSB7aXBfYmxraWQgPSB7YmlfaGkgPSAzMTA5MCwg YmlfbG8gPSAyNTY3M30sIGlwX3Bvc2lkID0gMTIzMjB9LCByc19tYXh0aWQgPSB7CiAgICAg IGlwX2Jsa2lkID0ge2JpX2hpID0gMTQ4ODAsIGJpX2xvID0gMjQ5MzZ9LCBpcF9wb3NpZCA9 IDIxMTA3fSwgcnNfdGJtaXRlcmF0b3IgPSAweDU1NmY5YmExOGY4MCwgcnNfcGZfdGJtaXRl cmF0b3IgPSAweDAsIHByZWZldGNoX21heGltdW0gPSA4LCBibV9wYXJhbGxlbCA9IDB4N2Y2 NWZiNzk5MWMwLCAKICAgIGJsb2Nrbm8gPSA0Mjk0OTY3Mjk1LCByc19mbGFncyA9IDEyODIs IHJzX3BhcmFsbGVsID0gMHgwfSwgcnNfbmJsb2NrcyA9IDQxNjY3LCByc19zdGFydGJsb2Nr ID0gMCwgcnNfbnVtYmxvY2tzID0gNDI5NDk2NzI5NSwgcnNfaW5pdGVkID0gZmFsc2UsIHJz X2NvZmZzZXQgPSAyODI1NywgCiAgcnNfY2Jsb2NrID0gNDI5NDk2NzI5NSwgcnNfY2J1ZiA9 IDAsIHJzX3N0cmF0ZWd5ID0gMHgwLCByc19jdHVwID0ge3RfbGVuID0gMTgxOTIzNDkyNiwg dF9zZWxmID0ge2lwX2Jsa2lkID0ge2JpX2hpID0gNjU1MzUsIGJpX2xvID0gNjU1MzV9LCBp cF9wb3NpZCA9IDB9LCB0X3RhYmxlT2lkID0gMTY0MTYsIAogICAgdF9kYXRhID0gMHgwfSwg cnNfcGFyYWxsZWx3b3JrZXJkYXRhID0gMHgwLCByc192bWJ1ZmZlciA9IDAsIHJzX2VtcHR5 X3R1cGxlc19wZW5kaW5nID0gMCwgcHZtYnVmZmVyID0gMCwgcHJlZmV0Y2hfdGFyZ2V0ID0g LTEsIHByZWZldGNoX3BhZ2VzID0gMCwgcGZibG9ja25vID0gNDI5NDk2NzI5NSwgCiAgcnNf Y2luZGV4ID0gNTQzNTE2MDE4LCByc19udHVwbGVzID0gMTQxNDA4NzI5MSwgcnNfdmlzdHVw bGVzID0gezE2NzE3LCAxODUxMiwgMTY3MDksIDIxMzI4LCAxNjcwNywgODI3MCwgMjk0OTgs IDI0OTMxLCAxMTg4NiwgMjc3NjAsIDI4MjU3LCAyOTQ4NiwgMjQ5NDgsIDI5ODEwLCAyODc4 OSwgMjU0MzksIDI5NTUxLCAKICAgIDgzMDgsIDE0NjQ2LCAxMzM2NCwgMTQ2MzgsIDEzMzYy LCAxMzYxOCwgMTQ4ODAsIDI1NDU5LCAyODI1NywgMjg3MTgsIDI0OTQwLCAxMTg4NiwgMjg1 MzIsIDI0OTQ4LCAyNDQyOCwgMjg1MTUsIDI5ODExLCAxMzYwMCwgMTMxMDYsIDEzNjE4LCAx MzEwMiwgMTMzNjUsIDEzNjE4LCAxMjMzNiwgMTIzMzYsIDEyMzM2LCAKICAgIDgyNDQsIDI5 NDk4LCAyNDkzMSwgMTE4ODYsIDI3NzYwLCAyODI1NywgMjg3MTgsIDI0OTQwLCAyNDQzMCwg Mjg1MzAsIDI5NTU5LCAxMjU3NiwgMTIzNDEsIDEyODU2LCA4MjQ5LCAyOTQ5OCwgMjQ5MzEs IDExODg2LCAyNzc2MCwgMjgyNTcsIDI4NzE4LCAyNDk0MCwgMjQ0MzAsIDI2OTk5LCAyOTc5 NiwgODI5NiwgCiAgICAxNDY0NCwgMTQ4ODAsIDI1NDU5LCAyODI1NywgMjg3MTgsIDI0OTQw LCAxMTg4NiwgMjQ5NDQsIDI0OTQ2LCAyNzc1NiwgMjc3NDksIDI0OTI3LCAyNDk1MSwgMjU5 NzAsIDI5NzI4LCAzMDA2NiwgODI5MywgMjk0OTgsIDI0OTMxLCAxMTg4NiwgMjc3NjAsIDI4 MjU3LCAyODcxOCwgMjkyODEsIDI3NzQ1LCAyNTk2NCwgCiAgICAyNDQyOCwgMjQ5NDcsIDI1 OTU4LCAyOTcyOCwgMzAwNjYsIDgyOTMsIDI5NDk4LCAyNDkzMSwgMTE4ODYsIDI3NzYwLCAy ODI1NywgMjQ4NzgsIDMxMDkxLCAyNTQ1NCwgMjU0MzksIDI4NzY5LCAyNTE4NSwgMjU5NjQs IDI2MTQ0LCAyNzc0NSwgMjU5NzEsIDE0ODgwLCAyNTQ1OSwgMjgyNTcsIDI4NzE4LCAyNDk0 MCwgCiAgICAxMTg4NiwgMjc3NjAsIDI4MjU3LCAyODI1NSwgMjU3MTEsIDI0NDIxLCAyNTcw NSwgMTI4MzIsIDE0ODgwLCAyNTQ1OSwgMjgyNTcsIDI4NzE4LCAyNDk0MCwgMTE4ODYsIDI0 OTQ4LCAyNjQ4MiwgMjk3OTcsIDI2OTg4LCAyOTgxMSwgMTAyNzIsIDIxNjI3LCAyMTA1Nywg MTc3MzUsIDE3NzQ4LCAyMTU4MiwgMjI4NjYsIAogICAgMTQ4ODAsIDMwODIxLCAyOTI5Niwg MzE1MjAsIDE2NzI2LCA4Mjc0LCAzMDI2NiwgMjkyODEsIDI4NTI2LCAxMjU3NiwgMTQ4ODAs IDI0OTUwLCAyNDk0NiwgMjk4MTIsIDI4NTI2LCAxMjU3NiwgMTQ4ODAsIDI0OTUwLCAyOTgx MCwgMjg3OTMsIDgyOTMsIDEyMzM4LCAxNDg4MCwgMjQ5NTAsIDI5ODEwLCAyODc5MywgCiAg ICAyODUyNSwgODI5MiwgMTI1ODksIDE0ODgwLCAyNDk1MCwgMjU0NTgsIDI3NzU5LCAyNjk4 OCwgODI5MiwgODI0MCwgMzAyNjYsIDI5MjgxLCAzMDA2MiwgMjc3NTYsIDI4MjY1LCAyOTI4 NywgMjc3NDksIDgzMDcsIDI1MTI4LCA4MjMzLCAzMDI2NiwgMjkyODEsIDI1OTY0LCAyNTk3 NCwgMjk1NDgsIDI4Nzg5LCAKICAgIDEyMzIwLi4ufX0KCihnZGIpIGJ0IGZ1bGwKIzAgIDB4 MDAwMDU1ZTdkODFjNmNkMCBpbiBoZWFwYW1fc2Nhbl9iaXRtYXBfbmV4dF90dXBsZSAoc2Nh bj0weDU1ZTdkOThmZDE0MCwgc2xvdD0weDU1ZTdkOThlYjQ0MCwgcmVjaGVjaz0weDU1ZTdk OThlYWMxMCwgbG9zc3lfcGFnZXM9MHg1NWU3ZDk4ZWFiZjgsIGV4YWN0X3BhZ2VzPTB4NTVl N2Q5OGVhYmYwKQogICAgYXQgaGVhcGFtX2hhbmRsZXIuYzoyNTc2CiAgICAgICAgaHNjYW4g PSAweDU1ZTdkOThmZDE0MAogICAgICAgIHRhcmdvZmZzZXQgPSA8b3B0aW1pemVkIG91dD4K ICAgICAgICBwYWdlID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgbHAgPSA8b3B0aW1pemVk IG91dD4KICAgICAgICBfX2Z1bmNfXyA9ICJoZWFwYW1fc2Nhbl9iaXRtYXBfbmV4dF90dXBs ZSIKIzEgIDB4MDAwMDU1ZTdkODMzNmFkYiBpbiB0YWJsZV9zY2FuX2JpdG1hcF9uZXh0X3R1 cGxlIChleGFjdF9wYWdlcz0weDU1ZTdkOThlYWJmMCwgbG9zc3lfcGFnZXM9MHg1NWU3ZDk4 ZWFiZjgsIHJlY2hlY2s9MHg1NWU3ZDk4ZWFjMTAsIHNsb3Q9MHg1NWU3ZDk4ZWI0NDAsIHNj YW49MHg1NWU3ZDk4ZmQxNDApCiAgICBhdCAuLi8uLi8uLi9zcmMvaW5jbHVkZS9hY2Nlc3Mv dGFibGVhbS5oOjIwMDMKICAgICAgICBfX2Z1bmNfXyA9ICJ0YWJsZV9zY2FuX2JpdG1hcF9u ZXh0X3R1cGxlIgogICAgICAgIF9fZXJybm9fbG9jYXRpb24gPSA8b3B0aW1pemVkIG91dD4K IzIgIEJpdG1hcEhlYXBOZXh0IChub2RlPTB4NTVlN2Q5OGVhYjAwKSBhdCBub2RlQml0bWFw SGVhcHNjYW4uYzoyMjcKICAgICAgICBlY29udGV4dCA9IDB4NTVlN2Q5OGVhZDA4CiAgICAg ICAgc2NhbiA9IDB4NTVlN2Q5OGZkMTQwCiAgICAgICAgdGJtID0gPG9wdGltaXplZCBvdXQ+ CiAgICAgICAgc2xvdCA9IDB4NTVlN2Q5OGViNDQwCiAgICAgICAgZHNhID0gPG9wdGltaXpl ZCBvdXQ+CiAgICAgICAgX19mdW5jX18gPSAiQml0bWFwSGVhcE5leHQiCiMzICAweDAwMDA1 NWU3ZDgzMzkzMzEgaW4gRXhlY1Byb2NOb2RlIChub2RlPTB4NTVlN2Q5OGVhYjAwKSBhdCAu Li8uLi8uLi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oOjI3NApObyBsb2NhbHMu CiM0ICBnYXRoZXJfZ2V0bmV4dCAoZ2F0aGVyc3RhdGU9MHg1NWU3ZDk4ZWE5NzApIGF0IG5v ZGVHYXRoZXIuYzoyODcKICAgICAgICBlc3RhdGUgPSAweDU1ZTdkOThlYTQ1OAogICAgICAg IG91dGVyUGxhbiA9IDB4NTVlN2Q5OGVhYjAwCiAgICAgICAgb3V0ZXJUdXBsZVNsb3QgPSA8 b3B0aW1pemVkIG91dD4KICAgICAgICBmc2xvdCA9IDB4NTVlN2Q5OGViZjEwCiAgICAgICAg dHVwID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgb3V0ZXJQbGFuID0gPG9wdGltaXplZCBv dXQ+CiAgICAgICAgb3V0ZXJUdXBsZVNsb3QgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBm c2xvdCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHR1cCA9IDxvcHRpbWl6ZWQgb3V0Pgog ICAgICAgIGVzdGF0ZSA9IDxvcHRpbWl6ZWQgb3V0PgojNSAgRXhlY0dhdGhlciAocHN0YXRl PTB4NTVlN2Q5OGVhOTcwKSBhdCBub2RlR2F0aGVyLmM6MjIyCiAgICAgICAgbm9kZSA9IDxv cHRpbWl6ZWQgb3V0PgogICAgICAgIHNsb3QgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBl Y29udGV4dCA9IDB4NTVlN2Q5OGVhYTc4CiM2ICAweDAwMDA1NWU3ZDgzNDNhYzMgaW4gRXhl Y1Byb2NOb2RlIChub2RlPTB4NTVlN2Q5OGVhOTcwKSBhdCAuLi8uLi8uLi9zcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjdXRvci5oOjI3NApObyBsb2NhbHMuCiM3ICBFeGVjTGltaXQgKHBz dGF0ZT0weDU1ZTdkOThlYTY5OCkgYXQgbm9kZUxpbWl0LmM6OTUKICAgICAgICBub2RlID0g MHg1NWU3ZDk4ZWE2OTgKICAgICAgICBlY29udGV4dCA9IDB4NTVlN2Q5OGVhOGEwCiAgICAg ICAgZGlyZWN0aW9uID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgc2xvdCA9IDxvcHRpbWl6 ZWQgb3V0PgogICAgICAgIG91dGVyUGxhbiA9IDB4NTVlN2Q5OGVhOTcwCiAgICAgICAgX19m dW5jX18gPSAiRXhlY0xpbWl0IgojOCAgMHgwMDAwNTVlN2Q4MzIwNzRhIGluIEV4ZWNQcm9j Tm9kZSAobm9kZT0weDU1ZTdkOThlYTY5OCkgYXQgLi4vLi4vLi4vc3JjL2luY2x1ZGUvZXhl Y3V0b3IvZXhlY3V0b3IuaDoyNzQKTm8gbG9jYWxzLgojOSAgRXhlY3V0ZVBsYW4gKGV4ZWN1 dGVfb25jZT08b3B0aW1pemVkIG91dD4sIGRlc3Q9MHg1NWU3ZDk4ZWUzODAsIGRpcmVjdGlv bj08b3B0aW1pemVkIG91dD4sIG51bWJlclR1cGxlcz0wLCBzZW5kVHVwbGVzPXRydWUsIG9w ZXJhdGlvbj1DTURfU0VMRUNULCB1c2VfcGFyYWxsZWxfbW9kZT08b3B0aW1pemVkIG91dD4s IAogICAgcGxhbnN0YXRlPTB4NTVlN2Q5OGVhNjk4LCBlc3RhdGU9MHg1NWU3ZDk4ZWE0NTgp IGF0IGV4ZWNNYWluLmM6MTY0NAogICAgICAgIHNsb3QgPSA8b3B0aW1pemVkIG91dD4KLS1U eXBlIDxSRVQ+IGZvciBtb3JlLCBxIHRvIHF1aXQsIGMgdG8gY29udGludWUgd2l0aG91dCBw YWdpbmctLQogICAgICAgIGN1cnJlbnRfdHVwbGVfY291bnQgPSAwCiAgICAgICAgc2xvdCA9 IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIGN1cnJlbnRfdHVwbGVfY291bnQgPSA8b3B0aW1p emVkIG91dD4KIzEwIHN0YW5kYXJkX0V4ZWN1dG9yUnVuIChxdWVyeURlc2M9MHg1NWU3ZDk4 NDBmODgsIGRpcmVjdGlvbj08b3B0aW1pemVkIG91dD4sIGNvdW50PTAsIGV4ZWN1dGVfb25j ZT08b3B0aW1pemVkIG91dD4pIGF0IGV4ZWNNYWluLmM6MzYzCiAgICAgICAgZXN0YXRlID0g MHg1NWU3ZDk4ZWE0NTgKICAgICAgICBvcGVyYXRpb24gPSBDTURfU0VMRUNUCiAgICAgICAg ZGVzdCA9IDB4NTVlN2Q5OGVlMzgwCiAgICAgICAgc2VuZFR1cGxlcyA9IDxvcHRpbWl6ZWQg b3V0PgogICAgICAgIG9sZGNvbnRleHQgPSAweDU1ZTdkOTg0MGU5MAogICAgICAgIF9fZnVu Y19fID0gInN0YW5kYXJkX0V4ZWN1dG9yUnVuIgojMTEgMHgwMDAwNTVlN2Q4NGJiYzdmIGlu IFBvcnRhbFJ1blNlbGVjdCAocG9ydGFsPXBvcnRhbEBlbnRyeT0weDU1ZTdkOTg5MzAwOCwg Zm9yd2FyZD1mb3J3YXJkQGVudHJ5PXRydWUsIGNvdW50PTAsIGNvdW50QGVudHJ5PTkyMjMz NzIwMzY4NTQ3NzU4MDcsIGRlc3Q9ZGVzdEBlbnRyeT0weDU1ZTdkOThlZTM4MCkKICAgIGF0 IHBxdWVyeS5jOjkyNAogICAgICAgIHF1ZXJ5RGVzYyA9IDB4NTVlN2Q5ODQwZjg4CiAgICAg ICAgZGlyZWN0aW9uID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgbnByb2Nlc3NlZCA9IDxv cHRpbWl6ZWQgb3V0PgogICAgICAgIF9fZnVuY19fID0gIlBvcnRhbFJ1blNlbGVjdCIKIzEy IDB4MDAwMDU1ZTdkODRiY2ZmYSBpbiBQb3J0YWxSdW4gKHBvcnRhbD1wb3J0YWxAZW50cnk9 MHg1NWU3ZDk4OTMwMDgsIGNvdW50PWNvdW50QGVudHJ5PTkyMjMzNzIwMzY4NTQ3NzU4MDcs IGlzVG9wTGV2ZWw9aXNUb3BMZXZlbEBlbnRyeT10cnVlLCBydW5fb25jZT1ydW5fb25jZUBl bnRyeT10cnVlLCAKICAgIGRlc3Q9ZGVzdEBlbnRyeT0weDU1ZTdkOThlZTM4MCwgYWx0ZGVz dD1hbHRkZXN0QGVudHJ5PTB4NTVlN2Q5OGVlMzgwLCBxYz0weDdmZmQ3YWNlZWMyMCkgYXQg cHF1ZXJ5LmM6NzY4CiAgICAgICAgX3NhdmVfZXhjZXB0aW9uX3N0YWNrID0gMHg3ZmZkN2Fj ZWVlNjAKICAgICAgICBfc2F2ZV9jb250ZXh0X3N0YWNrID0gMHgwCiAgICAgICAgX2xvY2Fs X3NpZ2ptcF9idWYgPSB7e19fam1wYnVmID0gezEsIDY0NTAwMTEzODQ1NzA5NzE4MjQsIDE0 MDcyNjY2MzgzNDY1NiwgOTQ0NTQyNzU4MjY1NjAsIDk0NDU0Mjc1NDUyOTM2LCA5NDQ1NDI3 NDk0NzY0MCwgOTg4MDYyNTkxMzY3Nzc1OTIwLCA2NDUwMDA4NjkxOTkwMjAyMDMyfSwgCiAg ICAgICAgICAgIF9fbWFza193YXNfc2F2ZWQgPSAwLCBfX3NhdmVkX21hc2sgPSB7X192YWwg PSB7OTQ0NTM0NDI5NTQ4NjEsIDk0NDUwNjI1ODA2MzM3LCAwLCA5NDQ1MDYyNTgwNjMzNiwg OTQ0NTQyNTYxNzUwNDEsIDAsIDk0NDU0Mjc1NDYxMTQ0LCA5NDQ1NDI1Nzc2NTgzMCwgOTQ0 NTQyNzU0NTI5MzYsIAogICAgICAgICAgICAgICAgOTQ0NTQyNTc3NjU4MzAsIDEsIDk0NDU0 Mjc1ODI1NzIwLCAwLCA5NDQ1NDI3NDk0NzY0MCwgMTEyMDgyNjY1Mzg3NDczMTA1OTIsIDk0 NDU0Mjc0OTQ3OTc2fX19fQogICAgICAgIF9kb19yZXRocm93ID0gPG9wdGltaXplZCBvdXQ+ CiAgICAgICAgcmVzdWx0ID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgbnByb2Nlc3NlZCA9 IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHNhdmVUb3BUcmFuc2FjdGlvblJlc291cmNlT3du ZXIgPSAweDU1ZTdkOTg0ZTZlMAogICAgICAgIHNhdmVUb3BUcmFuc2FjdGlvbkNvbnRleHQg PSAweDU1ZTdkOTg0OGU0MAogICAgICAgIHNhdmVBY3RpdmVQb3J0YWwgPSAweDAKICAgICAg ICBzYXZlUmVzb3VyY2VPd25lciA9IDB4NTVlN2Q5ODRlNmUwCiAgICAgICAgc2F2ZVBvcnRh bENvbnRleHQgPSAweDAKICAgICAgICBzYXZlTWVtb3J5Q29udGV4dCA9IDB4NTVlN2Q5ODQ4 ZTQwCiAgICAgICAgX19mdW5jX18gPSAiUG9ydGFsUnVuIgojMTMgMHgwMDAwNTVlN2Q4NGI5 NTdjIGluIGV4ZWNfc2ltcGxlX3F1ZXJ5IChxdWVyeV9zdHJpbmc9MHg1NWU3ZDk4MTZiMTgg IlNFTEVDVCAqIEZST00gY3ljbGljX2Z1enogV0hFUkUgKGEgQkVUV0VFTiA2NiBBTkQgODIp IE9GRlNFVCAxMDAwMDAwOyIpIGF0IHBvc3RncmVzLmM6MTI3NAogICAgICAgIGNtZHRhZ2xl biA9IDYKICAgICAgICBzbmFwc2hvdF9zZXQgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBw ZXJfcGFyc2V0cmVlX2NvbnRleHQgPSAweDAKICAgICAgICBwbGFudHJlZV9saXN0ID0gPG9w dGltaXplZCBvdXQ+CiAgICAgICAgcGFyc2V0cmVlID0gMHg1NWU3ZDk4MTdhMTAKICAgICAg ICBjb21tYW5kVGFnID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgcWMgPSB7Y29tbWFuZFRh ZyA9IENNRFRBR19VTktOT1dOLCBucHJvY2Vzc2VkID0gMH0KICAgICAgICBxdWVyeXRyZWVf bGlzdCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHBvcnRhbCA9IDB4NTVlN2Q5ODkzMDA4 CiAgICAgICAgcmVjZWl2ZXIgPSAweDU1ZTdkOThlZTM4MAogICAgICAgIGZvcm1hdCA9IDAK ICAgICAgICBjbWR0YWduYW1lID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgcGFyc2V0cmVl X2l0ZW1fX3N0YXRlID0ge2wgPSAweDU1ZTdkOTgxN2EzOCwgaSA9IDB9CiAgICAgICAgZGVz dCA9IERlc3RSZW1vdGUKICAgICAgICBvbGRjb250ZXh0ID0gMHg1NWU3ZDk4NDhlNDAKLS1U eXBlIDxSRVQ+IGZvciBtb3JlLCBxIHRvIHF1aXQsIGMgdG8gY29udGludWUgd2l0aG91dCBw YWdpbmctLQogICAgICAgIHBhcnNldHJlZV9saXN0ID0gMHg1NWU3ZDk4MTdhMzgKICAgICAg ICBwYXJzZXRyZWVfaXRlbSA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHNhdmVfbG9nX3N0 YXRlbWVudF9zdGF0cyA9IGZhbHNlCiAgICAgICAgd2FzX2xvZ2dlZCA9IGZhbHNlCiAgICAg ICAgdXNlX2ltcGxpY2l0X2Jsb2NrID0gZmFsc2UKICAgICAgICBtc2VjX3N0ciA9ICJcMDAw XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAyXDM1NnVcYsOLXDIzM1wzNDBcMjE2 XDIyNFwzMzBcMzQ3VVwwMDBcMDAwXDAwMCBcMDAwXDAwMFwwMDBcMDAwXDAwMCIKICAgICAg ICBfX2Z1bmNfXyA9ICJleGVjX3NpbXBsZV9xdWVyeSIKIzE0IDB4MDAwMDU1ZTdkODRiYjA1 MSBpbiBQb3N0Z3Jlc01haW4gKGRibmFtZT08b3B0aW1pemVkIG91dD4sIHVzZXJuYW1lPTxv cHRpbWl6ZWQgb3V0PikgYXQgcG9zdGdyZXMuYzo0NjgwCiAgICAgICAgcXVlcnlfc3RyaW5n ID0gMHg1NWU3ZDk4MTZiMTggIlNFTEVDVCAqIEZST00gY3ljbGljX2Z1enogV0hFUkUgKGEg QkVUV0VFTiA2NiBBTkQgODIpIE9GRlNFVCAxMDAwMDAwOyIKICAgICAgICBmaXJzdGNoYXIg PSA8b3B0aW1pemVkIG91dD4KICAgICAgICBpbnB1dF9tZXNzYWdlID0ge2RhdGEgPSAweDU1 ZTdkOTgxNmIxOCAiU0VMRUNUICogRlJPTSBjeWNsaWNfZnV6eiBXSEVSRSAoYSBCRVRXRUVO IDY2IEFORCA4MikgT0ZGU0VUIDEwMDAwMDA7IiwgbGVuID0gNzAsIG1heGxlbiA9IDEwMjQs IGN1cnNvciA9IDcwfQogICAgICAgIGxvY2FsX3NpZ2ptcF9idWYgPSB7e19fam1wYnVmID0g ezE0MDcyNjY2MzgzNTA0MCwgNjQ1MDAxMTM0NjY1NjU2MDgxNiwgOTQ0NTQyNTQ2MzExNTIs IDE0MDcyNjY2MzgzNTc2MCwgMTQwNzI2NjYzODM1NzYwLCAxNDA3MjY2NjM4MzU5MjgsIDk4 ODA2MjU5MTE5MzcxMjMwNCwgNjQ1MDAwODY5NDgxMTEzMzYxNn0sIAogICAgICAgICAgICBf X21hc2tfd2FzX3NhdmVkID0gMSwgX19zYXZlZF9tYXNrID0ge19fdmFsID0gezQxOTQzMDQs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE0MDMxMTk3NTI2NDQxMywgOTQ0NTQyNzUxNzM5ODQs IDAsIDAsIDE0MDMxMTk3NTI2NDQxMywgOTQ0NTQyNzUxOTAzODQsIDE0MDMxMTk3NjQzODQ2 NCwgMTAyM319fX0KICAgICAgICBzZW5kX3JlYWR5X2Zvcl9xdWVyeSA9IGZhbHNlCiAgICAg ICAgaWRsZV9pbl90cmFuc2FjdGlvbl90aW1lb3V0X2VuYWJsZWQgPSBmYWxzZQogICAgICAg IGlkbGVfc2Vzc2lvbl90aW1lb3V0X2VuYWJsZWQgPSBmYWxzZQogICAgICAgIF9fZnVuY19f ID0gIlBvc3RncmVzTWFpbiIKIzE1IDB4MDAwMDU1ZTdkODRiNWRlZiBpbiBCYWNrZW5kTWFp biAoc3RhcnR1cF9kYXRhPTxvcHRpbWl6ZWQgb3V0Piwgc3RhcnR1cF9kYXRhX2xlbj08b3B0 aW1pemVkIG91dD4pIGF0IGJhY2tlbmRfc3RhcnR1cC5jOjEwMQogICAgICAgIGJzZGF0YSA9 IDxvcHRpbWl6ZWQgb3V0PgojMTYgMHgwMDAwNTVlN2Q4NDJiNTY0IGluIHBvc3RtYXN0ZXJf Y2hpbGRfbGF1bmNoIChjaGlsZF90eXBlPWNoaWxkX3R5cGVAZW50cnk9Ql9CQUNLRU5ELCBz dGFydHVwX2RhdGE9c3RhcnR1cF9kYXRhQGVudHJ5PTB4N2ZmZDdhY2VmMDUwICIiLCBzdGFy dHVwX2RhdGFfbGVuPXN0YXJ0dXBfZGF0YV9sZW5AZW50cnk9NCwgCiAgICBjbGllbnRfc29j az1jbGllbnRfc29ja0BlbnRyeT0weDdmZmQ3YWNlZjA3MCkgYXQgbGF1bmNoX2JhY2tlbmQu YzoyNjUKICAgICAgICBwaWQgPSA8b3B0aW1pemVkIG91dD4KIzE3IDB4MDAwMDU1ZTdkODQy ZWVhOSBpbiBCYWNrZW5kU3RhcnR1cCAoY2xpZW50X3NvY2s9MHg3ZmZkN2FjZWYwNzApIGF0 IHBvc3RtYXN0ZXIuYzozNTkzCiAgICAgICAgYm4gPSAweDU1ZTdkOTgxODk0MAogICAgICAg IHBpZCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHN0YXJ0dXBfZGF0YSA9IHtjYW5BY2Nl cHRDb25uZWN0aW9ucyA9IENBQ19PS30KICAgICAgICBibiA9IDxvcHRpbWl6ZWQgb3V0Pgog ICAgICAgIHBpZCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHN0YXJ0dXBfZGF0YSA9IDxv cHRpbWl6ZWQgb3V0PgogICAgICAgIF9fZnVuY19fID0gIkJhY2tlbmRTdGFydHVwIgogICAg ICAgIF9fZXJybm9fbG9jYXRpb24gPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBfX2Vycm5v X2xvY2F0aW9uID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgc2F2ZV9lcnJubyA9IDxvcHRp bWl6ZWQgb3V0PgogICAgICAgIF9fZXJybm9fbG9jYXRpb24gPSA8b3B0aW1pemVkIG91dD4K ICAgICAgICBfX2Vycm5vX2xvY2F0aW9uID0gPG9wdGltaXplZCBvdXQ+CiMxOCBTZXJ2ZXJM b29wICgpIGF0IHBvc3RtYXN0ZXIuYzoxNjc0CiAgICAgICAgcyA9IHtzb2NrID0gOSwgcmFk ZHIgPSB7YWRkciA9IHtzc19mYW1pbHkgPSAxLCAKICAgICAgICAgICAgICBfX3NzX3BhZGRp bmcgPSAiXDAwMFwwMDBcMzQ3VVwwMDBcMDAwXDI1NGd5XDMzMFwzNDdVXDAwMFwwMDA4NzA5 IiwgJ1wwMDAnIDxyZXBlYXRzIDIxIHRpbWVzPiwgIlwwMDRcMDAwXDAwMFwwMDBcMDAwXDAw MFwwMDBcMjcySmFcMzMwXDM0N1VcMDAwXDAwMFwzNjBcMzYwXDMxNnpcMzc1XDE3N1wwMDBc MDAwYFwyNTFzXDMzMFwzNDdVXDAwMFwwMDBcMzYwXDM2MFwzMTZ6XDM3NVwxNzdcMDAwXDAw MFwzNTdcMDAxX1wzMzBcMzQ3VSIsICdcMDAwJyA8cmVwZWF0cyAxOCB0aW1lcz4sICIgalwy MDFcMzMxXDM0N1VcMDAwXDAwMFpKXGFcMzMwXDM0N1VcMDAwIiwgX19zc19hbGlnbiA9IDQy NjkyMDYwMzh9LCBzYWxlbiA9IDJ9fQogICAgICAgIGkgPSAwCiAgICAgICAgbm93ID0gPG9w dGltaXplZCBvdXQ+CiAgICAgICAgbGFzdF9sb2NrZmlsZV9yZWNoZWNrX3RpbWUgPSAxNzEx MjgzMjUyCiAgICAgICAgbGFzdF90b3VjaF90aW1lID0gMTcxMTI4MzI1MgogICAgICAgIGV2 ZW50cyA9IHt7cG9zID0gMiwgZXZlbnRzID0gMiwgZmQgPSA3LCB1c2VyX2RhdGEgPSAweDB9 LCB7cG9zID0gLTMwMzU5OTc1MywgZXZlbnRzID0gMzI2NjgsIGZkID0gNSwgdXNlcl9kYXRh ID0gMHg3ZjljZWQ2ODJkNzB9LCB7cG9zID0gMSwgZXZlbnRzID0gMCwgZmQgPSAwLCB1c2Vy X2RhdGEgPSAweDF9LCB7CiAgICAgICAgICAgIHBvcyA9IC0zMDM0MzkxNjgsIGV2ZW50cyA9 IDMyNjY4LCBmZCA9IDAsIHVzZXJfZGF0YSA9IDB4N2Y5Y2VkZTllMmMwfSwge3BvcyA9IDEs IGV2ZW50cyA9IDIxOTkxLCBmZCA9IDIwNjAzODI2ODAsIHVzZXJfZGF0YSA9IDB4N2Y5Y2Vk ZTllNjQ4fSwge3BvcyA9IDAsIGV2ZW50cyA9IDAsIGZkID0gMCwgCiAgICAgICAgICAgIHVz ZXJfZGF0YSA9IDB4NTVlN2Q5ODQwOTEwfSwge3BvcyA9IC0xLCBldmVudHMgPSAwLCBmZCA9 IDIwNjAzODI2ODAsIHVzZXJfZGF0YSA9IDB4N2ZmZDdhY2VmMWU3fSwge3BvcyA9IDAsIGV2 ZW50cyA9IDAsIGZkID0gMjA2MDM4MjY5MiwgCiAgICAgICAgICAgIHVzZXJfZGF0YSA9IDB4 N2Y5Y2VkNzk3ZDBlIDxpbmV0X2F0b25fZW5kKzExMD59LCB7cG9zID0gMjA2MDM4Mjc4MCwg ZXZlbnRzID0gMzI3NjUsIGZkID0gMjA2MDM4Mjc4NCwgdXNlcl9kYXRhID0gMHg1NWU3ZDk4 NDFkODB9LCB7cG9zID0gLTY0NTY1ODM1MSwgZXZlbnRzID0gMjE5OTEsIGZkID0gNiwgCiAg ICAgICAgICAgIHVzZXJfZGF0YSA9IDB4OWI4YmMzMDg3NWVlMzIwMH0sIHtwb3MgPSAyNjgs IGV2ZW50cyA9IDAsIGZkID0gMjA2MDM4MzE1NiwgdXNlcl9kYXRhID0gMHg3ZmZkN2FjZWY5 ZDB9LCB7cG9zID0gLTMxMDgwMzAzOCwgZXZlbnRzID0gMzI2NjgsIGZkID0gMCwgCiAgICAg ICAgICAgIHVzZXJfZGF0YSA9IDB4MTAwMDAwMDAwMDAwMDAwfSwge3BvcyA9IC02NDU2NDgw OTYsIGV2ZW50cyA9IDIxOTkxLCBmZCA9IDE5Nzg1NDQ2NDAsIHVzZXJfZGF0YSA9IDB4NTVl N2Q5ODE4NzQwfSwge3BvcyA9IC02NDU2NDMzMDQsIGV2ZW50cyA9IDIxOTkxLCBmZCA9IDEw LCAKLS1UeXBlIDxSRVQ+IGZvciBtb3JlLCBxIHRvIHF1aXQsIGMgdG8gY29udGludWUgd2l0 aG91dCBwYWdpbmctLQogICAgICAgICAgICB1c2VyX2RhdGEgPSAweDdmOWNlZDc0OTVkYyA8 Z2FpaF9yZXN1bHRfcmVzZXQrMjg+fSwge3BvcyA9IDEwLCBldmVudHMgPSAwLCBmZCA9IC0z MTExMTUzOTYsIHVzZXJfZGF0YSA9IDB4NTVlN2Q5ODExMjYwfSwge3BvcyA9IDMsIGV2ZW50 cyA9IDAsIGZkID0gLTY2NDQyOTU0NiwgCiAgICAgICAgICAgIHVzZXJfZGF0YSA9IDB4N2Y5 Y2VkZTdmMzVhIDxfZGxfcnVudGltZV9yZXNvbHZlX3hzYXZlKzEzOD59LCB7cG9zID0gMjA2 MDM4NDgwOCwgZXZlbnRzID0gMzI3NjUsIGZkID0gLTY0NTY2Nzk1MiwgdXNlcl9kYXRhID0g MHgzN30sIHtwb3MgPSAxLCBldmVudHMgPSAwLCBmZCA9IDIwNjAzODMyMTYsIAogICAgICAg ICAgICB1c2VyX2RhdGEgPSAweDB9LCB7cG9zID0gMCwgZXZlbnRzID0gMCwgZmQgPSAyMDYw MzgzMzc2LCB1c2VyX2RhdGEgPSAweDdmZmQ3YWNlZjMzMH0sIHtwb3MgPSAtNjQ1NjQzMzA0 LCBldmVudHMgPSAyMTk5MSwgZmQgPSAxLCB1c2VyX2RhdGEgPSAweDdmZmQ3YWNlZmE0MH0s IHtwb3MgPSAxMCwgCiAgICAgICAgICAgIGV2ZW50cyA9IDMyNzY1LCBmZCA9IDc2LCB1c2Vy X2RhdGEgPSAweDJlMmY3MDZkNzQyZn0sIHtwb3MgPSAxMzY0NDEyMjQwLCBldmVudHMgPSA4 NzU5MDA0OTIsIGZkID0gLTY0NTY1MzEyMCwgdXNlcl9kYXRhID0gMHgwfSwge3BvcyA9IDAs IGV2ZW50cyA9IDAsIGZkID0gLTY2MTI5NDM2OCwgCiAgICAgICAgICAgIHVzZXJfZGF0YSA9 IDB4NTVlN2Q4NzRlNGI1fSwge3BvcyA9IC02NjQ1MzY1MzgsIGV2ZW50cyA9IDIxOTkxLCBm ZCA9IDAsIHVzZXJfZGF0YSA9IDB4MH0sIHtwb3MgPSAwLCBldmVudHMgPSAwLCBmZCA9IDAs IHVzZXJfZGF0YSA9IDB4N2Y5Y2VkZTZjNTQwfSwge3BvcyA9IDIwNjAzODMyNTYsIAogICAg ICAgICAgICBldmVudHMgPSAzMjc2NSwgZmQgPSAxOTE4OTg5ODcxLCB1c2VyX2RhdGEgPSAw eDY1NzI2Nzc0NzM2ZjcwMmZ9LCB7cG9zID0gNzk2MDkxNTAwLCBldmVudHMgPSAxODgyMDIz NzkyLCBmZCA9IDE3NTEzNDgzMjEsIHVzZXJfZGF0YSA9IDB4ZmZ9LCB7cG9zID0gMCwgZXZl bnRzID0gMCwgZmQgPSAyNTUsIAogICAgICAgICAgICB1c2VyX2RhdGEgPSAweDB9LCB7cG9z ID0gMCwgZXZlbnRzID0gMCwgZmQgPSAwLCB1c2VyX2RhdGEgPSAweGF9LCB7cG9zID0gMCwg ZXZlbnRzID0gMCwgZmQgPSAxNjc3NzIxNiwgdXNlcl9kYXRhID0gMHgwfSwge3BvcyA9IDAs IGV2ZW50cyA9IDAsIGZkID0gMCwgdXNlcl9kYXRhID0gMHgwfSwgewogICAgICAgICAgICBw b3MgPSAwLCBldmVudHMgPSAwLCBmZCA9IDEsIHVzZXJfZGF0YSA9IDB4MTAwMDAwMDAwfSwg e3BvcyA9IDIsIGV2ZW50cyA9IDE3LCBmZCA9IC0zMDM2MDM0MjAsIHVzZXJfZGF0YSA9IDB4 N2Y5Y2VkZTZjNTQwfSwge3BvcyA9IC0zMTE5MTU3MzYsIGV2ZW50cyA9IDMyNjY4LCBmZCA9 IDIwOTAyNjM5MjcsIAogICAgICAgICAgICB1c2VyX2RhdGEgPSAweDdmOWNlZDY4N2U5Y30s IHtwb3MgPSAyMDYwMzgzNTA4LCBldmVudHMgPSAzMjc2NSwgZmQgPSAtMzAzNjAyMjc3LCB1 c2VyX2RhdGEgPSAweDhlM30sIHtwb3MgPSAtMzExODQxODY0LCBldmVudHMgPSAzMjY2OCwg ZmQgPSAtMzAzNjQzMzI4LCAKICAgICAgICAgICAgdXNlcl9kYXRhID0gMHg3ZmZkN2FjZWY1 MTh9LCB7cG9zID0gMjA2MDM4MzUwOCwgZXZlbnRzID0gMzI3NjUsIGZkID0gMCwgdXNlcl9k YXRhID0gMHg1NWU3ZDgwNzQ5MjN9LCB7cG9zID0gMCwgZXZlbnRzID0gMCwgZmQgPSAtNjcw ODcwOTg0LCB1c2VyX2RhdGEgPSAweDFmMjViOTV9LCB7CiAgICAgICAgICAgIHBvcyA9IDIw NjAzODM3MjgsIGV2ZW50cyA9IDMyNzY1LCBmZCA9IDIwNjAzODM3MjAsIHVzZXJfZGF0YSA9 IDB4N2Y5Y2VkNjgyY2U4fSwge3BvcyA9IDAsIGV2ZW50cyA9IDAsIGZkID0gMTAsIHVzZXJf ZGF0YSA9IDB4MH0sIHtwb3MgPSAwLCBldmVudHMgPSAwLCBmZCA9IC0zMDM2MDM0MjAsIAog ICAgICAgICAgICB1c2VyX2RhdGEgPSAweDdmOWNlZGU2YzU0MH0sIHtwb3MgPSAtMzExOTE1 NzM2LCBldmVudHMgPSAzMjY2OCwgZmQgPSAyNTkyNzI0NTUsIHVzZXJfZGF0YSA9IDB4N2Y5 Y2VkNjg2NzI4fSwge3BvcyA9IDIwNjAzODM3MDAsIGV2ZW50cyA9IDMyNzY1LCBmZCA9IC0z MDM2MDIyNzcsIAogICAgICAgICAgICB1c2VyX2RhdGEgPSAweDMwNn0sIHtwb3MgPSAtMzEx ODQxODY0LCBldmVudHMgPSAzMjY2OCwgZmQgPSAtMzAzNjQzMzI4LCB1c2VyX2RhdGEgPSAw eDB9LCB7cG9zID0gMjA2MDM4MzcwMCwgZXZlbnRzID0gMzI3NjUsIGZkID0gLTY3MDYxMTE2 NSwgdXNlcl9kYXRhID0gMHg3Yzk2ZTU3N30sIHsKICAgICAgICAgICAgcG9zID0gLTMxMTkz OTcyOCwgZXZlbnRzID0gMzI2NjgsIGZkID0gLTMwMzQzODI2NCwgdXNlcl9kYXRhID0gMHg3 ZmZkN2FjZWY1ZTh9LCB7cG9zID0gMjA2MDM4Mzg3MiwgZXZlbnRzID0gMzI3NjUsIGZkID0g LTMwMzU5OTc1MywgdXNlcl9kYXRhID0gMHg1fSwge3BvcyA9IC0zMTE5Mzk3MjgsIAogICAg ICAgICAgICBldmVudHMgPSAzMjY2OCwgZmQgPSAxLCB1c2VyX2RhdGEgPSAweDB9LCB7cG9z ID0gMSwgZXZlbnRzID0gMCwgZmQgPSAtMzAzNDM5MTY4LCB1c2VyX2RhdGEgPSAweDU1ZTdk ODc1Mjg0ZH0sIHtwb3MgPSAtMzAzNDM5MTY4LCBldmVudHMgPSAzMjY2OCwgZmQgPSAxLCAK ICAgICAgICAgICAgdXNlcl9kYXRhID0gMHg3ZmZkN2FjZWY1ZjB9LCB7cG9zID0gLTMwMzQz ODI2NCwgZXZlbnRzID0gMzI2NjgsIGZkID0gMCwgdXNlcl9kYXRhID0gMHg1NWU3ZDg2NTlh ODl9LCB7cG9zID0gLTMxMTE2MzA5OSwgZXZlbnRzID0gMzI2NjgsIGZkID0gMCwgdXNlcl9k YXRhID0gMHg4fSwgewogICAgICAgICAgICBwb3MgPSAyMDYwMzgzNzI4LCBldmVudHMgPSAz Mjc2NSwgZmQgPSAtMSwgdXNlcl9kYXRhID0gMHg3ZjljZWQ2OTYwNzB9LCB7cG9zID0gLTMw MzY0MzMyOCwgZXZlbnRzID0gMzI2NjgsIGZkID0gMiwgdXNlcl9kYXRhID0gMHg0NjAwMDA0 MWMwfSwge3BvcyA9IDcwLCBldmVudHMgPSAwLCBmZCA9IDAsIAogICAgICAgICAgICB1c2Vy X2RhdGEgPSAweDEwMDB9LCB7cG9zID0gLTMwMzQzOTE2OCwgZXZlbnRzID0gMzI2NjgsIGZk ID0gMjQ1LCB1c2VyX2RhdGEgPSAweDU1ZTdkODBmMzc1MH0sIHtwb3MgPSAtNjYxNDYxMDgw LCBldmVudHMgPSAyMTk5MSwgZmQgPSAzLCB1c2VyX2RhdGEgPSAweDU1ZTdkODc1Mjg0ZH0s IHsKICAgICAgICAgICAgcG9zID0gLTMwMzU3NDIzOCwgZXZlbnRzID0gMzI2NjgsIGZkID0g MSwgdXNlcl9kYXRhID0gMHgwfSwge3BvcyA9IC02NjMzNTkxMjAsIGV2ZW50cyA9IDIxOTkx LCBmZCA9IC02NjMzNTkxMzksIHVzZXJfZGF0YSA9IDB4N2Y5Y2VkNjk2MDcwfSwge3BvcyA9 IC0zMTExMjg1OTIsIGV2ZW50cyA9IDMyNjY4LCAKICAgICAgICAgICAgZmQgPSAtNjYxMjkw OTEyLCB1c2VyX2RhdGEgPSAweDdmZmQ3YWNlZmE0MH0sIHtwb3MgPSAyMDYwMzg0ODY0LCBl dmVudHMgPSAzMjc2NSwgZmQgPSAwLCB1c2VyX2RhdGEgPSAweDB9LCB7cG9zID0gLTMwMzU2 NTk5MCwgZXZlbnRzID0gMzI2NjgsIGZkID0gMCwgCiAgICAgICAgICAgIHVzZXJfZGF0YSA9 IDB4N2Y5Y2VkNzBmZDg0IDxfX0dJX19fcHRocmVhZF9zaWdtYXNrKzY4Pn0sIHtwb3MgPSAw LCBldmVudHMgPSAwLCBmZCA9IC02NjEzNDQzNTIsIHVzZXJfZGF0YSA9IDB4Mn0sIHtwb3Mg PSA3Mzk0Nzk2NjgsIGV2ZW50cyA9IDAsIGZkID0gMjA2MDc0Njg4MCwgCiAgICAgICAgICAg IHVzZXJfZGF0YSA9IDB4NTVlN2Q4MGYzMzMwfX0KICAgICAgICBuZXZlbnRzID0gPG9wdGlt aXplZCBvdXQ+CiAgICAgICAgX19mdW5jX18gPSAiU2VydmVyTG9vcCIKIzE5IDB4MDAwMDU1 ZTdkODQzMGI1MCBpbiBQb3N0bWFzdGVyTWFpbiAoYXJnYz1hcmdjQGVudHJ5PTMsIGFyZ3Y9 YXJndkBlbnRyeT0weDU1ZTdkOTgxMTI2MCkgYXQgcG9zdG1hc3Rlci5jOjEzNzIKICAgICAg ICBvcHQgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBzdGF0dXMgPSA8b3B0aW1pemVkIG91 dD4KICAgICAgICB1c2VyRG9wdGlvbiA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIGxpc3Rl bl9hZGRyX3NhdmVkID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgb3V0cHV0X2NvbmZpZ192 YXJpYWJsZSA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIF9fZnVuY19fID0gIlBvc3RtYXN0 ZXJNYWluIgojMjAgMHgwMDAwNTVlN2Q4MTdhMGMzIGluIG1haW4gKGFyZ2M9MywgYXJndj0w eDU1ZTdkOTgxMTI2MCkgYXQgbWFpbi5jOjE5NwogICAgICAgIGRvX2NoZWNrX3Jvb3QgPSA8 b3B0aW1pemVkIG91dD4K --------------Aul0KPuADtLmavVHelN095Fi--