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.96) (envelope-from ) id 1wH09Y-006mFc-2K for pgsql-hackers@arkaria.postgresql.org; Sun, 26 Apr 2026 14:08:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wH09W-00AM9R-0Z for pgsql-hackers@arkaria.postgresql.org; Sun, 26 Apr 2026 14:08:06 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wH09V-00AM9A-16 for pgsql-hackers@lists.postgresql.org; Sun, 26 Apr 2026 14:08:05 +0000 Received: from mail-qk1-x72a.google.com ([2607:f8b0:4864:20::72a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wH09P-00000002sb8-3gAH for pgsql-hackers@lists.postgresql.org; Sun, 26 Apr 2026 14:08:03 +0000 Received: by mail-qk1-x72a.google.com with SMTP id af79cd13be357-8d933da14f0so883941685a.2 for ; Sun, 26 Apr 2026 07:07:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dunslane-net.20251104.gappssmtp.com; s=20251104; t=1777212478; x=1777817278; darn=lists.postgresql.org; h=in-reply-to:autocrypt:content-language:references:cc:to:from :subject:user-agent:mime-version:date:message-id:from:to:cc:subject :date:message-id:reply-to; bh=z/MVsAHwGvkZcImoXfNF9iAezpT8T7T7hLzkitrBVUo=; b=phVbeeqmJwWZohu+pMQdEzHNJLeymJRmxFIVtFK36+luQlh74lziSF3olx0i+tF+e9 I3SHzBlLMgORBC0PVPXuArIvSXB+AcIq9wWtUfkk49ijfHmKKHM78mPNl+wLnGWJjooV NQtD2GKPq0qU4kfDBLRhXS3IuFNzwHMrnsGh8bBRm5ptGljIf6MuCVJ+WkrHF7vqXSB9 T2HiEO0Fm3Ljf8jFqi5KEDRwwvGEgseMfiU6iKXD2pRfH1Ijm2uwSvKKQ11E5/DUjqKu J8r0JrWi8Dev8RAfrS8OL12R16bYYL63pZ2LjycDNEIufrcc+Fq9sE/8tEs6MKVW1go/ Dw/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777212478; x=1777817278; h=in-reply-to:autocrypt:content-language:references:cc:to:from :subject:user-agent:mime-version:date:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=z/MVsAHwGvkZcImoXfNF9iAezpT8T7T7hLzkitrBVUo=; b=HItlkDcb9E2EkgczqpMx/12NaKSHKVOVoN5HF06m+9Fm9Mticu1xjaHXrjKeagibU+ vmaDLFxf37Bh3I1jB7r4f36gk1GQOufU65I7NHL6kuRPxMU+m6LERZK6sJkJvQVVBa4u ZRCwfXH8L5GzwLr9+AZTb3qf2FlbGQHWpuGqDVdNNP2UquhOt8x9hEGCIViCl4Beo1DX CgiV4CqiUowsRy2BeWkku+WX3raSoAdh73At9I9a6HxCT8xVPHS5mEzdqK9GuM2dQx2A AY6VNkG+EO7Q4vXHiNRQNfz61S4kl5FsZHWmqVfmk0VA97hBUBHx9F2YoBa/EDZCp7pf 344g== X-Forwarded-Encrypted: i=1; AFNElJ/IP58RPCoAK81sfWxn9DsOVTvGFoOcoS6MrFbR2DLXnZ2CaCXWwhCK9Ji+Oj/wnW2kvbnDP4Ah0BX0kZOf@lists.postgresql.org X-Gm-Message-State: AOJu0YyLurbJ7nRqqpJHgKU5nXRdeZxNulucXqPV5lAHVEWnCUWO2ltY DotjXlbeC1ZAZabEeFhlkniVBDK8CET3UXqj1YJUBR4yuek9IUyDkUoY3QC37qSocf8= X-Gm-Gg: AeBDieshJYBHocx7Ly5O9GhLI23cX09JoIQCv+N6fYGRw+zgq9zDHBIv06uLagVu3zD t4tHA+AJP4hR5RSQlOjzzTL7HRACSYYmtJ/EQzd+o5IRq/ruEvt74zmc1YleNFTFhCbk+apUO9t ucUQaJcD7YpnVLMr93pTE78mMYp+SVOYGgzqVDiJQY96KD2RDClLfbjcdBMf6anpFhPCSm4B3zj zmL0jjfPp0uwsSPzPTiFPnZkB/juQfVUR1xEhSc8yDVxOatNp97HlWLE5mliObA8MVoA2+3fjzh W2d+bjYBfuBdWSCY4JFWDHNVFSYAeHjeHU7hGtf+5n3G/c9X8+ncfajgwuKcAIgO8kWw8p+IXa8 UOxt0vDb/HaX7enVt33F2qE2syzztmC3DbIi4Fzv6eqn24hA6shKoxt03e7XC+4Ry0vnDJOAMqT UG0QHpfpLAjJlS3YzmH3JGZ8pbXYv1S85BLV18WX3o X-Received: by 2002:a05:620a:28c9:b0:8ef:b8ea:ef24 with SMTP id af79cd13be357-8efb8eb267bmr2613186385a.9.1777212477648; Sun, 26 Apr 2026 07:07:57 -0700 (PDT) Received: from ?IPV6:2605:a601:a6b0:500::1cb? ([2605:a601:a6b0:500::1cb]) by smtp.googlemail.com with ESMTPSA id af79cd13be357-8e7d94d3f99sm2416570085a.40.2026.04.26.07.07.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 26 Apr 2026 07:07:56 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------lbp2tPUVLqIKTiHYfMjDivkB" Message-ID: Date: Sun, 26 Apr 2026 10:07:55 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: pg_get__*_ddl consolidation From: Andrew Dunstan To: Andres Freund Cc: "David G. Johnston" , Japin Li , Zsolt Parragi , Euler Taveira , =?UTF-8?Q?=C3=81lvaro_Herrera?= , PostgreSQL Hackers References: <202603201311.yhtqmvektawm@alvherre.pgsql> <8ec9b67d-939e-4b22-8d56-a5129f92d32d@app.fastmail.com> <555cdee4-c024-4872-9d96-82ef4216239c@dunslane.net> <5c67dc79-909a-4e17-8606-6686667da6c6@dunslane.net> Content-Language: en-US Autocrypt: addr=andrew@dunslane.net; keydata= xsBNBE7KWFkBCAClridxur2AIc7eW2AR7izbfp3EnNefie2HbLF0izW5Ik5UjX2HBXBx4syI gY6b0ugohXrr274+baoAlvSbq6cAoQuEVrk5IZFzt20b1Xkx65FwGSEj526yiKLocqkJceSq Xr9xcA5SGY+FZv441chh5SU92v4q6z+6LPpoHOh97ptAVXZYNTtU0LevyvD5lja0TzbvJm6C eFXitJfnm1pLEr0DGJCR/iUOl/N62Kh4855zZC7NHIjQHPOvV5Stz/l5ilDhvGVk+xkXFPys SjZoUr1rXhYLpiyi5sR0X9FHXT0KnGuz1F5ERO7ZTLSSQ6fJwPj6gOk9K+vvoKvoeql5ABEB AAHNJEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PsLAlwQTAQgAQQIbAwIX gAIZAQULCQgHAwUVCgkICwUWAgMBAAIeBRYhBOQ+WEYd/Hy/RGkVpZn6f8tZ/DuBBQJoGNGd BQkdEO8nAAoJEJn6f8tZ/DuBq74H/jkTR4Zi3stbw+xC7v2u3QozssK7MYPL2AsVfh7OealS h182fiWXpfvmmAB7WUHbhk9GC2RAOnHI/2d2jgKaMLAHsGYOT0YopTVIwRY43fCw/mK67yxc wmDcX+zyKfLaivNbf5A7QPLNwda98bEAMSJ8Sn652Uc6cA8t3uKGsVzbRBQOoYzjgvBCfSrE 9ql3PDNg0l4BfAqabd2f70ZUm9VAMEPrgv/v2xI7M2XiL4g5BVmqLCOwxLM8RMCotCuoweUr VO43DeBCIDwLxotMJKvGWDjBzQYlU1NPUAtNcz/gN9ITUe1VUGjyvGj4u1lxBOcQQUw7l1+T 5moZ4iZxXzvOwE0ETspYWQEIANGc4zQULOxhbqO2dyD51YhqCNRmm9oKWaqf+wmW4tpDe/VV cxAnNizd4LWCHfzpb5cHAtGkOPePMfzWVf6nvdF7d3eglbtf59+zG7O7llV0xSSoFiieQBsr GvqDInXYX/4mRRXMtyhM353/tixC9RWLs1oofyYmCPPXXY7h9R7en3B8BoVrRFcdzlIY/NFN hFGW/9dkEiGjgna2Rk6e15kln4ZvFBWUg23p93w/pqXcxY6+k/8TEk+C4R+M6w7o2PLGOjdZ +kPiUcw5H85zf/yZJwQXzisXaNduwWB6Vads9YC9dj6kPR1c4VGRqAaYL++LAEOqrlvm2Tvq QqZRtnEAEQEAAcLAfAQYAQgAJgIbDBYhBOQ+WEYd/Hy/RGkVpZn6f8tZ/DuBBQJoGNI2BQkd EODdAAoJEJn6f8tZ/DuBfw0IAKTsfD40teP/pp+bsLLMSxPXUYrrprTj7WFB5v61p6dkpSr/ qXmMlyahdxQFaPmfVgVirB1Vk/kHiWNnnGjfUV9nB2Zg9LI0Xb9/ts3LsUiRWXzG3tkMY6XL vsVOxW4XFRND9l2q+WW93aZ1DZl+fqWfYgMvsusFRhmGFOKTRfKPta2Pkv+AhA24N4+PrR5p bU4k2MO8PAGiK8eaYKGFG1bHKuAvoDoF7WXJ3FHxuWqLnKEt4dfOLm5pAe3zq1Lt6q8azT9i QWGpSAK5vQUWQHBHpiDjdPeqKZ6HiAXIIKfSmb+jrvXBqoP+D6/K7rUjG2aXiRtTIAXms9sm VRu7cmw= In-Reply-To: <5c67dc79-909a-4e17-8606-6686667da6c6@dunslane.net> 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. --------------lbp2tPUVLqIKTiHYfMjDivkB Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2026-04-06 Mo 7:39 AM, Andrew Dunstan wrote: > > On 2026-04-05 Su 4:03 PM, Andres Freund wrote: > > >>> But do we really have to create a new database and a new tablespace >>> for these? >>> Database and tablespace creations are quite heavyweight operations. >>> >>> We already have an existing tablespace and an existing database as >>> part of the >>> regression tests. Couldn't you make do with those? >> Didn't do anything about that. >> > > Well, the trouble is that the database test runs a bunch of alter and > revoke statements on the created database, that we probably don't want > to persist on the existing regression database. I could see an > argument for converting this to a TAP test that would only be run > once, given our current very profligate running of the core regression > suite. That goes doubly for the tablespace test, which could also > probably use ALTER TABLESPACE instead of creating a bunch of > tablespaces and then dropping them. > > > Here's a patch that converts all these into a single TAP test, and reduces the number of tablespace creations. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com --------------lbp2tPUVLqIKTiHYfMjDivkB Content-Type: text/x-patch; charset=UTF-8; name="0001-Convert-ddlutils-regression-tests-to-TAP-tests.patch" Content-Disposition: attachment; filename*0="0001-Convert-ddlutils-regression-tests-to-TAP-tests.patch" Content-Transfer-Encoding: base64 RnJvbSBjOTJiOWIzY2M4NzI2Y2UyNTIxOTNjMGZmZmU5MjUwZDQ2MWRkYWQ3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1bnNsYW5l Lm5ldD4KRGF0ZTogU3VuLCAyNiBBcHIgMjAyNiAwOTo0Mzo1NyAtMDQwMApTdWJqZWN0OiBb UEFUQ0hdIENvbnZlcnQgZGRsdXRpbHMgcmVncmVzc2lvbiB0ZXN0cyB0byBUQVAgdGVzdHMu CgpUaGUgcmVncmVzc2lvbiB0ZXN0cyBmb3IgcGdfZ2V0X3JvbGVfZGRsKCksIHBnX2dldF9k YXRhYmFzZV9kZGwoKSwKYW5kIHBnX2dldF90YWJsZXNwYWNlX2RkbCgpIGNyZWF0ZWQgZGF0 YWJhc2VzIGFuZCB0YWJsZXNwYWNlcywgd2hpY2gKYXJlIGhlYXZ5d2VpZ2h0IG9wZXJhdGlv bnMuICBBcyBub3RlZCBieSBBbmRyZXMgRnJldW5kLCB0aGlzIGlzCndhc3RlZnVsIGluIHRo ZSBjb3JlIHJlZ3Jlc3Npb24gc3VpdGUgd2hpY2ggZ2V0cyBydW4gcmVwZWF0ZWRseS4KCkNv bnZlcnQgdGhlIHRocmVlIHRlc3QgZmlsZXMgKHJvbGVfZGRsLnNxbCwgZGF0YWJhc2VfZGRs LnNxbCwKdGFibGVzcGFjZV9kZGwuc3FsKSBpbnRvIGEgc2luZ2xlIFRBUCB0ZXN0IHRoYXQg cnVucyBvbmNlLCBjb3ZlcmluZwphbGwgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eTogYmFzaWMg RERMIGdlbmVyYXRpb24sIHByZXR0eS1wcmludGluZywKb3B0aW9uIGhhbmRsaW5nLCBlcnJv ciBjYXNlcywgcGVybWlzc2lvbiBjaGVja3MsIGFuZCBlZGdlIGNhc2VzIGxpa2UKcXVvdGVk IG5hbWVzIGFuZCByb2xlIG1lbWJlcnNoaXBzLgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0 Z3IuZXMvbS81YzY3ZGM3OS05MDlhLTRlMTctODYwNi02Njg2NjY3ZGE2YzZAZHVuc2xhbmUu bmV0Ci0tLQogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21pc2MvbWVzb24uYnVpbGQgICAgICAg fCAgIDEgKwogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21pc2MvdC8wMTJfZGRsdXRpbHMucGwg fCAyODYgKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9k YXRhYmFzZV9kZGwub3V0ICAgfCAgODggLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3JvbGVfZGRsLm91dCAgICAgICB8IDE0MyAtLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3RhYmxlc3BhY2VfZGRsLm91dCB8ICA4NCAtLS0tLS0KIHNyYy90ZXN0 L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgIHwgICAxIC0KIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2RhdGFiYXNlX2RkbC5zcWwgICAgICAgIHwgIDY2IC0tLS0tCiBzcmMv dGVzdC9yZWdyZXNzL3NxbC9yb2xlX2RkbC5zcWwgICAgICAgICAgICB8ICA5NiAtLS0tLS0t CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC90YWJsZXNwYWNlX2RkbC5zcWwgICAgICB8ICA1OCAt LS0tCiA5IGZpbGVzIGNoYW5nZWQsIDI4NyBpbnNlcnRpb25zKCspLCA1MzYgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21pc2MvdC8w MTJfZGRsdXRpbHMucGwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2RhdGFiYXNlX2RkbC5vdXQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3JvbGVfZGRsLm91dAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGFibGVzcGFjZV9kZGwub3V0CiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGF0YWJhc2VfZGRsLnNxbAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3JvbGVfZGRsLnNxbAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RhYmxlc3BhY2VfZGRsLnNxbAoKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL21lc29uLmJ1aWxkIGIvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X21pc2MvbWVzb24uYnVpbGQKaW5kZXggMWIyNWQ5OGY3ZjMu LjM1NmQ4NDU0YjM5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfbWlzYy9t ZXNvbi5idWlsZAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfbWlzYy9tZXNvbi5idWls ZApAQCAtMjAsNiArMjAsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8wMDlfbG9nX3RlbXBf ZmlsZXMucGwnLAogICAgICAgJ3QvMDEwX2luZGV4X2NvbmN1cnJlbnRseV91cHNlcnQucGwn LAogICAgICAgJ3QvMDExX2xvY2tfc3RhdHMucGwnLAorICAgICAgJ3QvMDEyX2RkbHV0aWxz LnBsJywKICAgICBdLAogICAgICMgVGhlIGluamVjdGlvbiBwb2ludHMgYXJlIGNsdXN0ZXIt d2lkZSwgc28gZGlzYWJsZSBpbnN0YWxsY2hlY2sKICAgICAncnVubmluZ2NoZWNrJzogZmFs c2UsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfbWlzYy90LzAxMl9kZGx1 dGlscy5wbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL3QvMDEyX2RkbHV0aWxzLnBs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iMTFkNDc3N2NjYwot LS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL3QvMDEyX2Rk bHV0aWxzLnBsCkBAIC0wLDAgKzEsMjg2IEBACisKKyMgQ29weXJpZ2h0IChjKSAyMDI2LCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisjIFRlc3RzIGZvciBwZ19n ZXRfZGF0YWJhc2VfZGRsKCksIHBnX2dldF90YWJsZXNwYWNlX2RkbCgpLCBhbmQKKyMgcGdf Z2V0X3JvbGVfZGRsKCkuICBUaGVzZSBhcmUgVEFQIHRlc3RzIHJhdGhlciB0aGFuIHBsYWlu IHJlZ3Jlc3Npb24KKyMgdGVzdHMgYmVjYXVzZSB0aGV5IGNyZWF0ZSBkYXRhYmFzZXMgYW5k IHRhYmxlc3BhY2VzLCB3aGljaCBhcmUKKyMgaGVhdnl3ZWlnaHQgb3BlcmF0aW9ucyB0aGF0 IHNob3VsZCBydW4gb25seSBvbmNlIHJhdGhlciB0aGFuIGJlaW5nCisjIHJlcGVhdGVkIHdp dGggZXZlcnkgaW52b2NhdGlvbiBvZiB0aGUgY29yZSByZWdyZXNzaW9uIHN1aXRlLgorCit1 c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzIEZBVEFMID0+ICdhbGwnOwordXNlIFBvc3RncmVT UUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2Ug VGVzdDo6TW9yZTsKKworbXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5u ZXcoJ21haW4nKTsKKyRub2RlLT5pbml0OworJG5vZGUtPnN0YXJ0OworCisjIFBlcmwgaGVs cGVyIHRoYXQgc3RyaXBzIGxvY2FsZS9jb2xsYXRpb24gZGV0YWlscyBmcm9tIERETCBvdXRw dXQgc28KKyMgdGhhdCByZXN1bHRzIGFyZSBzdGFibGUgYWNyb3NzIHBsYXRmb3Jtcy4KK3N1 YiBkZGxfZmlsdGVyCit7CisJbXkgKCR0ZXh0KSA9IEBfOworCSR0ZXh0ID1+IHMvXHMqXGJM T0NBTEVfUFJPVklERVJcYlxzKj1ccyooPzonW14nXSonfCJbXiJdKiJ8XFMrKS8vZ2k7CisJ JHRleHQgPX4gcy9ccypMQ19DT0xMQVRFXHMqPVxzKihbJyJdKVteJyJdKlwxLy9naTsKKwkk dGV4dCA9fiBzL1xzKkxDX0NUWVBFXHMqPVxzKihbJyJdKVteJyJdKlwxLy9naTsKKwkkdGV4 dCA9fiBzL1xzKlxTKkxPQ0FMRVxTKlxzKj0/XHMqKFsnIl0pW14nIl0qXDEvL2dpOworCSR0 ZXh0ID1+IHMvXHMqXFMqQ09MTEFUSU9OXFMqXHMqPT9ccyooWyciXSlbXiciXSpcMS8vZ2k7 CisJcmV0dXJuICR0ZXh0OworfQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBwZ19nZXRf cm9sZV9kZGwgdGVzdHMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIEJhc2ljIHJvbGUKKyRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0NSRUFURSBST0xFIHJlZ3Jlc3Nfcm9sZV9k ZGxfdGVzdDEnKTsKK215ICRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJcXtTRUxFQ1QgKiBGUk9NIHBnX2dldF9yb2xlX2RkbCgncmVncmVzc19yb2xlX2RkbF90 ZXN0MScpfSk7CitsaWtlKCRyZXN1bHQsCisJcXIvQ1JFQVRFIFJPTEUgcmVncmVzc19yb2xl X2RkbF90ZXN0MSAuKiBOT0xPR0lOLywKKwknYmFzaWMgcm9sZSBEREwnKTsKKworIyBSb2xl IHdpdGggbXVsdGlwbGUgcHJpdmlsZWdlcworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMn LCBxeworCUNSRUFURSBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfdGVzdDIKKwkgIExPR0lOIFNV UEVSVVNFUiBDUkVBVEVEQiBDUkVBVEVST0xFCisJICBDT05ORUNUSU9OIExJTUlUIDUKKwkg IFZBTElEIFVOVElMICcyMDMwLTEyLTMxIDIzOjU5OjU5KzAwJ30pOworJHJlc3VsdCA9ICRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe1NFTEVDVCAqIEZST00gcGdfZ2V0X3Jv bGVfZGRsKCdyZWdyZXNzX3JvbGVfZGRsX3Rlc3QyJyl9KTsKK2xpa2UoJHJlc3VsdCwgcXIv U1VQRVJVU0VSLywgJ3JvbGUgd2l0aCBTVVBFUlVTRVInKTsKK2xpa2UoJHJlc3VsdCwgcXIv Q1JFQVRFREIvLCAncm9sZSB3aXRoIENSRUFURURCJyk7CitsaWtlKCRyZXN1bHQsIHFyL0NP Tk5FQ1RJT04gTElNSVQgNS8sICdyb2xlIHdpdGggQ09OTkVDVElPTiBMSU1JVCcpOworbGlr ZSgkcmVzdWx0LCBxci9WQUxJRCBVTlRJTCAnMjAzMC0xMi0zMS8sICdyb2xlIHdpdGggVkFM SUQgVU5USUwnKTsKKworIyBSb2xlIHdpdGggY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzCisk bm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CisJQUxURVIgUk9MRSByZWdyZXNzX3Jv bGVfZGRsX3Rlc3QxIFNFVCB3b3JrX21lbSBUTyAnMjU2TUInOworCUFMVEVSIFJPTEUgcmVn cmVzc19yb2xlX2RkbF90ZXN0MSBTRVQgc2VhcmNoX3BhdGggVE8gbXlzY2hlbWEsIHB1Ymxp Y30pOworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe1NFTEVD VCAqIEZST00gcGdfZ2V0X3JvbGVfZGRsKCdyZWdyZXNzX3JvbGVfZGRsX3Rlc3QxJyl9KTsK K2xpa2UoJHJlc3VsdCwgcXIvU0VUIHdvcmtfbWVtIFRPICcyNTZNQicvLCAncm9sZSB3aXRo IHdvcmtfbWVtIHNldHRpbmcnKTsKK2xpa2UoJHJlc3VsdCwgcXIvU0VUIHNlYXJjaF9wYXRo IFRPLywgJ3JvbGUgd2l0aCBzZWFyY2hfcGF0aCBzZXR0aW5nJyk7CisKKyMgUm9sZSB3aXRo IGRhdGFiYXNlLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gKG5lZWRzIGEgcmVhbCBkYXRhYmFz ZSkKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsKKwlDUkVBVEUgREFUQUJBU0Ug cmVncmVzc2lvbl9kZGx1dGlsc190ZXN0CisJICBURU1QTEFURSB0ZW1wbGF0ZTAgRU5DT0RJ TkcgJ1VURjgnIExDX0NPTExBVEUgJ0MnIExDX0NUWVBFICdDJzsKKwlBTFRFUiBST0xFIHJl Z3Jlc3Nfcm9sZV9kZGxfdGVzdDIKKwkgIElOIERBVEFCQVNFIHJlZ3Jlc3Npb25fZGRsdXRp bHNfdGVzdCBTRVQgd29ya19tZW0gVE8gJzEyOE1CJ30pOworJHJlc3VsdCA9ICRub2RlLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe1NFTEVDVCAqIEZST00gcGdfZ2V0X3JvbGVfZGRs KCdyZWdyZXNzX3JvbGVfZGRsX3Rlc3QyJyl9KTsKK2xpa2UoJHJlc3VsdCwKKwlxci9JTiBE QVRBQkFTRSByZWdyZXNzaW9uX2RkbHV0aWxzX3Rlc3QgU0VUIHdvcmtfbWVtIFRPICcxMjhN QicvLAorCSdyb2xlIHdpdGggZGF0YWJhc2Utc3BlY2lmaWMgc2V0dGluZycpOworCisjIFJv bGUgd2l0aCBzcGVjaWFsIGNoYXJhY3RlcnMgKHJlcXVpcmVzIHF1b3RpbmcpCiskbm9kZS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7Q1JFQVRFIFJPTEUgInJlZ3Jlc3Nfcm9sZS13aXRo LWRhc2gifSk7CiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXF7 U0VMRUNUICogRlJPTSBwZ19nZXRfcm9sZV9kZGwoJ3JlZ3Jlc3Nfcm9sZS13aXRoLWRhc2gn KX0pOworbGlrZSgkcmVzdWx0LCBxci8icmVncmVzc19yb2xlLXdpdGgtZGFzaCIvLAorCSdy b2xlIG5hbWUgcmVxdWlyaW5nIHF1b3RpbmcnKTsKKworIyBQcmV0dHktcHJpbnRlZCBvdXRw dXQKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcXtTRUxFQ1Qg KiBGUk9NIHBnX2dldF9yb2xlX2RkbCgncmVncmVzc19yb2xlX2RkbF90ZXN0MicsICdwcmV0 dHknLCAndHJ1ZScpfSk7CitsaWtlKCRyZXN1bHQsIHFyL1xuXHMrU1VQRVJVU0VSLywgJ3Jv bGUgcHJldHR5LXByaW50IGluZGVudHMgYXR0cmlidXRlcycpOworCisjIFJvbGUgd2l0aCBt ZW1iZXJzaGlwcworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxeworCUNSRUFURSBS T0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JhbnRvciBDUkVBVEVST0xFOworCUNSRUFURSBST0xF IHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JvdXAxOworCUNSRUFURSBST0xFIHJlZ3Jlc3Nfcm9sZV9k ZGxfZ3JvdXAyOworCUNSRUFURSBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfbWVtYmVyOworCUdS QU5UIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JvdXAxIFRPIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JhbnRv ciBXSVRIIEFETUlOIFRSVUU7CisJR1JBTlQgcmVncmVzc19yb2xlX2RkbF9ncm91cDIgVE8g cmVncmVzc19yb2xlX2RkbF9ncmFudG9yIFdJVEggQURNSU4gVFJVRTsKKwlTRVQgUk9MRSBy ZWdyZXNzX3JvbGVfZGRsX2dyYW50b3I7CisJR1JBTlQgcmVncmVzc19yb2xlX2RkbF9ncm91 cDEgVE8gcmVncmVzc19yb2xlX2RkbF9tZW1iZXIKKwkgIFdJVEggSU5IRVJJVCBUUlVFLCBT RVQgRkFMU0U7CisJR1JBTlQgcmVncmVzc19yb2xlX2RkbF9ncm91cDIgVE8gcmVncmVzc19y b2xlX2RkbF9tZW1iZXIKKwkgIFdJVEggQURNSU4gVFJVRTsKKwlSRVNFVCBST0xFfSk7Cisk cmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXF7U0VMRUNUICogRlJP TSBwZ19nZXRfcm9sZV9kZGwoJ3JlZ3Jlc3Nfcm9sZV9kZGxfbWVtYmVyJyl9KTsKK2xpa2Uo JHJlc3VsdCwgcXIvR1JBTlQgcmVncmVzc19yb2xlX2RkbF9ncm91cDEgVE8gcmVncmVzc19y b2xlX2RkbF9tZW1iZXIvLAorCSdyb2xlIHdpdGggbWVtYmVyc2hpcHMgaW5jbHVkZXMgR1JB TlQnKTsKK2xpa2UoJHJlc3VsdCwgcXIvU0VUIEZBTFNFLywgJ21lbWJlcnNoaXAgaW5jbHVk ZXMgU0VUIEZBTFNFJyk7CitsaWtlKCRyZXN1bHQsIHFyL0FETUlOIFRSVUUvLCAnbWVtYmVy c2hpcCBpbmNsdWRlcyBBRE1JTiBUUlVFJyk7CisKKyMgTWVtYmVyc2hpcHMgc3VwcHJlc3Nl ZAorJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe1NFTEVDVCAq IEZST00gcGdfZ2V0X3JvbGVfZGRsKCdyZWdyZXNzX3JvbGVfZGRsX21lbWJlcicsICdtZW1i ZXJzaGlwcycsICdmYWxzZScpfSk7Cit1bmxpa2UoJHJlc3VsdCwgcXIvR1JBTlQvLCAnbWVt YmVyc2hpcHMgc3VwcHJlc3NlZCcpOworCisjIE5vbi1leGlzdGVudCByb2xlIChzaG91bGQg ZXJyb3IpCitteSAoJHJldCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+cHNxbCgncG9z dGdyZXMnLAorCXF7U0VMRUNUICogRlJPTSBwZ19nZXRfcm9sZV9kZGwoOTk5OTk5OTo6b2lk KX0pOworaXNudCgkcmV0LCAwLCAnbm9uLWV4aXN0ZW50IHJvbGUgZXJyb3JzJyk7CitsaWtl KCRzdGRlcnIsIHFyL2RvZXMgbm90IGV4aXN0LywgJ25vbi1leGlzdGVudCByb2xlIGVycm9y IG1lc3NhZ2UnKTsKKworIyBOVUxMIGlucHV0IChzaG91bGQgcmV0dXJuIG5vIHJvd3MpCisk cmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXF7U0VMRUNUIGNvdW50 KCopIEZST00gcGdfZ2V0X3JvbGVfZGRsKE5VTEwpfSk7CitpcygkcmVzdWx0LCAnMCcsICdO VUxMIHJvbGUgcmV0dXJucyBubyByb3dzJyk7CisKKyMgUGVybWlzc2lvbiBjaGVjazogcmV2 b2tlIFNFTEVDVCBvbiBwZ19hdXRoaWQKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXsKKwlDUkVBVEUgUk9MRSByZWdyZXNzX3JvbGVfZGRsX25vYWNjZXNzOworCVJFVk9LRSBT RUxFQ1QgT04gcGdfYXV0aGlkIEZST00gUFVCTElDfSk7CisoJHJldCwgJHN0ZG91dCwgJHN0 ZGVycikgPSAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLAorCXF7U0VUIFJPTEUgcmVncmVzc19y b2xlX2RkbF9ub2FjY2VzczsKKwkgIFNFTEVDVCAqIEZST00gcGdfZ2V0X3JvbGVfZGRsKCdy ZWdyZXNzX3JvbGVfZGRsX3Rlc3QxJyl9KTsKK2lzbnQoJHJldCwgMCwgJ3JvbGUgRERMIGRl bmllZCB3aXRob3V0IHBnX2F1dGhpZCBhY2Nlc3MnKTsKKyRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgcXsKKwlHUkFOVCBTRUxFQ1QgT04gcGdfYXV0aGlkIFRPIFBVQkxJQ30pOwor CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBwZ19nZXRfZGF0YWJhc2VfZGRsIHRlc3RzCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKworIyBTZXQgdXA6IHRoZSB0ZXN0IGRhdGFiYXNlIHdhcyBh bHJlYWR5IGNyZWF0ZWQgYWJvdmUgZm9yIHJvbGUgdGVzdHMuCiskbm9kZS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHF7CisJQUxURVIgREFUQUJBU0UgcmVncmVzc2lvbl9kZGx1dGlsc190 ZXN0IE9XTkVSIFRPIHJlZ3Jlc3Nfcm9sZV9kZGxfdGVzdDI7CisJQUxURVIgREFUQUJBU0Ug cmVncmVzc2lvbl9kZGx1dGlsc190ZXN0IENPTk5FQ1RJT04gTElNSVQgMTIzOworCUFMVEVS IERBVEFCQVNFIHJlZ3Jlc3Npb25fZGRsdXRpbHNfdGVzdCBTRVQgcmFuZG9tX3BhZ2VfY29z dCA9IDIuMDsKKwlBTFRFUiBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfdGVzdDIKKwkgIElOIERB VEFCQVNFIHJlZ3Jlc3Npb25fZGRsdXRpbHNfdGVzdCBTRVQgcmFuZG9tX3BhZ2VfY29zdCA9 IDEuMX0pOworCisjIE5vbi1leGlzdGVudCBkYXRhYmFzZQorKCRyZXQsICRzdGRvdXQsICRz dGRlcnIpID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywKKwlxe1NFTEVDVCAqIEZST00gcGdf Z2V0X2RhdGFiYXNlX2RkbCgncmVncmVzc2lvbl9ub19zdWNoX2RiJyl9KTsKK2lzbnQoJHJl dCwgMCwgJ25vbi1leGlzdGVudCBkYXRhYmFzZSBlcnJvcnMnKTsKKworIyBOVUxMIGlucHV0 CiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXF7U0VMRUNUIGNv dW50KCopIEZST00gcGdfZ2V0X2RhdGFiYXNlX2RkbChOVUxMKX0pOworaXMoJHJlc3VsdCwg JzAnLCAnTlVMTCBkYXRhYmFzZSByZXR1cm5zIG5vIHJvd3MnKTsKKworIyBJbnZhbGlkIG9w dGlvbgorKCRyZXQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVz JywKKwlxe1NFTEVDVCAqIEZST00gcGdfZ2V0X2RhdGFiYXNlX2RkbCgncmVncmVzc2lvbl9k ZGx1dGlsc190ZXN0JywgJ293bmVyJywgJ2ludmFsaWQnKX0pOworaXNudCgkcmV0LCAwLCAn aW52YWxpZCBib29sZWFuIG9wdGlvbiBlcnJvcnMnKTsKK2xpa2UoJHN0ZGVyciwgcXIvaW52 YWxpZCB2YWx1ZS8sICdpbnZhbGlkIG9wdGlvbiBlcnJvciBtZXNzYWdlJyk7CisKKyMgRHVw bGljYXRlIG9wdGlvbgorKCRyZXQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwo J3Bvc3RncmVzJywKKwlxe1NFTEVDVCAqIEZST00gcGdfZ2V0X2RhdGFiYXNlX2RkbCgncmVn cmVzc2lvbl9kZGx1dGlsc190ZXN0JywKKwkgICdvd25lcicsICdmYWxzZScsICdvd25lcics ICd0cnVlJyl9KTsKK2lzbnQoJHJldCwgMCwgJ2R1cGxpY2F0ZSBvcHRpb24gZXJyb3JzJyk7 CisKKyMgQmFzaWMgb3V0cHV0ICh3aXRob3V0IGxvY2FsZSBkZXRhaWxzKQorJHJlc3VsdCA9 IGRkbF9maWx0ZXIoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXF7U0VMRUNUIHBn X2dldF9kYXRhYmFzZV9kZGwKKwkgIEZST00gcGdfZ2V0X2RhdGFiYXNlX2RkbCgncmVncmVz c2lvbl9kZGx1dGlsc190ZXN0Jyl9KSk7CitsaWtlKCRyZXN1bHQsIHFyL0NSRUFURSBEQVRB QkFTRSByZWdyZXNzaW9uX2RkbHV0aWxzX3Rlc3QvLAorCSdkYXRhYmFzZSBEREwgaW5jbHVk ZXMgQ1JFQVRFJyk7CitsaWtlKCRyZXN1bHQsIHFyL1RFTVBMQVRFID0gdGVtcGxhdGUwLywg J2RhdGFiYXNlIERETCBpbmNsdWRlcyBURU1QTEFURScpOworbGlrZSgkcmVzdWx0LCBxci9F TkNPRElORyA9ICdVVEY4Jy8sICdkYXRhYmFzZSBEREwgaW5jbHVkZXMgRU5DT0RJTkcnKTsK K2xpa2UoJHJlc3VsdCwgcXIvT1dORVIgVE8gcmVncmVzc19yb2xlX2RkbF90ZXN0Mi8sICdk YXRhYmFzZSBEREwgaW5jbHVkZXMgT1dORVInKTsKK2xpa2UoJHJlc3VsdCwgcXIvQ09OTkVD VElPTiBMSU1JVCA9IDEyMy8sICdkYXRhYmFzZSBEREwgaW5jbHVkZXMgQ09OTkxJTUlUJyk7 CitsaWtlKCRyZXN1bHQsIHFyL1NFVCByYW5kb21fcGFnZV9jb3N0IFRPICcyLjAnLywKKwkn ZGF0YWJhc2UgRERMIGluY2x1ZGVzIEdVQyBzZXR0aW5nJyk7CisKKyMgUHJldHR5LXByaW50 ZWQgb3V0cHV0CiskcmVzdWx0ID0gZGRsX2ZpbHRlcigkbm9kZS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJcXtTRUxFQ1QgcGdfZ2V0X2RhdGFiYXNlX2RkbAorCSAgRlJPTSBwZ19nZXRf ZGF0YWJhc2VfZGRsKCdyZWdyZXNzaW9uX2RkbHV0aWxzX3Rlc3QnLAorCSAgICAncHJldHR5 JywgJ3RydWUnLCAndGFibGVzcGFjZScsICdmYWxzZScpfSkpOworbGlrZSgkcmVzdWx0LCBx ci9cblxzK1dJVEggVEVNUExBVEUvLCAnZGF0YWJhc2UgRERMIHByZXR0eS1wcmludHMgV0lU SCcpOworCisjIFBlcm1pc3Npb24gY2hlY2sKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXsKKwlSRVZPS0UgQ09OTkVDVCBPTiBEQVRBQkFTRSByZWdyZXNzaW9uX2RkbHV0aWxz X3Rlc3QgRlJPTSBQVUJMSUN9KTsKKygkcmV0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2Rl LT5wc3FsKCdwb3N0Z3JlcycsCisJcXtTRVQgUk9MRSByZWdyZXNzX3JvbGVfZGRsX25vYWNj ZXNzOworCSAgU0VMRUNUICogRlJPTSBwZ19nZXRfZGF0YWJhc2VfZGRsKCdyZWdyZXNzaW9u X2RkbHV0aWxzX3Rlc3QnKX0pOworaXNudCgkcmV0LCAwLCAnZGF0YWJhc2UgRERMIGRlbmll ZCB3aXRob3V0IENPTk5FQ1QnKTsKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsK KwlHUkFOVCBDT05ORUNUIE9OIERBVEFCQVNFIHJlZ3Jlc3Npb25fZGRsdXRpbHNfdGVzdCBU TyBQVUJMSUN9KTsKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgcGdfZ2V0X3RhYmxlc3Bh Y2VfZGRsIHRlc3RzCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBOb24tZXhpc3RlbnQgdGFi bGVzcGFjZSBieSBuYW1lCisoJHJldCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+cHNx bCgncG9zdGdyZXMnLAorCXF7U0VMRUNUICogRlJPTSBwZ19nZXRfdGFibGVzcGFjZV9kZGwo J3JlZ3Jlc3Nfbm9uZXhpc3RlbnRfdGJsc3AnKX0pOworaXNudCgkcmV0LCAwLCAnbm9uLWV4 aXN0ZW50IHRhYmxlc3BhY2UgZXJyb3JzJyk7CisKKyMgTm9uLWV4aXN0ZW50IHRhYmxlc3Bh Y2UgYnkgT0lECisoJHJldCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+cHNxbCgncG9z dGdyZXMnLAorCXF7U0VMRUNUICogRlJPTSBwZ19nZXRfdGFibGVzcGFjZV9kZGwoMDo6b2lk KX0pOworaXNudCgkcmV0LCAwLCAnbm9uLWV4aXN0ZW50IHRhYmxlc3BhY2UgT0lEIGVycm9y cycpOworCisjIE5VTEwgaW5wdXQgKG5hbWUgYW5kIE9JRCB2YXJpYW50cykKKyRyZXN1bHQg PSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcXtTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19nZXRfdGFibGVzcGFjZV9kZGwoTlVMTDo6bmFtZSl9KTsKK2lzKCRyZXN1bHQsICcw JywgJ05VTEwgdGFibGVzcGFjZSBuYW1lIHJldHVybnMgbm8gcm93cycpOworJHJlc3VsdCA9 ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX2dldF90YWJsZXNwYWNlX2RkbChOVUxMOjpvaWQpfSk7CitpcygkcmVzdWx0LCAnMCcs ICdOVUxMIHRhYmxlc3BhY2UgT0lEIHJldHVybnMgbm8gcm93cycpOworCisjIFRhYmxlc3Bh Y2UgbmFtZSByZXF1aXJpbmcgcXVvdGluZworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMn LCBxeworCVNFVCBhbGxvd19pbl9wbGFjZV90YWJsZXNwYWNlcyA9IHRydWU7CisJQ1JFQVRF IFRBQkxFU1BBQ0UgInJlZ3Jlc3NfIHRibHNwIiBPV05FUiByZWdyZXNzX3JvbGVfZGRsX3Rl c3QxCisJICBMT0NBVElPTiAnJ30pOworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwlxe1NFTEVDVCAqIEZST00gcGdfZ2V0X3RhYmxlc3BhY2VfZGRsKCdyZWdy ZXNzXyB0YmxzcCcpfSk7CitsaWtlKCRyZXN1bHQsIHFyLyJyZWdyZXNzXyB0YmxzcCIvLCAn dGFibGVzcGFjZSBuYW1lIGlzIHF1b3RlZCcpOworCisjIFJlbmFtZSBhbmQgYWRkIG9wdGlv bnM7IHJldXNlIHRoaXMgdGFibGVzcGFjZSBmb3IgdGhlIHJlbWFpbmluZyB0ZXN0cworJG5v ZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxeworCUFMVEVSIFRBQkxFU1BBQ0UgInJlZ3Jl c3NfIHRibHNwIiBSRU5BTUUgVE8gcmVncmVzc19hbGxvcHRfdGJsc3A7CisJQUxURVIgVEFC TEVTUEFDRSByZWdyZXNzX2FsbG9wdF90YmxzcAorCSAgU0VUIChzZXFfcGFnZV9jb3N0ID0g JzEuNScsIHJhbmRvbV9wYWdlX2Nvc3QgPSAnMS4xMjM0NTY3ODkwJywKKwkgICAgICAgZWZm ZWN0aXZlX2lvX2NvbmN1cnJlbmN5ID0gJzE3JywgbWFpbnRlbmFuY2VfaW9fY29uY3VycmVu Y3kgPSAnMTgnKX0pOworCisjIFRhYmxlc3BhY2Ugd2l0aCBtdWx0aXBsZSBvcHRpb25zCisk cmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXF7U0VMRUNUICogRlJP TSBwZ19nZXRfdGFibGVzcGFjZV9kZGwoJ3JlZ3Jlc3NfYWxsb3B0X3RibHNwJyl9KTsKK2xp a2UoJHJlc3VsdCwgcXIvQ1JFQVRFIFRBQkxFU1BBQ0UgcmVncmVzc19hbGxvcHRfdGJsc3Av LAorCSd0YWJsZXNwYWNlIERETCBpbmNsdWRlcyBDUkVBVEUnKTsKK2xpa2UoJHJlc3VsdCwg cXIvT1dORVIgcmVncmVzc19yb2xlX2RkbF90ZXN0MS8sCisJJ3RhYmxlc3BhY2UgRERMIGlu Y2x1ZGVzIE9XTkVSJyk7CitsaWtlKCRyZXN1bHQsIHFyL3NlcV9wYWdlX2Nvc3Q9JzEuNScv LCAndGFibGVzcGFjZSBEREwgaW5jbHVkZXMgb3B0aW9ucycpOworCisjIFByZXR0eS1wcmlu dGVkIG91dHB1dAorJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlx e1NFTEVDVCAqIEZST00gcGdfZ2V0X3RhYmxlc3BhY2VfZGRsKCdyZWdyZXNzX2FsbG9wdF90 YmxzcCcsCisJICAncHJldHR5JywgJ3RydWUnKX0pOworbGlrZSgkcmVzdWx0LCBxci9cblxz K09XTkVSLywgJ3RhYmxlc3BhY2UgRERMIHByZXR0eS1wcmludHMgT1dORVInKTsKKworIyBP d25lciBzdXBwcmVzc2VkCiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCXF7U0VMRUNUICogRlJPTSBwZ19nZXRfdGFibGVzcGFjZV9kZGwoJ3JlZ3Jlc3NfYWxs b3B0X3RibHNwJywKKwkgICdvd25lcicsICdmYWxzZScpfSk7Cit1bmxpa2UoJHJlc3VsdCwg cXIvT1dORVIvLCAndGFibGVzcGFjZSBEREwgb3duZXIgc3VwcHJlc3NlZCcpOworCisjIExv b2t1cCBieSBPSUQKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7 CisJU0VMRUNUIHBnX2dldF90YWJsZXNwYWNlX2RkbAorCUZST00gcGdfZ2V0X3RhYmxlc3Bh Y2VfZGRsKAorCSAgKFNFTEVDVCBvaWQgRlJPTSBwZ190YWJsZXNwYWNlCisJICAgV0hFUkUg c3BjbmFtZSA9ICdyZWdyZXNzX2FsbG9wdF90YmxzcCcpKX0pOworbGlrZSgkcmVzdWx0LCBx ci9DUkVBVEUgVEFCTEVTUEFDRSByZWdyZXNzX2FsbG9wdF90YmxzcC8sCisJJ3RhYmxlc3Bh Y2UgRERMIGJ5IE9JRCcpOworCisjIFBlcm1pc3Npb24gY2hlY2sKKyRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwlxe1JFVk9LRSBTRUxFQ1QgT04gcGdfdGFibGVzcGFjZSBGUk9N IFBVQkxJQ30pOworKCRyZXQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwoJ3Bv c3RncmVzJywKKwlxe1NFVCBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfbm9hY2Nlc3M7CisJICBT RUxFQ1QgKiBGUk9NIHBnX2dldF90YWJsZXNwYWNlX2RkbCgncmVncmVzc19hbGxvcHRfdGJs c3AnKX0pOworaXNudCgkcmV0LCAwLCAndGFibGVzcGFjZSBEREwgZGVuaWVkIHdpdGhvdXQg cGdfdGFibGVzcGFjZSBhY2Nlc3MnKTsKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXsKKwlHUkFOVCBTRUxFQ1QgT04gcGdfdGFibGVzcGFjZSBUTyBQVUJMSUN9KTsKKworJG5v ZGUtPnN0b3A7CisKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9kYXRhYmFzZV9kZGwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9kYXRhYmFzZV9kZGwub3V0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5 NzY1N2U1MmNmYS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9kYXRhYmFzZV9kZGwub3V0CisrKyAvZGV2L251bGwKQEAgLTEsODggKzAsMCBAQAotLS0K LS0tIFRlc3RzIGZvciBwZ19nZXRfZGF0YWJhc2VfZGRsKCkKLS0tCi0tLSBUbyBwcm9kdWNl IHN0YWJsZSByZWdyZXNzaW9uIHRlc3Qgb3V0cHV0LCBzdHJpcCBsb2NhbGUvY29sbGF0aW9u IGRldGFpbHMKLS0tIGZyb20gdGhlIERETCBvdXRwdXQuICBVc2VzIGEgcGxhaW4gU1FMIGZ1 bmN0aW9uIHRvIGF2b2lkIGEgUEwvcGdTUUwKLS0tIGRlcGVuZGVuY3kuCi1DUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiBkZGxfZmlsdGVyKGRkbF9pbnB1dCBURVhUKQotUkVUVVJOUyBU RVhUIExBTkdVQUdFIHNxbCBBUyAkJAotU0VMRUNUIHJlZ2V4cF9yZXBsYWNlKAotICByZWdl eHBfcmVwbGFjZSgKLSAgICByZWdleHBfcmVwbGFjZSgKLSAgICAgIHJlZ2V4cF9yZXBsYWNl KAotICAgICAgICByZWdleHBfcmVwbGFjZSgKLSAgICAgICAgICBkZGxfaW5wdXQsCi0gICAg ICAgICAgJ1xzKlxtTE9DQUxFX1BST1ZJREVSXE1ccyo9XHMqKFsnJyJdP1teJyciXHNdK1sn JyJdPyknLCAnJywgJ2dpJyksCi0gICAgICAgICdccypMQ19DT0xMQVRFXHMqPVxzKihbJyci XSlbXicnIl0qXDEnLCAnJywgJ2dpJyksCi0gICAgICAnXHMqTENfQ1RZUEVccyo9XHMqKFsn JyJdKVteJyciXSpcMScsICcnLCAnZ2knKSwKLSAgICAnXHMqXFMqTE9DQUxFXFMqXHMqPT9c cyooWycnIl0pW14nJyJdKlwxJywgJycsICdnaScpLAotICAnXHMqXFMqQ09MTEFUSU9OXFMq XHMqPT9ccyooWycnIl0pW14nJyJdKlwxJywgJycsICdnaScpCi0kJDsKLUNSRUFURSBST0xF IHJlZ3Jlc3NfZGF0ZGJhOwotQ1JFQVRFIERBVEFCQVNFIHJlZ3Jlc3Npb25fZGF0YWJhc2Vf ZGRsCi0gICAgRU5DT0RJTkcgdXRmOCBMQ19DT0xMQVRFICJDIiBMQ19DVFlQRSAiQyIgVEVN UExBVEUgdGVtcGxhdGUwCi0gICAgT1dORVIgcmVncmVzc19kYXRkYmE7Ci1BTFRFUiBEQVRB QkFTRSByZWdyZXNzaW9uX2RhdGFiYXNlX2RkbCBDT05ORUNUSU9OX0xJTUlUIDEyMzsKLUFM VEVSIERBVEFCQVNFIHJlZ3Jlc3Npb25fZGF0YWJhc2VfZGRsIFNFVCByYW5kb21fcGFnZV9j b3N0ID0gMi4wOwotQUxURVIgUk9MRSByZWdyZXNzX2RhdGRiYSBJTiBEQVRBQkFTRSByZWdy ZXNzaW9uX2RhdGFiYXNlX2RkbCBTRVQgcmFuZG9tX3BhZ2VfY29zdCA9IDEuMTsKLS0tIERh dGFiYXNlIGRvZXNuJ3QgZXhpc3QKLVNFTEVDVCAqIEZST00gcGdfZ2V0X2RhdGFiYXNlX2Rk bCgncmVncmVzc2lvbl9kYXRhYmFzZScpOwotRVJST1I6ICBkYXRhYmFzZSAicmVncmVzc2lv bl9kYXRhYmFzZSIgZG9lcyBub3QgZXhpc3QKLUxJTkUgMTogU0VMRUNUICogRlJPTSBwZ19n ZXRfZGF0YWJhc2VfZGRsKCdyZWdyZXNzaW9uX2RhdGFiYXNlJyk7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi0tLSBOVUxMIHZhbHVlCi1TRUxFQ1Qg KiBGUk9NIHBnX2dldF9kYXRhYmFzZV9kZGwoTlVMTCk7Ci0gcGdfZ2V0X2RhdGFiYXNlX2Rk bCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKDAgcm93cykKLQotLS0gSW52YWxpZCBvcHRp b24gdmFsdWUgKHNob3VsZCBlcnJvcikKLVNFTEVDVCAqIEZST00gcGdfZ2V0X2RhdGFiYXNl X2RkbCgncmVncmVzc2lvbl9kYXRhYmFzZV9kZGwnLCAnb3duZXInLCAnaW52YWxpZCcpOwot RVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBib29sZWFuIG9wdGlvbiAib3duZXIiOiBpbnZh bGlkCi0tLSBEdXBsaWNhdGUgb3B0aW9uIChzaG91bGQgZXJyb3IpCi1TRUxFQ1QgKiBGUk9N IHBnX2dldF9kYXRhYmFzZV9kZGwoJ3JlZ3Jlc3Npb25fZGF0YWJhc2VfZGRsJywgJ293bmVy JywgJ2ZhbHNlJywgJ293bmVyJywgJ3RydWUnKTsKLUVSUk9SOiAgb3B0aW9uICJvd25lciIg aXMgc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlCi0tLSBXaXRob3V0IG9wdGlvbnMKLVNFTEVD VCBkZGxfZmlsdGVyKHBnX2dldF9kYXRhYmFzZV9kZGwpIEZST00gcGdfZ2V0X2RhdGFiYXNl X2RkbCgncmVncmVzc2lvbl9kYXRhYmFzZV9kZGwnKTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGRsX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIENSRUFU RSBEQVRBQkFTRSByZWdyZXNzaW9uX2RhdGFiYXNlX2RkbCBXSVRIIFRFTVBMQVRFID0gdGVt cGxhdGUwIEVOQ09ESU5HID0gJ1VURjgnOwotIEFMVEVSIERBVEFCQVNFIHJlZ3Jlc3Npb25f ZGF0YWJhc2VfZGRsIE9XTkVSIFRPIHJlZ3Jlc3NfZGF0ZGJhOwotIEFMVEVSIERBVEFCQVNF IHJlZ3Jlc3Npb25fZGF0YWJhc2VfZGRsIENPTk5FQ1RJT04gTElNSVQgPSAxMjM7Ci0gQUxU RVIgREFUQUJBU0UgcmVncmVzc2lvbl9kYXRhYmFzZV9kZGwgU0VUIHJhbmRvbV9wYWdlX2Nv c3QgVE8gJzIuMCc7Ci0oNCByb3dzKQotCi0tLSBXaXRoIG93bmVyCi1TRUxFQ1QgZGRsX2Zp bHRlcihwZ19nZXRfZGF0YWJhc2VfZGRsKSBGUk9NIHBnX2dldF9kYXRhYmFzZV9kZGwoJ3Jl Z3Jlc3Npb25fZGF0YWJhc2VfZGRsJywgJ293bmVyJywgJ3RydWUnKTsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGRsX2ZpbHRlciAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIENSRUFURSBEQVRBQkFTRSByZWdyZXNzaW9uX2RhdGFiYXNlX2RkbCBXSVRIIFRFTVBM QVRFID0gdGVtcGxhdGUwIEVOQ09ESU5HID0gJ1VURjgnOwotIEFMVEVSIERBVEFCQVNFIHJl Z3Jlc3Npb25fZGF0YWJhc2VfZGRsIE9XTkVSIFRPIHJlZ3Jlc3NfZGF0ZGJhOwotIEFMVEVS IERBVEFCQVNFIHJlZ3Jlc3Npb25fZGF0YWJhc2VfZGRsIENPTk5FQ1RJT04gTElNSVQgPSAx MjM7Ci0gQUxURVIgREFUQUJBU0UgcmVncmVzc2lvbl9kYXRhYmFzZV9kZGwgU0VUIHJhbmRv bV9wYWdlX2Nvc3QgVE8gJzIuMCc7Ci0oNCByb3dzKQotCi0tLSBQcmV0dHktcHJpbnRlZCBv dXRwdXQKLVxwc2V0IGZvcm1hdCB1bmFsaWduZWQKLVNFTEVDVCBkZGxfZmlsdGVyKHBnX2dl dF9kYXRhYmFzZV9kZGwpIEZST00gcGdfZ2V0X2RhdGFiYXNlX2RkbCgncmVncmVzc2lvbl9k YXRhYmFzZV9kZGwnLCAncHJldHR5JywgJ3RydWUnLCAndGFibGVzcGFjZScsICdmYWxzZScp OwotZGRsX2ZpbHRlcgotQ1JFQVRFIERBVEFCQVNFIHJlZ3Jlc3Npb25fZGF0YWJhc2VfZGRs Ci0gICAgV0lUSCBURU1QTEFURSA9IHRlbXBsYXRlMAotICAgIEVOQ09ESU5HID0gJ1VURjgn OwotQUxURVIgREFUQUJBU0UgcmVncmVzc2lvbl9kYXRhYmFzZV9kZGwgT1dORVIgVE8gcmVn cmVzc19kYXRkYmE7Ci1BTFRFUiBEQVRBQkFTRSByZWdyZXNzaW9uX2RhdGFiYXNlX2RkbCBD T05ORUNUSU9OIExJTUlUID0gMTIzOwotQUxURVIgREFUQUJBU0UgcmVncmVzc2lvbl9kYXRh YmFzZV9kZGwgU0VUIHJhbmRvbV9wYWdlX2Nvc3QgVE8gJzIuMCc7Ci0oNCByb3dzKQotXHBz ZXQgZm9ybWF0IGFsaWduZWQKLS0tIFBlcm1pc3Npb24gY2hlY2s6IHJldm9rZSBDT05ORUNU IG9uIGRhdGFiYXNlCi1DUkVBVEUgUk9MRSByZWdyZXNzX2RiX2RkbF9ub2FjY2VzczsKLVJF Vk9LRSBDT05ORUNUIE9OIERBVEFCQVNFIHJlZ3Jlc3Npb25fZGF0YWJhc2VfZGRsIEZST00g UFVCTElDOwotU0VUIFJPTEUgcmVncmVzc19kYl9kZGxfbm9hY2Nlc3M7Ci1TRUxFQ1QgKiBG Uk9NIHBnX2dldF9kYXRhYmFzZV9kZGwoJ3JlZ3Jlc3Npb25fZGF0YWJhc2VfZGRsJyk7ICAt LSBzaG91bGQgZmFpbAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgZGF0YWJhc2Ug cmVncmVzc2lvbl9kYXRhYmFzZV9kZGwKLVJFU0VUIFJPTEU7Ci1HUkFOVCBDT05ORUNUIE9O IERBVEFCQVNFIHJlZ3Jlc3Npb25fZGF0YWJhc2VfZGRsIFRPIFBVQkxJQzsKLURST1AgUk9M RSByZWdyZXNzX2RiX2RkbF9ub2FjY2VzczsKLURST1AgREFUQUJBU0UgcmVncmVzc2lvbl9k YXRhYmFzZV9kZGw7Ci1EUk9QIEZVTkNUSU9OIGRkbF9maWx0ZXIodGV4dCk7Ci1EUk9QIFJP TEUgcmVncmVzc19kYXRkYmE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3JvbGVfZGRsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm9sZV9kZGwu b3V0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzUxMTFkYTU1Yy4uMDAwMDAw MDAwMDAKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yb2xlX2RkbC5vdXQKKysr IC9kZXYvbnVsbApAQCAtMSwxNDMgKzAsMCBAQAotLS0gQ29uc2lzdGVudCB0ZXN0IHJlc3Vs dHMKLVNFVCB0aW1lem9uZSBUTyAnVVRDJzsKLVNFVCBEYXRlU3R5bGUgVE8gJ0lTTywgWU1E JzsKLS0tIENyZWF0ZSB0ZXN0IGRhdGFiYXNlCi1DUkVBVEUgREFUQUJBU0UgcmVncmVzc2lv bl9yb2xlX2RkbF90ZXN0OwotLS0gQmFzaWMgcm9sZQotQ1JFQVRFIFJPTEUgcmVncmVzc19y b2xlX2RkbF90ZXN0MTsKLVNFTEVDVCAqIEZST00gcGdfZ2V0X3JvbGVfZGRsKCdyZWdyZXNz X3JvbGVfZGRsX3Rlc3QxJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBnX2dldF9yb2xlX2RkbCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gQ1JFQVRFIFJPTEUgcmVn cmVzc19yb2xlX2RkbF90ZXN0MSBOT1NVUEVSVVNFUiBJTkhFUklUIE5PQ1JFQVRFUk9MRSBO T0NSRUFURURCIE5PTE9HSU4gTk9SRVBMSUNBVElPTiBOT0JZUEFTU1JMUzsKLSgxIHJvdykK LQotLS0gUm9sZSB3aXRoIExPR0lOCi1DUkVBVEUgUk9MRSByZWdyZXNzX3JvbGVfZGRsX3Rl c3QyIExPR0lOOwotU0VMRUNUICogRlJPTSBwZ19nZXRfcm9sZV9kZGwoJ3JlZ3Jlc3Nfcm9s ZV9kZGxfdGVzdDInKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwZ19nZXRfcm9sZV9kZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIENSRUFURSBST0xFIHJlZ3Jlc3Nfcm9s ZV9kZGxfdGVzdDIgTk9TVVBFUlVTRVIgSU5IRVJJVCBOT0NSRUFURVJPTEUgTk9DUkVBVEVE QiBMT0dJTiBOT1JFUExJQ0FUSU9OIE5PQllQQVNTUkxTOwotKDEgcm93KQotCi0tLSBSb2xl IHdpdGggbXVsdGlwbGUgcHJpdmlsZWdlcwotQ1JFQVRFIFJPTEUgcmVncmVzc19yb2xlX2Rk bF90ZXN0MwotICBMT0dJTgotICBTVVBFUlVTRVIKLSAgQ1JFQVRFREIKLSAgQ1JFQVRFUk9M RQotICBDT05ORUNUSU9OIExJTUlUIDUKLSAgVkFMSUQgVU5USUwgJzIwMzAtMTItMzEgMjM6 NTk6NTkrMDAnOwotU0VMRUNUICogRlJPTSBwZ19nZXRfcm9sZV9kZGwoJ3JlZ3Jlc3Nfcm9s ZV9kZGxfdGVzdDMnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3JvbGVfZGRsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBDUkVBVEUgUk9MRSByZWdyZXNzX3JvbGVfZGRsX3Rl c3QzIFNVUEVSVVNFUiBJTkhFUklUIENSRUFURVJPTEUgQ1JFQVRFREIgTE9HSU4gTk9SRVBM SUNBVElPTiBOT0JZUEFTU1JMUyBDT05ORUNUSU9OIExJTUlUIDUgVkFMSUQgVU5USUwgJzIw MzAtMTItMzEgMjM6NTk6NTkrMDAnOwotKDEgcm93KQotCi0tLSBSb2xlIHdpdGggY29uZmln dXJhdGlvbiBwYXJhbWV0ZXJzCi1DUkVBVEUgUk9MRSByZWdyZXNzX3JvbGVfZGRsX3Rlc3Q0 OwotQUxURVIgUk9MRSByZWdyZXNzX3JvbGVfZGRsX3Rlc3Q0IFNFVCB3b3JrX21lbSBUTyAn MjU2TUInOwotQUxURVIgUk9MRSByZWdyZXNzX3JvbGVfZGRsX3Rlc3Q0IFNFVCBzZWFyY2hf cGF0aCBUTyBteXNjaGVtYSwgcHVibGljOwotU0VMRUNUICogRlJPTSBwZ19nZXRfcm9sZV9k ZGwoJ3JlZ3Jlc3Nfcm9sZV9kZGxfdGVzdDQnKTsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3JvbGVfZGRsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBDUkVB VEUgUk9MRSByZWdyZXNzX3JvbGVfZGRsX3Rlc3Q0IE5PU1VQRVJVU0VSIElOSEVSSVQgTk9D UkVBVEVST0xFIE5PQ1JFQVRFREIgTk9MT0dJTiBOT1JFUExJQ0FUSU9OIE5PQllQQVNTUkxT OwotIEFMVEVSIFJPTEUgcmVncmVzc19yb2xlX2RkbF90ZXN0NCBTRVQgd29ya19tZW0gVE8g JzI1Nk1CJzsKLSBBTFRFUiBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfdGVzdDQgU0VUIHNlYXJj aF9wYXRoIFRPICdteXNjaGVtYScsICdwdWJsaWMnOwotKDMgcm93cykKLQotLS0gUm9sZSB3 aXRoIGRhdGFiYXNlLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24KLUNSRUFURSBST0xFIHJlZ3Jl c3Nfcm9sZV9kZGxfdGVzdDU7Ci1BTFRFUiBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfdGVzdDUg SU4gREFUQUJBU0UgcmVncmVzc2lvbl9yb2xlX2RkbF90ZXN0IFNFVCB3b3JrX21lbSBUTyAn MTI4TUInOwotU0VMRUNUICogRlJPTSBwZ19nZXRfcm9sZV9kZGwoJ3JlZ3Jlc3Nfcm9sZV9k ZGxfdGVzdDUnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGdfZ2V0X3JvbGVfZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBDUkVBVEUgUk9MRSByZWdyZXNzX3Jv bGVfZGRsX3Rlc3Q1IE5PU1VQRVJVU0VSIElOSEVSSVQgTk9DUkVBVEVST0xFIE5PQ1JFQVRF REIgTk9MT0dJTiBOT1JFUExJQ0FUSU9OIE5PQllQQVNTUkxTOwotIEFMVEVSIFJPTEUgcmVn cmVzc19yb2xlX2RkbF90ZXN0NSBJTiBEQVRBQkFTRSByZWdyZXNzaW9uX3JvbGVfZGRsX3Rl c3QgU0VUIHdvcmtfbWVtIFRPICcxMjhNQic7Ci0oMiByb3dzKQotCi0tLSBSb2xlIHdpdGgg c3BlY2lhbCBjaGFyYWN0ZXJzIChyZXF1aXJlcyBxdW90aW5nKQotQ1JFQVRFIFJPTEUgInJl Z3Jlc3Nfcm9sZS13aXRoLWRhc2giOwotU0VMRUNUICogRlJPTSBwZ19nZXRfcm9sZV9kZGwo J3JlZ3Jlc3Nfcm9sZS13aXRoLWRhc2gnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9yb2xlX2RkbCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gQ1JF QVRFIFJPTEUgInJlZ3Jlc3Nfcm9sZS13aXRoLWRhc2giIE5PU1VQRVJVU0VSIElOSEVSSVQg Tk9DUkVBVEVST0xFIE5PQ1JFQVRFREIgTk9MT0dJTiBOT1JFUExJQ0FUSU9OIE5PQllQQVNT UkxTOwotKDEgcm93KQotCi0tLSBQcmV0dHktcHJpbnRlZCBvdXRwdXQKLVxwc2V0IGZvcm1h dCB1bmFsaWduZWQKLVNFTEVDVCAqIEZST00gcGdfZ2V0X3JvbGVfZGRsKCdyZWdyZXNzX3Jv bGVfZGRsX3Rlc3QzJywgJ3ByZXR0eScsICd0cnVlJyk7Ci1wZ19nZXRfcm9sZV9kZGwKLUNS RUFURSBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfdGVzdDMKLSAgICBTVVBFUlVTRVIKLSAgICBJ TkhFUklUCi0gICAgQ1JFQVRFUk9MRQotICAgIENSRUFURURCCi0gICAgTE9HSU4KLSAgICBO T1JFUExJQ0FUSU9OCi0gICAgTk9CWVBBU1NSTFMKLSAgICBDT05ORUNUSU9OIExJTUlUIDUK LSAgICBWQUxJRCBVTlRJTCAnMjAzMC0xMi0zMSAyMzo1OTo1OSswMCc7Ci0oMSByb3cpCi1c cHNldCBmb3JtYXQgYWxpZ25lZAotLS0gUm9sZSB3aXRoIG1lbWJlcnNoaXBzCi1DUkVBVEUg Uk9MRSByZWdyZXNzX3JvbGVfZGRsX2dyYW50b3IgQ1JFQVRFUk9MRTsKLUNSRUFURSBST0xF IHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JvdXAxOwotQ1JFQVRFIFJPTEUgcmVncmVzc19yb2xlX2Rk bF9ncm91cDI7Ci1DUkVBVEUgUk9MRSByZWdyZXNzX3JvbGVfZGRsX21lbWJlcjsKLUdSQU5U IHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JvdXAxIFRPIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JhbnRvciBX SVRIIEFETUlOIFRSVUU7Ci1HUkFOVCByZWdyZXNzX3JvbGVfZGRsX2dyb3VwMiBUTyByZWdy ZXNzX3JvbGVfZGRsX2dyYW50b3IgV0lUSCBBRE1JTiBUUlVFOwotU0VUIFJPTEUgcmVncmVz c19yb2xlX2RkbF9ncmFudG9yOwotR1JBTlQgcmVncmVzc19yb2xlX2RkbF9ncm91cDEgVE8g cmVncmVzc19yb2xlX2RkbF9tZW1iZXIgV0lUSCBJTkhFUklUIFRSVUUsIFNFVCBGQUxTRTsK LUdSQU5UIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JvdXAyIFRPIHJlZ3Jlc3Nfcm9sZV9kZGxfbWVt YmVyIFdJVEggQURNSU4gVFJVRTsKLVJFU0VUIFJPTEU7Ci1TRUxFQ1QgKiBGUk9NIHBnX2dl dF9yb2xlX2RkbCgncmVncmVzc19yb2xlX2RkbF9tZW1iZXInKTsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRf cm9sZV9kZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIENSRUFU RSBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfbWVtYmVyIE5PU1VQRVJVU0VSIElOSEVSSVQgTk9D UkVBVEVST0xFIE5PQ1JFQVRFREIgTk9MT0dJTiBOT1JFUExJQ0FUSU9OIE5PQllQQVNTUkxT OwotIEdSQU5UIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JvdXAxIFRPIHJlZ3Jlc3Nfcm9sZV9kZGxf bWVtYmVyIFdJVEggQURNSU4gRkFMU0UsIElOSEVSSVQgVFJVRSwgU0VUIEZBTFNFIEdSQU5U RUQgQlkgcmVncmVzc19yb2xlX2RkbF9ncmFudG9yOwotIEdSQU5UIHJlZ3Jlc3Nfcm9sZV9k ZGxfZ3JvdXAyIFRPIHJlZ3Jlc3Nfcm9sZV9kZGxfbWVtYmVyIFdJVEggQURNSU4gVFJVRSwg SU5IRVJJVCBUUlVFLCBTRVQgVFJVRSBHUkFOVEVEIEJZIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3Jh bnRvcjsKLSgzIHJvd3MpCi0KLS0tIFJvbGUgd2l0aCBtZW1iZXJzaGlwcyBzdXBwcmVzc2Vk Ci1TRUxFQ1QgKiBGUk9NIHBnX2dldF9yb2xlX2RkbCgncmVncmVzc19yb2xlX2RkbF9tZW1i ZXInLCAnbWVtYmVyc2hpcHMnLCAnZmFsc2UnKTsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3JvbGVfZGRsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIENS RUFURSBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfbWVtYmVyIE5PU1VQRVJVU0VSIElOSEVSSVQg Tk9DUkVBVEVST0xFIE5PQ1JFQVRFREIgTk9MT0dJTiBOT1JFUExJQ0FUSU9OIE5PQllQQVNT UkxTOwotKDEgcm93KQotCi0tLSBOb24tZXhpc3RlbnQgcm9sZSAoc2hvdWxkIGVycm9yKQot U0VMRUNUICogRlJPTSBwZ19nZXRfcm9sZV9kZGwoOTk5OTk5OTo6b2lkKTsKLUVSUk9SOiAg cm9sZSB3aXRoIE9JRCA5OTk5OTk5IGRvZXMgbm90IGV4aXN0Ci0tLSBOVUxMIGlucHV0IChz aG91bGQgcmV0dXJuIG5vIHJvd3MpCi1TRUxFQ1QgKiBGUk9NIHBnX2dldF9yb2xlX2RkbChO VUxMKTsKLSBwZ19nZXRfcm9sZV9kZGwgCi0tLS0tLS0tLS0tLS0tLS0tLQotKDAgcm93cykK LQotLS0gUGVybWlzc2lvbiBjaGVjazogcmV2b2tlIFNFTEVDVCBvbiBwZ19hdXRoaWQKLUNS RUFURSBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfbm9hY2Nlc3M7Ci1SRVZPS0UgU0VMRUNUIE9O IHBnX2F1dGhpZCBGUk9NIFBVQkxJQzsKLVNFVCBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfbm9h Y2Nlc3M7Ci1TRUxFQ1QgKiBGUk9NIHBnX2dldF9yb2xlX2RkbCgncmVncmVzc19yb2xlX2Rk bF90ZXN0MScpOyAgLS0gc2hvdWxkIGZhaWwKLUVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHJvbGUgcmVncmVzc19yb2xlX2RkbF90ZXN0MQotUkVTRVQgUk9MRTsKLUdSQU5UIFNF TEVDVCBPTiBwZ19hdXRoaWQgVE8gUFVCTElDOwotRFJPUCBST0xFIHJlZ3Jlc3Nfcm9sZV9k ZGxfbm9hY2Nlc3M7Ci0tLSBDbGVhbnVwCi1EUk9QIFJPTEUgcmVncmVzc19yb2xlX2RkbF90 ZXN0MTsKLURST1AgUk9MRSByZWdyZXNzX3JvbGVfZGRsX3Rlc3QyOwotRFJPUCBST0xFIHJl Z3Jlc3Nfcm9sZV9kZGxfdGVzdDM7Ci1EUk9QIFJPTEUgcmVncmVzc19yb2xlX2RkbF90ZXN0 NDsKLURST1AgUk9MRSByZWdyZXNzX3JvbGVfZGRsX3Rlc3Q1OwotRFJPUCBST0xFICJyZWdy ZXNzX3JvbGUtd2l0aC1kYXNoIjsKLVNFVCBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JhbnRv cjsKLVJFVk9LRSByZWdyZXNzX3JvbGVfZGRsX2dyb3VwMSBGUk9NIHJlZ3Jlc3Nfcm9sZV9k ZGxfbWVtYmVyOwotUkVWT0tFIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JvdXAyIEZST00gcmVncmVz c19yb2xlX2RkbF9tZW1iZXI7Ci1SRVNFVCBST0xFOwotRFJPUCBST0xFIHJlZ3Jlc3Nfcm9s ZV9kZGxfbWVtYmVyOwotRFJPUCBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JvdXAxOwotRFJP UCBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JvdXAyOwotRFJPUCBST0xFIHJlZ3Jlc3Nfcm9s ZV9kZGxfZ3JhbnRvcjsKLURST1AgREFUQUJBU0UgcmVncmVzc2lvbl9yb2xlX2RkbF90ZXN0 OwotLS0gUmVzZXQgdGltZXpvbmUgdG8gZGVmYXVsdAotUkVTRVQgdGltZXpvbmU7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RhYmxlc3BhY2VfZGRsLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGFibGVzcGFjZV9kZGwub3V0CmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTIwNDMyNzNhOS4uMDAwMDAwMDAwMDAKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90YWJsZXNwYWNlX2RkbC5vdXQKKysrIC9kZXYv bnVsbApAQCAtMSw4NCArMCwwIEBACi0tLQotLS0gVGVzdHMgZm9yIHBnX2dldF90YWJsZXNw YWNlX2RkbCgpCi0tLQotU0VUIGFsbG93X2luX3BsYWNlX3RhYmxlc3BhY2VzID0gdHJ1ZTsK LUNSRUFURSBST0xFIHJlZ3Jlc3NfdGJsc3BjX2RkbF91c2VyOwotLS0gZXJyb3I6IG5vbi1l eGlzdGVudCB0YWJsZXNwYWNlIGJ5IG5hbWUKLVNFTEVDVCAqIEZST00gcGdfZ2V0X3RhYmxl c3BhY2VfZGRsKCdyZWdyZXNzX25vbmV4aXN0ZW50X3RibHNwJyk7Ci1FUlJPUjogIHRhYmxl c3BhY2UgInJlZ3Jlc3Nfbm9uZXhpc3RlbnRfdGJsc3AiIGRvZXMgbm90IGV4aXN0Ci0tLSBl cnJvcjogbm9uLWV4aXN0ZW50IHRhYmxlc3BhY2UgYnkgT0lECi1TRUxFQ1QgKiBGUk9NIHBn X2dldF90YWJsZXNwYWNlX2RkbCgwOjpvaWQpOwotRVJST1I6ICB0YWJsZXNwYWNlIHdpdGgg T0lEIDAgZG9lcyBub3QgZXhpc3QKLS0tIE5VTEwgaW5wdXQgcmV0dXJucyBubyByb3dzIChu YW1lIHZhcmlhbnQpCi1TRUxFQ1QgKiBGUk9NIHBnX2dldF90YWJsZXNwYWNlX2RkbChOVUxM OjpuYW1lKTsKLSBwZ19nZXRfdGFibGVzcGFjZV9kZGwgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKDAgcm93cykKLQotLS0gTlVMTCBpbnB1dCByZXR1cm5zIG5vIHJvd3MgKE9JRCB2 YXJpYW50KQotU0VMRUNUICogRlJPTSBwZ19nZXRfdGFibGVzcGFjZV9kZGwoTlVMTDo6b2lk KTsKLSBwZ19nZXRfdGFibGVzcGFjZV9kZGwgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KDAgcm93cykKLQotLS0gdGFibGVzcGFjZSBuYW1lIHJlcXVpcmluZyBxdW90aW5nCi1DUkVB VEUgVEFCTEVTUEFDRSAicmVncmVzc18gdGJsc3AiIE9XTkVSIHJlZ3Jlc3NfdGJsc3BjX2Rk bF91c2VyIExPQ0FUSU9OICcnOwotU0VMRUNUICogRlJPTSBwZ19nZXRfdGFibGVzcGFjZV9k ZGwoJ3JlZ3Jlc3NfIHRibHNwJyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBn X2dldF90YWJsZXNwYWNlX2RkbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gQ1JFQVRFIFRBQkxFU1BBQ0UgInJlZ3Jlc3NfIHRi bHNwIiBPV05FUiByZWdyZXNzX3RibHNwY19kZGxfdXNlciBMT0NBVElPTiAnJzsKLSgxIHJv dykKLQotRFJPUCBUQUJMRVNQQUNFICJyZWdyZXNzXyB0YmxzcCI7Ci0tLSB0YWJsZXNwYWNl IHdpdGggbXVsdGlwbGUgb3B0aW9ucwotQ1JFQVRFIFRBQkxFU1BBQ0UgcmVncmVzc19hbGxv cHRfdGJsc3AgT1dORVIgcmVncmVzc190YmxzcGNfZGRsX3VzZXIgTE9DQVRJT04gJycKLSAg V0lUSCAoc2VxX3BhZ2VfY29zdCA9ICcxLjUnLCByYW5kb21fcGFnZV9jb3N0ID0gJzEuMTIz NDU2Nzg5MCcsCi0gICAgICAgIGVmZmVjdGl2ZV9pb19jb25jdXJyZW5jeSA9ICcxNycsIG1h aW50ZW5hbmNlX2lvX2NvbmN1cnJlbmN5ID0gJzE4Jyk7Ci1TRUxFQ1QgKiBGUk9NIHBnX2dl dF90YWJsZXNwYWNlX2RkbCgncmVncmVzc19hbGxvcHRfdGJsc3AnKTsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGdfZ2V0X3RhYmxlc3BhY2VfZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBDUkVB VEUgVEFCTEVTUEFDRSByZWdyZXNzX2FsbG9wdF90YmxzcCBPV05FUiByZWdyZXNzX3RibHNw Y19kZGxfdXNlciBMT0NBVElPTiAnJzsKLSBBTFRFUiBUQUJMRVNQQUNFIHJlZ3Jlc3NfYWxs b3B0X3RibHNwIFNFVCAoc2VxX3BhZ2VfY29zdD0nMS41JywgcmFuZG9tX3BhZ2VfY29zdD0n MS4xMjM0NTY3ODkwJywgZWZmZWN0aXZlX2lvX2NvbmN1cnJlbmN5PScxNycsIG1haW50ZW5h bmNlX2lvX2NvbmN1cnJlbmN5PScxOCcpOwotKDIgcm93cykKLQotLS0gcHJldHR5LXByaW50 ZWQgb3V0cHV0Ci1ccHNldCBmb3JtYXQgdW5hbGlnbmVkCi1TRUxFQ1QgKiBGUk9NIHBnX2dl dF90YWJsZXNwYWNlX2RkbCgncmVncmVzc19hbGxvcHRfdGJsc3AnLCAncHJldHR5JywgJ3Ry dWUnKTsKLXBnX2dldF90YWJsZXNwYWNlX2RkbAotQ1JFQVRFIFRBQkxFU1BBQ0UgcmVncmVz c19hbGxvcHRfdGJsc3AKLSAgICBPV05FUiByZWdyZXNzX3RibHNwY19kZGxfdXNlcgotICAg IExPQ0FUSU9OICcnOwotQUxURVIgVEFCTEVTUEFDRSByZWdyZXNzX2FsbG9wdF90YmxzcCBT RVQgKHNlcV9wYWdlX2Nvc3Q9JzEuNScsIHJhbmRvbV9wYWdlX2Nvc3Q9JzEuMTIzNDU2Nzg5 MCcsIGVmZmVjdGl2ZV9pb19jb25jdXJyZW5jeT0nMTcnLCBtYWludGVuYW5jZV9pb19jb25j dXJyZW5jeT0nMTgnKTsKLSgyIHJvd3MpCi1ccHNldCBmb3JtYXQgYWxpZ25lZAotLS0gdGFi bGVzcGFjZSB3aXRoIG93bmVyIHN1cHByZXNzZWQKLVNFTEVDVCAqIEZST00gcGdfZ2V0X3Rh Ymxlc3BhY2VfZGRsKCdyZWdyZXNzX2FsbG9wdF90YmxzcCcsICdvd25lcicsICdmYWxzZScp OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdGFibGVzcGFjZV9kZGwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotIENSRUFURSBUQUJMRVNQQUNFIHJlZ3Jlc3NfYWxsb3B0X3RibHNwIExPQ0FU SU9OICcnOwotIEFMVEVSIFRBQkxFU1BBQ0UgcmVncmVzc19hbGxvcHRfdGJsc3AgU0VUIChz ZXFfcGFnZV9jb3N0PScxLjUnLCByYW5kb21fcGFnZV9jb3N0PScxLjEyMzQ1Njc4OTAnLCBl ZmZlY3RpdmVfaW9fY29uY3VycmVuY3k9JzE3JywgbWFpbnRlbmFuY2VfaW9fY29uY3VycmVu Y3k9JzE4Jyk7Ci0oMiByb3dzKQotCi1EUk9QIFRBQkxFU1BBQ0UgcmVncmVzc19hbGxvcHRf dGJsc3A7Ci0tLSB0ZXN0IGJ5IE9JRAotQ1JFQVRFIFRBQkxFU1BBQ0UgcmVncmVzc19vaWRf dGJsc3AgT1dORVIgcmVncmVzc190YmxzcGNfZGRsX3VzZXIgTE9DQVRJT04gJyc7Ci1TRUxF Q1Qgb2lkIEFTIHRzaWQgRlJPTSBwZ190YWJsZXNwYWNlIFdIRVJFIHNwY25hbWUgPSAncmVn cmVzc19vaWRfdGJsc3AnIFxnc2V0Ci1TRUxFQ1QgKiBGUk9NIHBnX2dldF90YWJsZXNwYWNl X2RkbCg6dHNpZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF90YWJs ZXNwYWNlX2RkbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSBDUkVBVEUgVEFCTEVTUEFDRSByZWdyZXNzX29pZF90YmxzcCBP V05FUiByZWdyZXNzX3RibHNwY19kZGxfdXNlciBMT0NBVElPTiAnJzsKLSgxIHJvdykKLQot RFJPUCBUQUJMRVNQQUNFIHJlZ3Jlc3Nfb2lkX3RibHNwOwotLS0gUGVybWlzc2lvbiBjaGVj azogcmV2b2tlIFNFTEVDVCBvbiBwZ190YWJsZXNwYWNlCi1DUkVBVEUgVEFCTEVTUEFDRSBy ZWdyZXNzX2FjbF90YmxzcCBPV05FUiByZWdyZXNzX3RibHNwY19kZGxfdXNlciBMT0NBVElP TiAnJzsKLUNSRUFURSBST0xFIHJlZ3Jlc3NfdGJsc3BjX2RkbF9ub2FjY2VzczsKLVJFVk9L RSBTRUxFQ1QgT04gcGdfdGFibGVzcGFjZSBGUk9NIFBVQkxJQzsKLVNFVCBST0xFIHJlZ3Jl c3NfdGJsc3BjX2RkbF9ub2FjY2VzczsKLVNFTEVDVCAqIEZST00gcGdfZ2V0X3RhYmxlc3Bh Y2VfZGRsKCdyZWdyZXNzX2FjbF90YmxzcCcpOyAgLS0gc2hvdWxkIGZhaWwKLUVSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlc3BhY2UgcmVncmVzc19hY2xfdGJsc3AKLVJF U0VUIFJPTEU7Ci1HUkFOVCBTRUxFQ1QgT04gcGdfdGFibGVzcGFjZSBUTyBQVUJMSUM7Ci1E Uk9QIFRBQkxFU1BBQ0UgcmVncmVzc19hY2xfdGJsc3A7Ci1EUk9QIFJPTEUgcmVncmVzc190 YmxzcGNfZGRsX25vYWNjZXNzOwotRFJPUCBST0xFIHJlZ3Jlc3NfdGJsc3BjX2RkbF91c2Vy OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggMjg4ZTk0ZGM0MDguLjAy YTU5NWUzMzY3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTEzNSw3 ICsxMzUsNiBAQCB0ZXN0OiBjb21wcmVzc2lvbiBjb21wcmVzc2lvbl9sejQgY29tcHJlc3Np b25fcGdsegogIyBvaWRqb2lucyBpcyByZWFkLW9ubHksIHRob3VnaCwgYW5kIHNob3VsZCBy dW4gbGF0ZSBmb3IgYmVzdCBjb3ZlcmFnZQogdGVzdDogb2lkam9pbnMgZXZlbnRfdHJpZ2dl cgogCi10ZXN0OiByb2xlX2RkbCB0YWJsZXNwYWNlX2RkbCBkYXRhYmFzZV9kZGwKIAogIyBl dmVudF90cmlnZ2VyX2xvZ2luIGNhbm5vdCBydW4gY29uY3VycmVudGx5IHdpdGggYW55IG90 aGVyIHRlc3RzIGJlY2F1c2UKICMgb24tbG9naW4gZXZlbnQgaGFuZGxpbmcgY291bGQgY2F0 Y2ggY29ubmVjdGlvbiBvZiBhIGNvbmN1cnJlbnQgdGVzdC4KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2RhdGFiYXNlX2RkbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9kYXRhYmFzZV9kZGwuc3FsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTc1 M2FjNjQxMS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGF0YWJh c2VfZGRsLnNxbAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS0tCi0tLSBUZXN0 cyBmb3IgcGdfZ2V0X2RhdGFiYXNlX2RkbCgpCi0tLQotCi0tLSBUbyBwcm9kdWNlIHN0YWJs ZSByZWdyZXNzaW9uIHRlc3Qgb3V0cHV0LCBzdHJpcCBsb2NhbGUvY29sbGF0aW9uIGRldGFp bHMKLS0tIGZyb20gdGhlIERETCBvdXRwdXQuICBVc2VzIGEgcGxhaW4gU1FMIGZ1bmN0aW9u IHRvIGF2b2lkIGEgUEwvcGdTUUwKLS0tIGRlcGVuZGVuY3kuCi0KLUNSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIGRkbF9maWx0ZXIoZGRsX2lucHV0IFRFWFQpCi1SRVRVUk5TIFRFWFQg TEFOR1VBR0Ugc3FsIEFTICQkCi1TRUxFQ1QgcmVnZXhwX3JlcGxhY2UoCi0gIHJlZ2V4cF9y ZXBsYWNlKAotICAgIHJlZ2V4cF9yZXBsYWNlKAotICAgICAgcmVnZXhwX3JlcGxhY2UoCi0g ICAgICAgIHJlZ2V4cF9yZXBsYWNlKAotICAgICAgICAgIGRkbF9pbnB1dCwKLSAgICAgICAg ICAnXHMqXG1MT0NBTEVfUFJPVklERVJcTVxzKj1ccyooWycnIl0/W14nJyJcc10rWycnIl0/ KScsICcnLCAnZ2knKSwKLSAgICAgICAgJ1xzKkxDX0NPTExBVEVccyo9XHMqKFsnJyJdKVte JyciXSpcMScsICcnLCAnZ2knKSwKLSAgICAgICdccypMQ19DVFlQRVxzKj1ccyooWycnIl0p W14nJyJdKlwxJywgJycsICdnaScpLAotICAgICdccypcUypMT0NBTEVcUypccyo9P1xzKihb JyciXSlbXicnIl0qXDEnLCAnJywgJ2dpJyksCi0gICdccypcUypDT0xMQVRJT05cUypccyo9 P1xzKihbJyciXSlbXicnIl0qXDEnLCAnJywgJ2dpJykKLSQkOwotCi1DUkVBVEUgUk9MRSBy ZWdyZXNzX2RhdGRiYTsKLUNSRUFURSBEQVRBQkFTRSByZWdyZXNzaW9uX2RhdGFiYXNlX2Rk bAotICAgIEVOQ09ESU5HIHV0ZjggTENfQ09MTEFURSAiQyIgTENfQ1RZUEUgIkMiIFRFTVBM QVRFIHRlbXBsYXRlMAotICAgIE9XTkVSIHJlZ3Jlc3NfZGF0ZGJhOwotQUxURVIgREFUQUJB U0UgcmVncmVzc2lvbl9kYXRhYmFzZV9kZGwgQ09OTkVDVElPTl9MSU1JVCAxMjM7Ci1BTFRF UiBEQVRBQkFTRSByZWdyZXNzaW9uX2RhdGFiYXNlX2RkbCBTRVQgcmFuZG9tX3BhZ2VfY29z dCA9IDIuMDsKLUFMVEVSIFJPTEUgcmVncmVzc19kYXRkYmEgSU4gREFUQUJBU0UgcmVncmVz c2lvbl9kYXRhYmFzZV9kZGwgU0VUIHJhbmRvbV9wYWdlX2Nvc3QgPSAxLjE7Ci0KLS0tIERh dGFiYXNlIGRvZXNuJ3QgZXhpc3QKLVNFTEVDVCAqIEZST00gcGdfZ2V0X2RhdGFiYXNlX2Rk bCgncmVncmVzc2lvbl9kYXRhYmFzZScpOwotCi0tLSBOVUxMIHZhbHVlCi1TRUxFQ1QgKiBG Uk9NIHBnX2dldF9kYXRhYmFzZV9kZGwoTlVMTCk7Ci0KLS0tIEludmFsaWQgb3B0aW9uIHZh bHVlIChzaG91bGQgZXJyb3IpCi1TRUxFQ1QgKiBGUk9NIHBnX2dldF9kYXRhYmFzZV9kZGwo J3JlZ3Jlc3Npb25fZGF0YWJhc2VfZGRsJywgJ293bmVyJywgJ2ludmFsaWQnKTsKLQotLS0g RHVwbGljYXRlIG9wdGlvbiAoc2hvdWxkIGVycm9yKQotU0VMRUNUICogRlJPTSBwZ19nZXRf ZGF0YWJhc2VfZGRsKCdyZWdyZXNzaW9uX2RhdGFiYXNlX2RkbCcsICdvd25lcicsICdmYWxz ZScsICdvd25lcicsICd0cnVlJyk7Ci0KLS0tIFdpdGhvdXQgb3B0aW9ucwotU0VMRUNUIGRk bF9maWx0ZXIocGdfZ2V0X2RhdGFiYXNlX2RkbCkgRlJPTSBwZ19nZXRfZGF0YWJhc2VfZGRs KCdyZWdyZXNzaW9uX2RhdGFiYXNlX2RkbCcpOwotCi0tLSBXaXRoIG93bmVyCi1TRUxFQ1Qg ZGRsX2ZpbHRlcihwZ19nZXRfZGF0YWJhc2VfZGRsKSBGUk9NIHBnX2dldF9kYXRhYmFzZV9k ZGwoJ3JlZ3Jlc3Npb25fZGF0YWJhc2VfZGRsJywgJ293bmVyJywgJ3RydWUnKTsKLQotLS0g UHJldHR5LXByaW50ZWQgb3V0cHV0Ci1ccHNldCBmb3JtYXQgdW5hbGlnbmVkCi1TRUxFQ1Qg ZGRsX2ZpbHRlcihwZ19nZXRfZGF0YWJhc2VfZGRsKSBGUk9NIHBnX2dldF9kYXRhYmFzZV9k ZGwoJ3JlZ3Jlc3Npb25fZGF0YWJhc2VfZGRsJywgJ3ByZXR0eScsICd0cnVlJywgJ3RhYmxl c3BhY2UnLCAnZmFsc2UnKTsKLVxwc2V0IGZvcm1hdCBhbGlnbmVkCi0KLS0tIFBlcm1pc3Np b24gY2hlY2s6IHJldm9rZSBDT05ORUNUIG9uIGRhdGFiYXNlCi1DUkVBVEUgUk9MRSByZWdy ZXNzX2RiX2RkbF9ub2FjY2VzczsKLVJFVk9LRSBDT05ORUNUIE9OIERBVEFCQVNFIHJlZ3Jl c3Npb25fZGF0YWJhc2VfZGRsIEZST00gUFVCTElDOwotU0VUIFJPTEUgcmVncmVzc19kYl9k ZGxfbm9hY2Nlc3M7Ci1TRUxFQ1QgKiBGUk9NIHBnX2dldF9kYXRhYmFzZV9kZGwoJ3JlZ3Jl c3Npb25fZGF0YWJhc2VfZGRsJyk7ICAtLSBzaG91bGQgZmFpbAotUkVTRVQgUk9MRTsKLUdS QU5UIENPTk5FQ1QgT04gREFUQUJBU0UgcmVncmVzc2lvbl9kYXRhYmFzZV9kZGwgVE8gUFVC TElDOwotRFJPUCBST0xFIHJlZ3Jlc3NfZGJfZGRsX25vYWNjZXNzOwotCi1EUk9QIERBVEFC QVNFIHJlZ3Jlc3Npb25fZGF0YWJhc2VfZGRsOwotRFJPUCBGVU5DVElPTiBkZGxfZmlsdGVy KHRleHQpOwotRFJPUCBST0xFIHJlZ3Jlc3NfZGF0ZGJhOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcm9sZV9kZGwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcm9s ZV9kZGwuc3FsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDAxNDIyNDJlYy4u MDAwMDAwMDAwMDAKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcm9sZV9kZGwuc3FsCisr KyAvZGV2L251bGwKQEAgLTEsOTYgKzAsMCBAQAotLS0gQ29uc2lzdGVudCB0ZXN0IHJlc3Vs dHMKLVNFVCB0aW1lem9uZSBUTyAnVVRDJzsKLVNFVCBEYXRlU3R5bGUgVE8gJ0lTTywgWU1E JzsKLQotLS0gQ3JlYXRlIHRlc3QgZGF0YWJhc2UKLUNSRUFURSBEQVRBQkFTRSByZWdyZXNz aW9uX3JvbGVfZGRsX3Rlc3Q7Ci0KLS0tIEJhc2ljIHJvbGUKLUNSRUFURSBST0xFIHJlZ3Jl c3Nfcm9sZV9kZGxfdGVzdDE7Ci1TRUxFQ1QgKiBGUk9NIHBnX2dldF9yb2xlX2RkbCgncmVn cmVzc19yb2xlX2RkbF90ZXN0MScpOwotCi0tLSBSb2xlIHdpdGggTE9HSU4KLUNSRUFURSBS T0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfdGVzdDIgTE9HSU47Ci1TRUxFQ1QgKiBGUk9NIHBnX2dl dF9yb2xlX2RkbCgncmVncmVzc19yb2xlX2RkbF90ZXN0MicpOwotCi0tLSBSb2xlIHdpdGgg bXVsdGlwbGUgcHJpdmlsZWdlcwotQ1JFQVRFIFJPTEUgcmVncmVzc19yb2xlX2RkbF90ZXN0 MwotICBMT0dJTgotICBTVVBFUlVTRVIKLSAgQ1JFQVRFREIKLSAgQ1JFQVRFUk9MRQotICBD T05ORUNUSU9OIExJTUlUIDUKLSAgVkFMSUQgVU5USUwgJzIwMzAtMTItMzEgMjM6NTk6NTkr MDAnOwotU0VMRUNUICogRlJPTSBwZ19nZXRfcm9sZV9kZGwoJ3JlZ3Jlc3Nfcm9sZV9kZGxf dGVzdDMnKTsKLQotLS0gUm9sZSB3aXRoIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycwotQ1JF QVRFIFJPTEUgcmVncmVzc19yb2xlX2RkbF90ZXN0NDsKLUFMVEVSIFJPTEUgcmVncmVzc19y b2xlX2RkbF90ZXN0NCBTRVQgd29ya19tZW0gVE8gJzI1Nk1CJzsKLUFMVEVSIFJPTEUgcmVn cmVzc19yb2xlX2RkbF90ZXN0NCBTRVQgc2VhcmNoX3BhdGggVE8gbXlzY2hlbWEsIHB1Ymxp YzsKLVNFTEVDVCAqIEZST00gcGdfZ2V0X3JvbGVfZGRsKCdyZWdyZXNzX3JvbGVfZGRsX3Rl c3Q0Jyk7Ci0KLS0tIFJvbGUgd2l0aCBkYXRhYmFzZS1zcGVjaWZpYyBjb25maWd1cmF0aW9u Ci1DUkVBVEUgUk9MRSByZWdyZXNzX3JvbGVfZGRsX3Rlc3Q1OwotQUxURVIgUk9MRSByZWdy ZXNzX3JvbGVfZGRsX3Rlc3Q1IElOIERBVEFCQVNFIHJlZ3Jlc3Npb25fcm9sZV9kZGxfdGVz dCBTRVQgd29ya19tZW0gVE8gJzEyOE1CJzsKLVNFTEVDVCAqIEZST00gcGdfZ2V0X3JvbGVf ZGRsKCdyZWdyZXNzX3JvbGVfZGRsX3Rlc3Q1Jyk7Ci0KLS0tIFJvbGUgd2l0aCBzcGVjaWFs IGNoYXJhY3RlcnMgKHJlcXVpcmVzIHF1b3RpbmcpCi1DUkVBVEUgUk9MRSAicmVncmVzc19y b2xlLXdpdGgtZGFzaCI7Ci1TRUxFQ1QgKiBGUk9NIHBnX2dldF9yb2xlX2RkbCgncmVncmVz c19yb2xlLXdpdGgtZGFzaCcpOwotCi0tLSBQcmV0dHktcHJpbnRlZCBvdXRwdXQKLVxwc2V0 IGZvcm1hdCB1bmFsaWduZWQKLVNFTEVDVCAqIEZST00gcGdfZ2V0X3JvbGVfZGRsKCdyZWdy ZXNzX3JvbGVfZGRsX3Rlc3QzJywgJ3ByZXR0eScsICd0cnVlJyk7Ci1ccHNldCBmb3JtYXQg YWxpZ25lZAotCi0tLSBSb2xlIHdpdGggbWVtYmVyc2hpcHMKLUNSRUFURSBST0xFIHJlZ3Jl c3Nfcm9sZV9kZGxfZ3JhbnRvciBDUkVBVEVST0xFOwotQ1JFQVRFIFJPTEUgcmVncmVzc19y b2xlX2RkbF9ncm91cDE7Ci1DUkVBVEUgUk9MRSByZWdyZXNzX3JvbGVfZGRsX2dyb3VwMjsK LUNSRUFURSBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfbWVtYmVyOwotR1JBTlQgcmVncmVzc19y b2xlX2RkbF9ncm91cDEgVE8gcmVncmVzc19yb2xlX2RkbF9ncmFudG9yIFdJVEggQURNSU4g VFJVRTsKLUdSQU5UIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JvdXAyIFRPIHJlZ3Jlc3Nfcm9sZV9k ZGxfZ3JhbnRvciBXSVRIIEFETUlOIFRSVUU7Ci1TRVQgUk9MRSByZWdyZXNzX3JvbGVfZGRs X2dyYW50b3I7Ci1HUkFOVCByZWdyZXNzX3JvbGVfZGRsX2dyb3VwMSBUTyByZWdyZXNzX3Jv bGVfZGRsX21lbWJlciBXSVRIIElOSEVSSVQgVFJVRSwgU0VUIEZBTFNFOwotR1JBTlQgcmVn cmVzc19yb2xlX2RkbF9ncm91cDIgVE8gcmVncmVzc19yb2xlX2RkbF9tZW1iZXIgV0lUSCBB RE1JTiBUUlVFOwotUkVTRVQgUk9MRTsKLVNFTEVDVCAqIEZST00gcGdfZ2V0X3JvbGVfZGRs KCdyZWdyZXNzX3JvbGVfZGRsX21lbWJlcicpOwotCi0tLSBSb2xlIHdpdGggbWVtYmVyc2hp cHMgc3VwcHJlc3NlZAotU0VMRUNUICogRlJPTSBwZ19nZXRfcm9sZV9kZGwoJ3JlZ3Jlc3Nf cm9sZV9kZGxfbWVtYmVyJywgJ21lbWJlcnNoaXBzJywgJ2ZhbHNlJyk7Ci0KLS0tIE5vbi1l eGlzdGVudCByb2xlIChzaG91bGQgZXJyb3IpCi1TRUxFQ1QgKiBGUk9NIHBnX2dldF9yb2xl X2RkbCg5OTk5OTk5OjpvaWQpOwotCi0tLSBOVUxMIGlucHV0IChzaG91bGQgcmV0dXJuIG5v IHJvd3MpCi1TRUxFQ1QgKiBGUk9NIHBnX2dldF9yb2xlX2RkbChOVUxMKTsKLQotLS0gUGVy bWlzc2lvbiBjaGVjazogcmV2b2tlIFNFTEVDVCBvbiBwZ19hdXRoaWQKLUNSRUFURSBST0xF IHJlZ3Jlc3Nfcm9sZV9kZGxfbm9hY2Nlc3M7Ci1SRVZPS0UgU0VMRUNUIE9OIHBnX2F1dGhp ZCBGUk9NIFBVQkxJQzsKLVNFVCBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfbm9hY2Nlc3M7Ci1T RUxFQ1QgKiBGUk9NIHBnX2dldF9yb2xlX2RkbCgncmVncmVzc19yb2xlX2RkbF90ZXN0MScp OyAgLS0gc2hvdWxkIGZhaWwKLVJFU0VUIFJPTEU7Ci1HUkFOVCBTRUxFQ1QgT04gcGdfYXV0 aGlkIFRPIFBVQkxJQzsKLURST1AgUk9MRSByZWdyZXNzX3JvbGVfZGRsX25vYWNjZXNzOwot Ci0tLSBDbGVhbnVwCi1EUk9QIFJPTEUgcmVncmVzc19yb2xlX2RkbF90ZXN0MTsKLURST1Ag Uk9MRSByZWdyZXNzX3JvbGVfZGRsX3Rlc3QyOwotRFJPUCBST0xFIHJlZ3Jlc3Nfcm9sZV9k ZGxfdGVzdDM7Ci1EUk9QIFJPTEUgcmVncmVzc19yb2xlX2RkbF90ZXN0NDsKLURST1AgUk9M RSByZWdyZXNzX3JvbGVfZGRsX3Rlc3Q1OwotRFJPUCBST0xFICJyZWdyZXNzX3JvbGUtd2l0 aC1kYXNoIjsKLVNFVCBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JhbnRvcjsKLVJFVk9LRSBy ZWdyZXNzX3JvbGVfZGRsX2dyb3VwMSBGUk9NIHJlZ3Jlc3Nfcm9sZV9kZGxfbWVtYmVyOwot UkVWT0tFIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JvdXAyIEZST00gcmVncmVzc19yb2xlX2RkbF9t ZW1iZXI7Ci1SRVNFVCBST0xFOwotRFJPUCBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfbWVtYmVy OwotRFJPUCBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JvdXAxOwotRFJPUCBST0xFIHJlZ3Jl c3Nfcm9sZV9kZGxfZ3JvdXAyOwotRFJPUCBST0xFIHJlZ3Jlc3Nfcm9sZV9kZGxfZ3JhbnRv cjsKLQotRFJPUCBEQVRBQkFTRSByZWdyZXNzaW9uX3JvbGVfZGRsX3Rlc3Q7Ci0KLS0tIFJl c2V0IHRpbWV6b25lIHRvIGRlZmF1bHQKLVJFU0VUIHRpbWV6b25lOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvdGFibGVzcGFjZV9kZGwuc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvdGFibGVzcGFjZV9kZGwuc3FsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBlZTNjYzZlMmUxZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvdGFibGVzcGFjZV9kZGwuc3FsCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAot LS0KLS0tIFRlc3RzIGZvciBwZ19nZXRfdGFibGVzcGFjZV9kZGwoKQotLS0KLQotU0VUIGFs bG93X2luX3BsYWNlX3RhYmxlc3BhY2VzID0gdHJ1ZTsKLUNSRUFURSBST0xFIHJlZ3Jlc3Nf dGJsc3BjX2RkbF91c2VyOwotCi0tLSBlcnJvcjogbm9uLWV4aXN0ZW50IHRhYmxlc3BhY2Ug YnkgbmFtZQotU0VMRUNUICogRlJPTSBwZ19nZXRfdGFibGVzcGFjZV9kZGwoJ3JlZ3Jlc3Nf bm9uZXhpc3RlbnRfdGJsc3AnKTsKLQotLS0gZXJyb3I6IG5vbi1leGlzdGVudCB0YWJsZXNw YWNlIGJ5IE9JRAotU0VMRUNUICogRlJPTSBwZ19nZXRfdGFibGVzcGFjZV9kZGwoMDo6b2lk KTsKLQotLS0gTlVMTCBpbnB1dCByZXR1cm5zIG5vIHJvd3MgKG5hbWUgdmFyaWFudCkKLVNF TEVDVCAqIEZST00gcGdfZ2V0X3RhYmxlc3BhY2VfZGRsKE5VTEw6Om5hbWUpOwotCi0tLSBO VUxMIGlucHV0IHJldHVybnMgbm8gcm93cyAoT0lEIHZhcmlhbnQpCi1TRUxFQ1QgKiBGUk9N IHBnX2dldF90YWJsZXNwYWNlX2RkbChOVUxMOjpvaWQpOwotCi0tLSB0YWJsZXNwYWNlIG5h bWUgcmVxdWlyaW5nIHF1b3RpbmcKLUNSRUFURSBUQUJMRVNQQUNFICJyZWdyZXNzXyB0Ymxz cCIgT1dORVIgcmVncmVzc190YmxzcGNfZGRsX3VzZXIgTE9DQVRJT04gJyc7Ci1TRUxFQ1Qg KiBGUk9NIHBnX2dldF90YWJsZXNwYWNlX2RkbCgncmVncmVzc18gdGJsc3AnKTsKLURST1Ag VEFCTEVTUEFDRSAicmVncmVzc18gdGJsc3AiOwotCi0tLSB0YWJsZXNwYWNlIHdpdGggbXVs dGlwbGUgb3B0aW9ucwotQ1JFQVRFIFRBQkxFU1BBQ0UgcmVncmVzc19hbGxvcHRfdGJsc3Ag T1dORVIgcmVncmVzc190YmxzcGNfZGRsX3VzZXIgTE9DQVRJT04gJycKLSAgV0lUSCAoc2Vx X3BhZ2VfY29zdCA9ICcxLjUnLCByYW5kb21fcGFnZV9jb3N0ID0gJzEuMTIzNDU2Nzg5MCcs Ci0gICAgICAgIGVmZmVjdGl2ZV9pb19jb25jdXJyZW5jeSA9ICcxNycsIG1haW50ZW5hbmNl X2lvX2NvbmN1cnJlbmN5ID0gJzE4Jyk7Ci1TRUxFQ1QgKiBGUk9NIHBnX2dldF90YWJsZXNw YWNlX2RkbCgncmVncmVzc19hbGxvcHRfdGJsc3AnKTsKLQotLS0gcHJldHR5LXByaW50ZWQg b3V0cHV0Ci1ccHNldCBmb3JtYXQgdW5hbGlnbmVkCi1TRUxFQ1QgKiBGUk9NIHBnX2dldF90 YWJsZXNwYWNlX2RkbCgncmVncmVzc19hbGxvcHRfdGJsc3AnLCAncHJldHR5JywgJ3RydWUn KTsKLVxwc2V0IGZvcm1hdCBhbGlnbmVkCi0KLS0tIHRhYmxlc3BhY2Ugd2l0aCBvd25lciBz dXBwcmVzc2VkCi1TRUxFQ1QgKiBGUk9NIHBnX2dldF90YWJsZXNwYWNlX2RkbCgncmVncmVz c19hbGxvcHRfdGJsc3AnLCAnb3duZXInLCAnZmFsc2UnKTsKLQotRFJPUCBUQUJMRVNQQUNF IHJlZ3Jlc3NfYWxsb3B0X3RibHNwOwotCi0tLSB0ZXN0IGJ5IE9JRAotQ1JFQVRFIFRBQkxF U1BBQ0UgcmVncmVzc19vaWRfdGJsc3AgT1dORVIgcmVncmVzc190YmxzcGNfZGRsX3VzZXIg TE9DQVRJT04gJyc7Ci1TRUxFQ1Qgb2lkIEFTIHRzaWQgRlJPTSBwZ190YWJsZXNwYWNlIFdI RVJFIHNwY25hbWUgPSAncmVncmVzc19vaWRfdGJsc3AnIFxnc2V0Ci1TRUxFQ1QgKiBGUk9N IHBnX2dldF90YWJsZXNwYWNlX2RkbCg6dHNpZCk7Ci1EUk9QIFRBQkxFU1BBQ0UgcmVncmVz c19vaWRfdGJsc3A7Ci0KLS0tIFBlcm1pc3Npb24gY2hlY2s6IHJldm9rZSBTRUxFQ1Qgb24g cGdfdGFibGVzcGFjZQotQ1JFQVRFIFRBQkxFU1BBQ0UgcmVncmVzc19hY2xfdGJsc3AgT1dO RVIgcmVncmVzc190YmxzcGNfZGRsX3VzZXIgTE9DQVRJT04gJyc7Ci1DUkVBVEUgUk9MRSBy ZWdyZXNzX3RibHNwY19kZGxfbm9hY2Nlc3M7Ci1SRVZPS0UgU0VMRUNUIE9OIHBnX3RhYmxl c3BhY2UgRlJPTSBQVUJMSUM7Ci1TRVQgUk9MRSByZWdyZXNzX3RibHNwY19kZGxfbm9hY2Nl c3M7Ci1TRUxFQ1QgKiBGUk9NIHBnX2dldF90YWJsZXNwYWNlX2RkbCgncmVncmVzc19hY2xf dGJsc3AnKTsgIC0tIHNob3VsZCBmYWlsCi1SRVNFVCBST0xFOwotR1JBTlQgU0VMRUNUIE9O IHBnX3RhYmxlc3BhY2UgVE8gUFVCTElDOwotRFJPUCBUQUJMRVNQQUNFIHJlZ3Jlc3NfYWNs X3RibHNwOwotRFJPUCBST0xFIHJlZ3Jlc3NfdGJsc3BjX2RkbF9ub2FjY2VzczsKLQotRFJP UCBST0xFIHJlZ3Jlc3NfdGJsc3BjX2RkbF91c2VyOwotLSAKMi40My4wCgo= --------------lbp2tPUVLqIKTiHYfMjDivkB--