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 1vTG2M-00FbwI-0x for pgsql-hackers@arkaria.postgresql.org; Wed, 10 Dec 2025 08:59:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vTG1J-00AEZt-2z for pgsql-hackers@arkaria.postgresql.org; Wed, 10 Dec 2025 08:58:02 +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 1vTG1I-00AEZl-2H for pgsql-hackers@lists.postgresql.org; Wed, 10 Dec 2025 08:58:01 +0000 Received: from mail-vk1-xa2c.google.com ([2607:f8b0:4864:20::a2c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vTG17-0046L6-38 for pgsql-hackers@lists.postgresql.org; Wed, 10 Dec 2025 08:58:00 +0000 Received: by mail-vk1-xa2c.google.com with SMTP id 71dfb90a1353d-5597a426807so4616496e0c.2 for ; Wed, 10 Dec 2025 00:57:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765357068; x=1765961868; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=SF1gfkz0Gf8C+NcVVI3hYf99N/i+uYsT8JsKWbHKado=; b=FyDUa3woYmM0jJlcXIcipl9GBt1+LL0bsTF9WwDLLKXaRgI3CmmZkYI/4t+LdZEDmK la+AsM0VBMPrZee5W+HcaNxY6HPOwk3Ix/nQeeauEGif1f/OUOjYcT9jJOPHlKRs0/X6 Cz/C75W6ffMeTINkndC46Cr2rzAlqgBFCpFzOllrx8yv4Qf7SKP/qso63gQW96QTLHKl kUvhsOXO75hsiYwixax4nluY0DKBURxVm23R/cenroPCYzSxY/cmYo8SYTEywL0gvppS e+X56sbXief3X/VvWKmGoTW4cbPuPuOtZjGGsEayYvmz3dvTQ3z/rxNRrvsCoMtcoQvp oUfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765357068; x=1765961868; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=SF1gfkz0Gf8C+NcVVI3hYf99N/i+uYsT8JsKWbHKado=; b=eysSTZaCTgPnauBZWDPsJNGoHnVxO8I20SG2qS7x713deMlVuCOJL3mgdacEmZ+5tv CFgayICwKbyVv698Koz6OJD6qfOJI11ptcuGdV4MYrzo23zhaf//buJ2djbs2CdoHy5c G3d0OmGavLsZEsuvEPldsEbwzL2BkwofcyhOq9p4AkmoY+dbq+lf5cIoPtdkUTmyHhQ/ TKHSd0fxfPtCNeq1lBTp6blY6/VRLiZg+s59cPdBu2S/B/yGMnYdXvUU+R2BozClB1JT tGP5pSqbCco8udiT/axBzor3lhuOLlazWa+y+JQDc9H5IQp/D9ZA+/XQFy8DkosFMcJ0 jCAA== X-Forwarded-Encrypted: i=1; AJvYcCXDyDqxyAElXrhbuudPLduRMb556ff6ETixFIxz6wSnmhV3jwswcuiDf/4Ub18ZjSU3LpDfMCZPG0TH/9fb@lists.postgresql.org X-Gm-Message-State: AOJu0YwctecZWOiqaDgip7rf4sCD5vgyxc1suOk+Bh8J6QpmLIoz8JML Jj/ykH2BEQfZigtdl0OQqrF369rsWwwSUTyfk70XKdK3BGPI9cVGDHgdfQkOLARDDTyXxHCs0EL P2e80AfTOZH3RVIjgu8N8HjmWOVJfysU= X-Gm-Gg: AY/fxX78NwYrAtGBmmmQZRuquwzqJITvKxDAutwlt+I5KuAZqvsf/wuHmeBfyz1uc+U lEozM6OTW4sZJ3MD4gynZx5kOg7d2+vOO1M/2rwKErBHevtZ43cjz+0+BoaplqycWv008A25Cgh f8RRACiengZhavvdJ2JZRh2seV/WkdmvkGS4xAePRKwlYQ53iIJwvPA65UjOOYaFKin8A3+kfQx q0MJnOOFnyBh0F5nnG8h4wgr935FjpUA/fN/2Cn8pB6vyq9gYW8f56xumjVRWWKG3Kur+U1eQHG tlNeGYt57vTGjvrBFDppxXNRnxd39pm958JszY40rifV7J+7xVxN5XSnRwYlJfAgGUEMKNl0W/Y 3MYdcVHb40mPwQlxXgfTk5XPll0I3XFxWA39GAE87ragDtgOO6CYvn0c8CxPYz+DYo5tHDcqGk7 VpvW3+itI= X-Google-Smtp-Source: AGHT+IH3zS5MeqExBUt/69Mr1uZ5BkZjFBKJAZboVIXPJNPceTvIYUbUCvOtWaljOSxLcw99idbSd70Fd3tRwmmW2iM= X-Received: by 2002:a05:6122:45a6:b0:55a:ba0d:d84d with SMTP id 71dfb90a1353d-55fcfb36c12mr592427e0c.7.1765357067940; Wed, 10 Dec 2025 00:57:47 -0800 (PST) MIME-Version: 1.0 References: <04afcd1f-ed7d-4c0a-add1-50e3719ccbf9@postgresfriends.org> <762ae707-7fdc-43d8-a77a-3a10d12ce21d@postgresfriends.org> In-Reply-To: From: jian he Date: Wed, 10 Dec 2025 16:57:09 +0800 X-Gm-Features: AQt7F2rMegxckOUu6PZYVdTSLRHed9W3zLmUJSUt0ACFEiBT7hKtFl-cYea0yYQ Message-ID: Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions To: Corey Huinker Cc: Vik Fearing , Isaac Morland , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000efede3064595382e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000efede3064595382e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Dec 9, 2025 at 11:39=E2=80=AFAM jian he wrote: > > On Mon, Dec 1, 2025 at 1:41=E2=80=AFPM Corey Huinker wrote: > >> > > No, I meant implementing the syntax for being able to declare a custom = CAST function as safe (or not). Basically adding the [SAFE] to > > > > CREATE CAST (source_type AS target_type) > > WITH [SAFE] FUNCTION function_name [ (argument_type [, ...]) ] > > > > I'm not tied to this syntax choice, but this one seemed the most obviou= s and least invasive. > > hi. please see the attached v15. the primary implementation of CAST DEFAULT is contained in V15-0021. changes compared to v14. 1. separate patch (v15-0017) for float error. -pg_noreturn extern void float_overflow_error(void); -pg_noreturn extern void float_underflow_error(void); -pg_noreturn extern void float_zero_divide_error(void); +extern void float_overflow_error(struct Node *escontext); +extern void float_underflow_error(struct Node *escontext); +extern void float_zero_divide_error(struct Node *escontext); 2. separate patch (v15-0018) for newly added float8 functions: float8_pl_safe float8_mi_safe float8_mul_safe float8_div_safe refactoring existing functions is too invasive, I choose not to. 3. refactor point_dt (v15-0019). This is necessary for making geometry data= type error-safe, separate from the main patch (v15-0020). I hope to make it easi= er to review. -static inline float8 point_dt(Point *pt1, Point *pt2); +static inline float8 point_dt(Point *pt1, Point *pt2, Node *escontext); 4. skip compile DEFAULT expression (ExecInitExprRec) for binary coercion ca= st, as mentioned before. See ExecInitSafeTypeCastExpr. 5. Support user-defined type cast error-safe, see v15-0022. user-defined error-safe cast syntax: CREATE CAST (source_type AS target_type) WITH [SAFE] FUNCTION function_name [ (argument_type [, ...]) ] [ AS ASSIGNMENT | AS IMPLICIT ] this only adds a new keyword SAFE. This works for C and internal language functions only now. To make it really usable, I have made citext, hstore module castfunc error = safe. A new column: pg_cast.casterrorsafe was added, this is needed for CREATE CAST WITH SAFE FUNCTION. +select CAST(ARRAY['a','g','b','h',null,'i'] AS hstore + DEFAULT NULL ON CONVERSION ERROR); + array +------- + +(1 row) + 6. slightly polished the doc. -- jian https://www.enterprisedb.com/ --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0022-error-safe-for-user-defined-CREATE-CAST.patch" Content-Disposition: attachment; filename="v15-0022-error-safe-for-user-defined-CREATE-CAST.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtoc00 RnJvbSA5OWQyOTkyMzdlZGNiNjUxNTFhOTRiN2FiMTc0OTdkYWQ2ZDdiNzc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTAgRGVjIDIwMjUgMTY6MTU6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAyMi8yMl0gZXJyb3Igc2FmZSBmb3IgdXNlciBkZWZpbmVkIENSRUFURSBDQVNUCgpwZ19jYXN0 LmNhc3RlcnJvcnNhZmUgY29sdW1uIHRvIGluZGljYXRlIGNhc3RmdW5jIGlzIGVycm9yIHNhZmUg b3Igbm90LgoKY2hhbmdlIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQgdG8gaW5kaWNh dGUgdGhhdCBtb3N0IG9mIHRoZSBzeXN0ZW0gY2FzdApmdW5jdGlvbiBzdXBwb3J0IHNvZnQgZXJy b3IgZXZhbHVhdGlvbi4KClRoZSBTQUZFIGtleXdvcmQgaXMgaW50cm9kdWNlZCBmb3IgYWxsb3cg dXNlci1kZWZpbmVkIENSRUFURSBDQVNUIGNhbiBhbHNvIGJlCmV2YWx1YXRlZCBpbiBzb2Z0LWVy cm9yLiBub3cgdGhlIHN5bm9wc2lzIG9mIENSRUFURSBDQVNUIGlzOgpDUkVBVEUgQ0FTVCAoc291 cmNlX3R5cGUgQVMgdGFyZ2V0X3R5cGUpCiAgICBXSVRIIFtTQUZFXSBGVU5DVElPTiBmdW5jdGlv bl9uYW1lIFsgKGFyZ3VtZW50X3R5cGUgWywgLi4uXSkgXQogICAgWyBBUyBBU1NJR05NRU5UIHwg QVMgSU1QTElDSVQgXQoKVGhlIGZvbGxvd2luZyBjYXN0IGluIGNpdGV4dCwgaHN0b3JlIG1vZHVs ZSByZWZhY3RvcmVkIHRvIGVycm9yIHNhZmU6CkNBU1QgKGJwY2hhciBBUyBjaXRleHQpCkNBU1Qg KGJvb2xlYW4gQVMgY2l0ZXh0KQpDQVNUIChpbmV0IEFTIGNpdGV4dCkKQ0FTVCAodGV4dFtdIEFT IGhzdG9yZSkKQ0FTVCAoaHN0b3JlIEFTIGpzb24pCkNBU1QgKGhzdG9yZSBBUyBqc29uYikKCmRp c2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFp eE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogY29udHJpYi9jaXRl eHQvY2l0ZXh0LS0xLjQuc3FsICAgICAgICAgICAgfCAgIDYgKy0KIGNvbnRyaWIvY2l0ZXh0L2V4 cGVjdGVkL2NpdGV4dC5vdXQgICAgICAgIHwgIDI0ICstCiBjb250cmliL2NpdGV4dC9leHBlY3Rl ZC9jaXRleHRfMS5vdXQgICAgICB8ICAyNCArLQogY29udHJpYi9jaXRleHQvc3FsL2NpdGV4dC5z cWwgICAgICAgICAgICAgfCAgIDUgKy0KIGNvbnRyaWIvaHN0b3JlL2V4cGVjdGVkL2hzdG9yZS5v dXQgICAgICAgIHwgIDM3ICsrKwogY29udHJpYi9oc3RvcmUvaHN0b3JlLS0xLjItLTEuMy5zcWwg ICAgICAgfCAgIDIgKy0KIGNvbnRyaWIvaHN0b3JlL2hzdG9yZS0tMS40LnNxbCAgICAgICAgICAg IHwgICA2ICstCiBjb250cmliL2hzdG9yZS9oc3RvcmVfaW8uYyAgICAgICAgICAgICAgICB8ICAg OCArLQogY29udHJpYi9oc3RvcmUvc3FsL2hzdG9yZS5zcWwgICAgICAgICAgICAgfCAgMTEgKwog ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgfCAgMTUgKwogZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfY2FzdC5zZ21sICAgICAgICAgfCAgMTQgKy0KIGRvYy9zcmMvc2dt bC9zeW50YXguc2dtbCAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX2Nhc3QuYyAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv ZnVuY3Rpb25jbWRzLmMgICAgICAgfCAgIDkgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVj bWRzLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAg ICAgICAgICAgIHwgIDE4ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAg ICAgICB8ICAxMCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCAgICAgICAgICAg fCAzMzAgKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0 LmggICAgICAgICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQgfCAg IDggKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQgIHwgIDI0ICst CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgICAgICB8ICAgNSArCiAyNCBm aWxlcyBjaGFuZ2VkLCAzNTMgaW5zZXJ0aW9ucygrKSwgMjE4IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2NvbnRyaWIvY2l0ZXh0L2NpdGV4dC0tMS40LnNxbCBiL2NvbnRyaWIvY2l0ZXh0L2Np dGV4dC0tMS40LnNxbAppbmRleCA3YjA2MTk4OTM1Mi4uNWM4NzgyMDM4OGYgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvY2l0ZXh0L2NpdGV4dC0tMS40LnNxbAorKysgYi9jb250cmliL2NpdGV4dC9jaXRl eHQtLTEuNC5zcWwKQEAgLTg1LDkgKzg1LDkgQEAgQ1JFQVRFIENBU1QgKGNpdGV4dCBBUyB2YXJj aGFyKSBXSVRIT1VUIEZVTkNUSU9OIEFTIElNUExJQ0lUOwogQ1JFQVRFIENBU1QgKGNpdGV4dCBB UyBicGNoYXIpICBXSVRIT1VUIEZVTkNUSU9OIEFTIEFTU0lHTk1FTlQ7CiBDUkVBVEUgQ0FTVCAo dGV4dCBBUyBjaXRleHQpICAgIFdJVEhPVVQgRlVOQ1RJT04gQVMgQVNTSUdOTUVOVDsKIENSRUFU RSBDQVNUICh2YXJjaGFyIEFTIGNpdGV4dCkgV0lUSE9VVCBGVU5DVElPTiBBUyBBU1NJR05NRU5U OwotQ1JFQVRFIENBU1QgKGJwY2hhciBBUyBjaXRleHQpICBXSVRIIEZVTkNUSU9OIGNpdGV4dChi cGNoYXIpICBBUyBBU1NJR05NRU5UOwotQ1JFQVRFIENBU1QgKGJvb2xlYW4gQVMgY2l0ZXh0KSBX SVRIIEZVTkNUSU9OIGNpdGV4dChib29sZWFuKSBBUyBBU1NJR05NRU5UOwotQ1JFQVRFIENBU1Qg KGluZXQgQVMgY2l0ZXh0KSAgICBXSVRIIEZVTkNUSU9OIGNpdGV4dChpbmV0KSAgICBBUyBBU1NJ R05NRU5UOworQ1JFQVRFIENBU1QgKGJwY2hhciBBUyBjaXRleHQpICBXSVRIIFNBRkUgRlVOQ1RJ T04gY2l0ZXh0KGJwY2hhcikgIEFTIEFTU0lHTk1FTlQ7CitDUkVBVEUgQ0FTVCAoYm9vbGVhbiBB UyBjaXRleHQpIFdJVEggU0FGRSBGVU5DVElPTiBjaXRleHQoYm9vbGVhbikgQVMgQVNTSUdOTUVO VDsKK0NSRUFURSBDQVNUIChpbmV0IEFTIGNpdGV4dCkgICAgV0lUSCBTQUZFIEZVTkNUSU9OIGNp dGV4dChpbmV0KSAgICBBUyBBU1NJR05NRU5UOwogCiAtLQogLS0gT3BlcmF0b3IgRnVuY3Rpb25z LgpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dCBiL2NvbnRy aWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQKaW5kZXggMzNkYTE5ZDhkZjQuLmJlMzI4NzE1 NDkyIDEwMDY0NAotLS0gYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0CisrKyBi L2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQKQEAgLTEwLDExICsxMCwxMiBAQCBX SEVSRSBvcGMub2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lkKTsKIC0tLS0t LS0tKy0tLS0tLS0tLQogKDAgcm93cykKIAotU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBj aXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCi1FUlJPUjog IGNhbm5vdCBjYXN0IHR5cGUgY2hhcmFjdGVyIHRvIGNpdGV4dCB3aGVuIERFRkFVTFQgZXhwcmVz c2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgotTElORSAx OiBTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0kuLi4KLSAgICAgICAgICAgICAgICAgICAgXgotSElOVDogIFNhZmUgdHlwZSBjYXN0IGZv ciB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkCitTRUxFQ1QgQ0FTVCgn YWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgY2l0ZXh0IAorLS0tLS0tLS0KKyBhYmMKKygxIHJvdykKKwogLS0gVGVzdCB0aGUgb3BlcmF0 b3JzIGFuZCBpbmRleGluZyBmdW5jdGlvbnMKIC0tIFRlc3QgPSBhbmQgPD4uCiBTRUxFQ1QgJ2En OjpjaXRleHQgPSAnYSc6OmNpdGV4dCBBUyB0OwpAQCAtNTIzLDYgKzUyNCwxMiBAQCBTRUxFQ1Qg dHJ1ZTo6Y2l0ZXh0ID0gJ3RydWUnIEFTIHQ7CiAgdAogKDEgcm93KQogCitTRUxFQ1QgQ0FTVCh0 cnVlIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY2l0ZXh0 IAorLS0tLS0tLS0KKyB0cnVlCisoMSByb3cpCisKIFNFTEVDVCAndHJ1ZSc6OmNpdGV4dDo6Ym9v bGVhbiA9IHRydWUgQVMgdDsKICB0IAogLS0tCkBAIC03ODcsNiArNzk0LDEzIEBAIFNFTEVDVCAn MTkyLjE2OC4xMDAuMTI4Jzo6Y2l0ZXh0OjppbmV0ID0gJzE5Mi4xNjguMTAwLjEyOCc6OmluZXQg QVMgdDsKICB0CiAoMSByb3cpCiAKK1NFTEVDVCBDQVNUKGluZXQgJzE5Mi4xNjguMTAwLjEyOCcg QVMgY2l0ZXh0CisgICAgICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSA9 ICcxOTIuMTY4LjEwMC4xMjgvMzInIEFTIHQ7CisgdCAKKy0tLQorIHQKKygxIHJvdykKKwogU0VM RUNUICcwODowMDoyYjowMTowMjowMyc6Om1hY2FkZHI6OmNpdGV4dCA9ICcwODowMDoyYjowMTow MjowMycgQVMgdDsKICB0IAogLS0tCmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9leHBlY3Rl ZC9jaXRleHRfMS5vdXQgYi9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQKaW5k ZXggNjQ3ZWVhMTkxNDIuLmU5Zjg0NTRjNjYyIDEwMDY0NAotLS0gYS9jb250cmliL2NpdGV4dC9l eHBlY3RlZC9jaXRleHRfMS5vdXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0 XzEub3V0CkBAIC0xMCwxMSArMTAsMTIgQEAgV0hFUkUgb3BjLm9pZCA+PSAxNjM4NCBBTkQgTk9U IGFtdmFsaWRhdGUob3BjLm9pZCk7CiAtLS0tLS0tLSstLS0tLS0tLS0KICgwIHJvd3MpCiAKLVNF TEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsgLS1lcnJvcgotRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNoYXJhY3RlciB0 byBjaXRleHQgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4u IE9OIENPTlZFUlNJT04gRVJST1IKLUxJTkUgMTogU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBB UyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJLi4uCi0gICAgICAgICAgICAgICAgICAg IF4KLUhJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3Qg eWV0IHN1cHBvcnRlZAorU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgYWJjCiso MSByb3cpCisKIC0tIFRlc3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAt LSBUZXN0ID0gYW5kIDw+LgogU0VMRUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsK QEAgLTUyMyw2ICs1MjQsMTIgQEAgU0VMRUNUIHRydWU6OmNpdGV4dCA9ICd0cnVlJyBBUyB0Owog IHQKICgxIHJvdykKIAorU0VMRUNUIENBU1QodHJ1ZSBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgdHJ1ZQorKDEgcm93KQor CiBTRUxFQ1QgJ3RydWUnOjpjaXRleHQ6OmJvb2xlYW4gPSB0cnVlIEFTIHQ7CiAgdCAKIC0tLQpA QCAtNzg3LDYgKzc5NCwxMyBAQCBTRUxFQ1QgJzE5Mi4xNjguMTAwLjEyOCc6OmNpdGV4dDo6aW5l dCA9ICcxOTIuMTY4LjEwMC4xMjgnOjppbmV0IEFTIHQ7CiAgdAogKDEgcm93KQogCitTRUxFQ1Qg Q0FTVChpbmV0ICcxOTIuMTY4LjEwMC4xMjgnIEFTIGNpdGV4dAorICAgICAgICAgICBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgPSAnMTkyLjE2OC4xMDAuMTI4LzMyJyBBUyB0Owor IHQgCistLS0KKyB0CisoMSByb3cpCisKIFNFTEVDVCAnMDg6MDA6MmI6MDE6MDI6MDMnOjptYWNh ZGRyOjpjaXRleHQgPSAnMDg6MDA6MmI6MDE6MDI6MDMnIEFTIHQ7CiAgdCAKIC0tLQpkaWZmIC0t Z2l0IGEvY29udHJpYi9jaXRleHQvc3FsL2NpdGV4dC5zcWwgYi9jb250cmliL2NpdGV4dC9zcWwv Y2l0ZXh0LnNxbAppbmRleCA5OTc5NDQ5N2Q0Ny4uNjJmODNkNzQ5ZjkgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsCisrKyBiL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRl eHQuc3FsCkBAIC05LDcgKzksNyBAQCBTRUxFQ1QgYW1uYW1lLCBvcGNuYW1lCiBGUk9NIHBnX29w Y2xhc3Mgb3BjIExFRlQgSk9JTiBwZ19hbSBhbSBPTiBhbS5vaWQgPSBvcGNtZXRob2QKIFdIRVJF IG9wYy5vaWQgPj0gMTYzODQgQU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogCi1TRUxFQ1Qg Q0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKIAogLS0gVGVzdCB0aGUgb3BlcmF0b3JzIGFu ZCBpbmRleGluZyBmdW5jdGlvbnMKIApAQCAtMTY1LDYgKzE2NSw3IEBAIFNFTEVDVCBuYW1lIEZS T00gc3J0IFdIRVJFIG5hbWUgU0lNSUxBUiBUTyAnJUEuKic7CiAKIC0tIEV4cGxpY2l0IGNhc3Rz LgogU0VMRUNUIHRydWU6OmNpdGV4dCA9ICd0cnVlJyBBUyB0OworU0VMRUNUIENBU1QodHJ1ZSBB UyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwogU0VMRUNUICd0cnVl Jzo6Y2l0ZXh0Ojpib29sZWFuID0gdHJ1ZSBBUyB0OwogCiBTRUxFQ1QgNDo6Y2l0ZXh0ID0gJzQn IEFTIHQ7CkBAIC0yMjQsNiArMjI1LDggQEAgU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgvMjUnOjpj aXRleHQ6OmNpZHIgPSAnMTkyLjE2OC4xMDAuMTI4LzI1Jzo6Y2lkciBBUyB0OwogCiBTRUxFQ1Qg JzE5Mi4xNjguMTAwLjEyOCc6OmluZXQ6OmNpdGV4dCA9ICcxOTIuMTY4LjEwMC4xMjgvMzInIEFT IHQ7CiBTRUxFQ1QgJzE5Mi4xNjguMTAwLjEyOCc6OmNpdGV4dDo6aW5ldCA9ICcxOTIuMTY4LjEw MC4xMjgnOjppbmV0IEFTIHQ7CitTRUxFQ1QgQ0FTVChpbmV0ICcxOTIuMTY4LjEwMC4xMjgnIEFT IGNpdGV4dAorICAgICAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgPSAn MTkyLjE2OC4xMDAuMTI4LzMyJyBBUyB0OwogCiBTRUxFQ1QgJzA4OjAwOjJiOjAxOjAyOjAzJzo6 bWFjYWRkcjo6Y2l0ZXh0ID0gJzA4OjAwOjJiOjAxOjAyOjAzJyBBUyB0OwogU0VMRUNUICcwODow MDoyYjowMTowMjowMyc6OmNpdGV4dDo6bWFjYWRkciA9ICcwODowMDoyYjowMTowMjowMyc6Om1h Y2FkZHIgQVMgdDsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0b3JlL2V4cGVjdGVkL2hzdG9yZS5v dXQgYi9jb250cmliL2hzdG9yZS9leHBlY3RlZC9oc3RvcmUub3V0CmluZGV4IDE4MzZjOWFjZjM5 Li4yNjIyMTM3Y2JmOSAxMDA2NDQKLS0tIGEvY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQvaHN0b3Jl Lm91dAorKysgYi9jb250cmliL2hzdG9yZS9leHBlY3RlZC9oc3RvcmUub3V0CkBAIC04NDEsMTIg Kzg0MSwyOCBAQCBzZWxlY3QgJ3t9Jzo6dGV4dFtdOjpoc3RvcmU7CiAKIHNlbGVjdCBBUlJBWVsn YScsJ2cnLCdiJywnaCcsJ2FzZCddOjpoc3RvcmU7CiBFUlJPUjogIGFycmF5IG11c3QgaGF2ZSBl dmVuIG51bWJlciBvZiBlbGVtZW50cworc2VsZWN0IENBU1QoQVJSQVlbJ2EnLCdnJywnYicsJ2gn LCdhc2QnXSBBUyBoc3RvcmUKKyAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCBBUlJBWVsnYScsJ2cn LCdiJywnaCcsJ2FzZCcsJ2knXTo6aHN0b3JlOwogICAgICAgICAgICAgIGFycmF5ICAgICAgICAg ICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgImEiPT4iZyIsICJiIj0+ ImgiLCAiYXNkIj0+ImkiCiAoMSByb3cpCiAKK3NlbGVjdCBBUlJBWVsnYScsJ2cnLCdiJywnaCcs bnVsbCwnaSddOjpoc3RvcmU7CitFUlJPUjogIG51bGwgdmFsdWUgbm90IGFsbG93ZWQgZm9yIGhz dG9yZSBrZXkKK3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycsJ2InLCdoJyxudWxsLCdpJ10gQVMg aHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5 IAorLS0tLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgQVJSQVlbWydhJywnZyddLFsnYicsJ2gn XSxbJ2FzZCcsJ2knXV06OmhzdG9yZTsKICAgICAgICAgICAgICBhcnJheSAgICAgICAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtODU1LDYgKzg3MSwxMyBAQCBz ZWxlY3QgQVJSQVlbWydhJywnZyddLFsnYicsJ2gnXSxbJ2FzZCcsJ2knXV06OmhzdG9yZTsKIAog c2VsZWN0IEFSUkFZW1snYScsJ2cnLCdiJ10sWydoJywnYXNkJywnaSddXTo6aHN0b3JlOwogRVJS T1I6ICBhcnJheSBtdXN0IGhhdmUgdHdvIGNvbHVtbnMKK3NlbGVjdCBDQVNUKEFSUkFZW1snYScs J2cnLCdiJ10sWydoJywnYXNkJywnaSddXSBBUyBoc3RvcmUKKyAgICAgICBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKIHNl bGVjdCBBUlJBWVtbWydhJywnZyddLFsnYicsJ2gnXSxbJ2FzZCcsJ2knXV1dOjpoc3RvcmU7CiBF UlJPUjogIHdyb25nIG51bWJlciBvZiBhcnJheSBzdWJzY3JpcHRzCiBzZWxlY3QgaHN0b3JlKCd7 fSc6OnRleHRbXSk7CkBAIC0xNTUzLDYgKzE1NzYsMTMgQEAgc2VsZWN0IGNhc3QoIGhzdG9yZSAg JyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwg Zj0KICB7ImIiOiAidCIsICJjIjogbnVsbCwgImQiOiAiMTIzNDUiLCAiZSI6ICIwMTIzNDUiLCAi ZiI6ICIxLjIzNCIsICJnIjogIjIuMzQ1ZSs0IiwgImEga2V5IjogIjEifQogKDEgcm93KQogCitz ZWxlY3QgY2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4g MTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcgYXMganNvbgorICAg ICAgICAgICAgZGVmYXVsdCBudWxsIG9uIGNvbnZlcnNpb24gZXJyb3IpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb24gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHsiYiI6ICJ0IiwgImMiOiBudWxsLCAiZCI6ICIxMjM0NSIsICJlIjog IjAxMjM0NSIsICJmIjogIjEuMjM0IiwgImciOiAiMi4zNDVlKzQiLCAiYSBrZXkiOiAiMSJ9Ciso MSByb3cpCisKIHNlbGVjdCBoc3RvcmVfdG9fanNvbl9sb29zZSgnImEga2V5IiA9PjEsIGIgPT4g dCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0 NWUrNCwgaD0+ICIyMDE2LTAxLTAxIicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBoc3RvcmVfdG9fanNvbl9sb29zZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTU3MSw2ICsxNjAxLDEzIEBAIHNlbGVjdCBjYXN0KCBo c3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAw MTIzNDUsIGY9CiAgeyJiIjogInQiLCAiYyI6IG51bGwsICJkIjogIjEyMzQ1IiwgImUiOiAiMDEy MzQ1IiwgImYiOiAiMS4yMzQiLCAiZyI6ICIyLjM0NWUrNCIsICJhIGtleSI6ICIxIn0KICgxIHJv dykKIAorc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVs bCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpz b25iCisgICAgICAgICAgICBkZWZhdWx0IG51bGwgb24gY29udmVyc2lvbiBlcnJvcik7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbmIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJiIjogInQiLCAiYyI6IG51bGwsICJkIjogIjEyMzQ1 IiwgImUiOiAiMDEyMzQ1IiwgImYiOiAiMS4yMzQiLCAiZyI6ICIyLjM0NWUrNCIsICJhIGtleSI6 ICIxIn0KKygxIHJvdykKKwogc2VsZWN0IGhzdG9yZV90b19qc29uYl9sb29zZSgnImEga2V5IiA9 PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQs IGc9PiAyLjM0NWUrNCwgaD0+ICIyMDE2LTAxLTAxIicpOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaHN0b3JlX3RvX2pzb25iX2xvb3NlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvY29udHJpYi9oc3RvcmUvaHN0b3Jl LS0xLjItLTEuMy5zcWwgYi9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuMi0tMS4zLnNxbAppbmRl eCAwYTcwNTYwMTViNy4uY2JiMWExMzllNjkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaHN0b3JlL2hz dG9yZS0tMS4yLS0xLjMuc3FsCisrKyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZS0tMS4yLS0xLjMu c3FsCkBAIC05LDcgKzksNyBAQCBBUyAnTU9EVUxFX1BBVEhOQU1FJywgJ2hzdG9yZV90b19qc29u YicKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVDsKIAogQ1JFQVRFIENBU1QgKGhzdG9yZSBB UyBqc29uYikKLSAgV0lUSCBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmIoaHN0b3JlKTsKKyAgV0lU SCBTQUZFIEZVTkNUSU9OIGhzdG9yZV90b19qc29uYihoc3RvcmUpOwogCiBDUkVBVEUgRlVOQ1RJ T04gaHN0b3JlX3RvX2pzb25iX2xvb3NlKGhzdG9yZSkKIFJFVFVSTlMganNvbmIKZGlmZiAtLWdp dCBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZS0tMS40LnNxbCBiL2NvbnRyaWIvaHN0b3JlL2hzdG9y ZS0tMS40LnNxbAppbmRleCA0Mjk0ZDE0Y2ViNS4uNDUxYzJlZDgxODcgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvaHN0b3JlL2hzdG9yZS0tMS40LnNxbAorKysgYi9jb250cmliL2hzdG9yZS9oc3RvcmUt LTEuNC5zcWwKQEAgLTIzMiw3ICsyMzIsNyBAQCBBUyAnTU9EVUxFX1BBVEhOQU1FJywgJ2hzdG9y ZV9mcm9tX2FycmF5JwogTEFOR1VBR0UgQyBJTU1VVEFCTEUgU1RSSUNUIFBBUkFMTEVMIFNBRkU7 CiAKIENSRUFURSBDQVNUICh0ZXh0W10gQVMgaHN0b3JlKQotICBXSVRIIEZVTkNUSU9OIGhzdG9y ZSh0ZXh0W10pOworICBXSVRIIFNBRkUgRlVOQ1RJT04gaHN0b3JlKHRleHRbXSk7CiAKIENSRUFU RSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbihoc3RvcmUpCiBSRVRVUk5TIGpzb24KQEAgLTI0MCw3 ICsyNDAsNyBAQCBBUyAnTU9EVUxFX1BBVEhOQU1FJywgJ2hzdG9yZV90b19qc29uJwogTEFOR1VB R0UgQyBJTU1VVEFCTEUgU1RSSUNUIFBBUkFMTEVMIFNBRkU7CiAKIENSRUFURSBDQVNUIChoc3Rv cmUgQVMganNvbikKLSAgV0lUSCBGVU5DVElPTiBoc3RvcmVfdG9fanNvbihoc3RvcmUpOworICBX SVRIIFNBRkUgRlVOQ1RJT04gaHN0b3JlX3RvX2pzb24oaHN0b3JlKTsKIAogQ1JFQVRFIEZVTkNU SU9OIGhzdG9yZV90b19qc29uX2xvb3NlKGhzdG9yZSkKIFJFVFVSTlMganNvbgpAQCAtMjUzLDcg KzI1Myw3IEBAIEFTICdNT0RVTEVfUEFUSE5BTUUnLCAnaHN0b3JlX3RvX2pzb25iJwogTEFOR1VB R0UgQyBJTU1VVEFCTEUgU1RSSUNUIFBBUkFMTEVMIFNBRkU7CiAKIENSRUFURSBDQVNUIChoc3Rv cmUgQVMganNvbmIpCi0gIFdJVEggRlVOQ1RJT04gaHN0b3JlX3RvX2pzb25iKGhzdG9yZSk7Cisg IFdJVEggU0FGRSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmIoaHN0b3JlKTsKIAogQ1JFQVRFIEZV TkNUSU9OIGhzdG9yZV90b19qc29uYl9sb29zZShoc3RvcmUpCiBSRVRVUk5TIGpzb25iCmRpZmYg LS1naXQgYS9jb250cmliL2hzdG9yZS9oc3RvcmVfaW8uYyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9y ZV9pby5jCmluZGV4IDM0ZTM5MTg4MTFjLi5mNTE2NjY3OTc4MyAxMDA2NDQKLS0tIGEvY29udHJp Yi9oc3RvcmUvaHN0b3JlX2lvLmMKKysrIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX2lvLmMKQEAg LTczOCwyMCArNzM4LDIwIEBAIGhzdG9yZV9mcm9tX2FycmF5KFBHX0ZVTkNUSU9OX0FSR1MpCiAK IAkJY2FzZSAxOgogCQkJaWYgKChBUlJfRElNUyhpbl9hcnJheSlbMF0pICUgMikKLQkJCQllcmVw b3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0FSUkFZX1NVQlNDUklQVF9FUlJPUiksCiAJCQkJCQkgZXJybXNn KCJhcnJheSBtdXN0IGhhdmUgZXZlbiBudW1iZXIgb2YgZWxlbWVudHMiKSkpOwogCQkJYnJlYWs7 CiAKIAkJY2FzZSAyOgogCQkJaWYgKChBUlJfRElNUyhpbl9hcnJheSlbMV0pICE9IDIpCi0JCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAog CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BUlJBWV9TVUJTQ1JJUFRfRVJST1IpLAogCQkJCQkJIGVy cm1zZygiYXJyYXkgbXVzdCBoYXZlIHR3byBjb2x1bW5zIikpKTsKIAkJCWJyZWFrOwogCiAJCWRl ZmF1bHQ6Ci0JCQllcmVwb3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAo RGF0dW0pIDAsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfQVJSQVlfU1VCU0NSSVBUX0VSUk9SKSwK IAkJCQkJIGVycm1zZygid3JvbmcgbnVtYmVyIG9mIGFycmF5IHN1YnNjcmlwdHMiKSkpOwogCX0K QEAgLTc3Miw3ICs3NzIsNyBAQCBoc3RvcmVfZnJvbV9hcnJheShQR19GVU5DVElPTl9BUkdTKQog CWZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKQogCXsKIAkJaWYgKGluX251bGxzW2kgKiAyXSkK LQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAw LAogCQkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQpLAogCQkJCQkg ZXJybXNnKCJudWxsIHZhbHVlIG5vdCBhbGxvd2VkIGZvciBoc3RvcmUga2V5IikpKTsKIApkaWZm IC0tZ2l0IGEvY29udHJpYi9oc3RvcmUvc3FsL2hzdG9yZS5zcWwgYi9jb250cmliL2hzdG9yZS9z cWwvaHN0b3JlLnNxbAppbmRleCBlZmVmOTEyOTJhMy4uOGZhNDY2MzBkNmQgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvaHN0b3JlL3NxbC9oc3RvcmUuc3FsCisrKyBiL2NvbnRyaWIvaHN0b3JlL3NxbC9o c3RvcmUuc3FsCkBAIC0xOTIsOSArMTkyLDE2IEBAIHNlbGVjdCBwZ19jb2x1bW5fc2l6ZShzbGlj ZShoc3RvcmUgJ2FhPT4xLCBiPT4yLCBjPT4zJywgQVJSQVlbJ2MnLCdiJywnYWEnXSkpCiAtLSBh cnJheSBpbnB1dAogc2VsZWN0ICd7fSc6OnRleHRbXTo6aHN0b3JlOwogc2VsZWN0IEFSUkFZWydh JywnZycsJ2InLCdoJywnYXNkJ106OmhzdG9yZTsKK3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycs J2InLCdoJywnYXNkJ10gQVMgaHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOwogc2VsZWN0IEFSUkFZWydhJywnZycsJ2InLCdoJywnYXNkJywnaSddOjpoc3Rv cmU7CitzZWxlY3QgQVJSQVlbJ2EnLCdnJywnYicsJ2gnLG51bGwsJ2knXTo6aHN0b3JlOworc2Vs ZWN0IENBU1QoQVJSQVlbJ2EnLCdnJywnYicsJ2gnLG51bGwsJ2knXSBBUyBoc3RvcmUKKyAgICAg ICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CiBzZWxlY3QgQVJSQVlbWydhJywn ZyddLFsnYicsJ2gnXSxbJ2FzZCcsJ2knXV06OmhzdG9yZTsKIHNlbGVjdCBBUlJBWVtbJ2EnLCdn JywnYiddLFsnaCcsJ2FzZCcsJ2knXV06OmhzdG9yZTsKK3NlbGVjdCBDQVNUKEFSUkFZW1snYScs J2cnLCdiJ10sWydoJywnYXNkJywnaSddXSBBUyBoc3RvcmUKKyAgICAgICBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CiBzZWxlY3QgQVJSQVlbW1snYScsJ2cnXSxbJ2InLCdoJ10s Wydhc2QnLCdpJ11dXTo6aHN0b3JlOwogc2VsZWN0IGhzdG9yZSgne30nOjp0ZXh0W10pOwogc2Vs ZWN0IGhzdG9yZShBUlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCddKTsKQEAgLTM2MywxMCArMzcw LDE0IEBAIHNlbGVjdCBjb3VudCgqKSBmcm9tIHRlc3Roc3RvcmUgd2hlcmUgaCA9ICdwb3M9Pjk4 LCBsaW5lPT4zNzEsIG5vZGU9PkNCQSwgaW5kZXhlCiAtLSBqc29uIGFuZCBqc29uYgogc2VsZWN0 IGhzdG9yZV90b19qc29uKCciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0 NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0Jyk7CiBzZWxlY3QgY2FzdCgg aHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4g MDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcgYXMganNvbik7CitzZWxlY3QgY2FzdCgg aHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4g MDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcgYXMganNvbgorICAgICAgICAgICAgZGVm YXVsdCBudWxsIG9uIGNvbnZlcnNpb24gZXJyb3IpOwogc2VsZWN0IGhzdG9yZV90b19qc29uX2xv b3NlKCciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIz NDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0LCBoPT4gIjIwMTYtMDEtMDEiJyk7CiAKIHNlbGVj dCBoc3RvcmVfdG9fanNvbmIoJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEy MzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnKTsKIHNlbGVjdCBjYXN0 KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9 PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0JyBhcyBqc29uYik7CitzZWxlY3QgY2Fz dCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUg PT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcgYXMganNvbmIKKyAgICAgICAgICAg IGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsKIHNlbGVjdCBoc3RvcmVfdG9fanNv bmJfbG9vc2UoJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+ IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQsIGg9PiAiMjAxNi0wMS0wMSInKTsKIAog Y3JlYXRlIHRhYmxlIHRlc3RfanNvbl9hZ2cgKGYxIHRleHQsIGYyIGhzdG9yZSk7CmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sCmluZGV4IDJmYzYzNDQyOTgwLi44ZmNhMzUzNGYzMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTE4 NDksNiArMTg0OSwyMSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9u IGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgIDxsaXRlcmFs PmI8L2xpdGVyYWw+IG1lYW5zIHRoYXQgdGhlIHR5cGVzIGFyZSBiaW5hcnktY29lcmNpYmxlLCB0 aHVzIG5vIGNvbnZlcnNpb24gaXMgcmVxdWlyZWQuCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPmNhc3RlcnJvcnNhZmU8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAg IDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBmbGFnIGluZGljYXRlcyB3aGV0 aGVyIHRoZSA8c3RydWN0ZmllbGQ+Y2FzdGZ1bmM8L3N0cnVjdGZpZWxkPiBmdW5jdGlvbgorICAg ICAgICBpcyBlcnJvci1zYWZlLiBJdCBpcyBtZWFuaW5nZnVsIG9ubHkgd2hlbiA8c3RydWN0Zmll bGQ+Y2FzdGZ1bmM8L3N0cnVjdGZpZWxkPgorICAgICAgICBpcyBub3QgemVyby4gVXNlci1kZWZp bmVkIGNhc3RzIGNhbiBzZXQgaXQKKyAgICAgICAgdG8gPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4g dmlhIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVjYXN0Ij5DUkVBVEUgQ0FTVDwvbGluaz4uCisg ICAgICAgIEZvciBlcnJvci1zYWZlIHR5cGUgY2FzdCwgc2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1z eW50YXgtdHlwZS1jYXN0cy1zYWZlIi8+LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvZW50cnk+ CisgICAgIDwvcm93PgorCiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY2FzdC5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfY2FzdC5zZ21sCmluZGV4IGJhZDc1YmMxZGNlLi44ODhkNzE0MmU0MiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY2FzdC5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbApAQCAtMjIsNyArMjIsNyBAQCBQb3N0Z3JlU1FM IGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBDUkVBVEUgQ0FT VCAoPHJlcGxhY2VhYmxlPnNvdXJjZV90eXBlPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxl PnRhcmdldF90eXBlPC9yZXBsYWNlYWJsZT4pCi0gICAgV0lUSCBGVU5DVElPTiA8cmVwbGFjZWFi bGU+ZnVuY3Rpb25fbmFtZTwvcmVwbGFjZWFibGU+IFsgKDxyZXBsYWNlYWJsZT5hcmd1bWVudF90 eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSkgXQorICAgIFdJVEggW1NBRkVdIEZVTkNUSU9OIDxy ZXBsYWNlYWJsZT5mdW5jdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4gWyAoPHJlcGxhY2VhYmxlPmFy Z3VtZW50X3R5cGU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dKSBdCiAgICAgWyBBUyBBU1NJR05NRU5U IHwgQVMgSU1QTElDSVQgXQogCiBDUkVBVEUgQ0FTVCAoPHJlcGxhY2VhYmxlPnNvdXJjZV90eXBl PC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnRhcmdldF90eXBlPC9yZXBsYWNlYWJsZT4p CkBAIC0xOTQsNiArMTk0LDE4IEBAIFNFTEVDVCBDQVNUICggMiBBUyBudW1lcmljICkgKyA0LjA7 CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICA8dmFybGlzdGVu dHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5TQUZFPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxp c3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGZ1bmN0aW9uIHVzZWQgdG8gcGVyZm9y bSB0aGUgY2FzdCBzdXBwb3J0IHNvZnQtZXJyb3IgZXZhbHVhdGlvbiwKKyAgICAgICBDdXJyZW50 bHksIG9ubHkgZnVuY3Rpb25zIHdyaXR0ZW4gaW4gQyBvciB0aGUgaW50ZXJuYWwgbGFuZ3VhZ2Ug YXJlIHN1cHBvcnRlZC4KKyAgICAgICBBbiBhbHRlcm5hdGUgZXhwcmVzc2lvbiBjYW4gYmUgc3Bl Y2lmaWVkIHRvIGJlIGV2YWx1YXRlZCBpZiB0aGUgY2FzdAorICAgICAgIGVycm9yIG9jY3Vycy4g IFNlZSA8bGluayBsaW5rZW5kPSJzcWwtc3ludGF4LXR5cGUtY2FzdHMtc2FmZSI+c2FmZSB0eXBl IGNhc3Q8L2xpbms+LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFy bGlzdGVudHJ5PgorCiAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgPHRlcm0+PGxpdGVyYWw+PHJl cGxhY2VhYmxlPmZ1bmN0aW9uX25hbWU8L3JlcGxhY2VhYmxlPlsoPHJlcGxhY2VhYmxlPmFyZ3Vt ZW50X3R5cGU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dKV08L2xpdGVyYWw+PC90ZXJtPgogCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwgYi9kb2Mvc3JjL3NnbWwvc3ludGF4LnNn bWwKaW5kZXggMzJhZjllYTA2MWMuLjI0ZDFkYzZkZTBiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvc3ludGF4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCkBAIC0yMTc2LDgg KzIxNzYsNyBAQCBDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBB UyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+CiA8L3N5bm9wc2lzPgogICAgIElmIHRo ZSB0eXBlIGNhc3QgZmFpbHMsIGluc3RlYWQgb2YgZXJyb3Igb3V0LCBldmFsdWF0aW9uIGZhbGxz IGJhY2sgdG8gdGhlCiAgICAgZGVmYXVsdCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFj ZWFibGU+IHNwZWNpZmllZCBpbiB0aGUgPGxpdGVyYWw+T04gRVJST1I8L2xpdGVyYWw+IGNsYXVz ZS4KLSAgICBBdCBwcmVzZW50LCB0aGlzIG9ubHkgc3VwcG9ydCBidWlsdC1pbiB0eXBlIGNhc3Rz OyBzZWUgPHhyZWYgbGlua2VuZD0iY2F0YWxvZy1wZy1jYXN0Ii8+LgotICAgIFVzZXItZGVmaW5l ZCB0eXBlIGNhc3RzIGNyZWF0ZWQgd2l0aCA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlY2FzdCI+ Q1JFQVRFIENBU1Q8L2xpbms+IGFyZSBub3Qgc3VwcG9ydGVkLgorICAgIFVzZXItZGVmaW5lZCB0 eXBlIGNhc3RzIGNyZWF0ZWQgd2l0aCA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlY2FzdCI+Q1JF QVRFIENBU1Q8L2xpbms+IGFyZSBzdXBwb3J0ZWQgdG9vLgogICA8L3BhcmE+CiAKICAgICA8cGFy YT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2FzdC5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19jYXN0LmMKaW5kZXggMTc3M2M5YzU0OTEuLjQxMTZiMTcwOGIwIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX2Nhc3QuYwpAQCAtNDgsNyArNDgsOCBAQAogT2JqZWN0QWRkcmVzcwogQ2FzdENy ZWF0ZShPaWQgc291cmNldHlwZWlkLCBPaWQgdGFyZ2V0dHlwZWlkLAogCQkgICBPaWQgZnVuY2lk LCBPaWQgaW5jYXN0aWQsIE9pZCBvdXRjYXN0aWQsCi0JCSAgIGNoYXIgY2FzdGNvbnRleHQsIGNo YXIgY2FzdG1ldGhvZCwgRGVwZW5kZW5jeVR5cGUgYmVoYXZpb3IpCisJCSAgIGNoYXIgY2FzdGNv bnRleHQsIGNoYXIgY2FzdG1ldGhvZCwgYm9vbCBjYXN0ZXJyb3JzYWZlLAorCQkgICBEZXBlbmRl bmN5VHlwZSBiZWhhdmlvcikKIHsKIAlSZWxhdGlvbglyZWxhdGlvbjsKIAlIZWFwVHVwbGUJdHVw bGU7CkBAIC04NCw2ICs4NSw3IEBAIENhc3RDcmVhdGUoT2lkIHNvdXJjZXR5cGVpZCwgT2lkIHRh cmdldHR5cGVpZCwKIAl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RmdW5jIC0gMV0gPSBPYmplY3RJ ZEdldERhdHVtKGZ1bmNpZCk7CiAJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0Y29udGV4dCAtIDFd ID0gQ2hhckdldERhdHVtKGNhc3Rjb250ZXh0KTsKIAl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3Rt ZXRob2QgLSAxXSA9IENoYXJHZXREYXR1bShjYXN0bWV0aG9kKTsKKwl2YWx1ZXNbQW51bV9wZ19j YXN0X2Nhc3RlcnJvcnNhZmUgLSAxXSA9IEJvb2xHZXREYXR1bShjYXN0ZXJyb3JzYWZlKTsKIAog CXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsYXRpb24pLCB2YWx1 ZXMsIG51bGxzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZnVuY3Rpb25j bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9mdW5jdGlvbmNtZHMuYwppbmRleCA1OWQwMDYz OGVlNi4uMmY3YmRmMjZkMzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0 aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jCkBAIC0x NjY3LDYgKzE2NjcsMTMgQEAgQ3JlYXRlQ2FzdChDcmVhdGVDYXN0U3RtdCAqc3RtdCkKIAkJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKIAkJCQkJIGVycm1z ZygiY2FzdCBmdW5jdGlvbiBtdXN0IG5vdCByZXR1cm4gYSBzZXQiKSkpOwogCisJCWlmIChzdG10 LT5zYWZlICYmCisJCQlwcm9jc3RydWN0LT5wcm9sYW5nICE9IElOVEVSTkFMbGFuZ3VhZ2VJZCAm JgorCQkJcHJvY3N0cnVjdC0+cHJvbGFuZyAhPSBDbGFuZ3VhZ2VJZCkKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQll cnJtc2coIlNhZmUgdHlwZSBjYXN0IGZ1bmN0aW9ucyBhcmUgb25seSBzdXBwb3J0ZWQgZm9yIEMg YW5kIGludGVybmFsIGxhbmd1YWdlcyIpKTsKKwogCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOwog CX0KIAllbHNlCkBAIC0xNzk1LDcgKzE4MDIsNyBAQCBDcmVhdGVDYXN0KENyZWF0ZUNhc3RTdG10 ICpzdG10KQogCX0KIAogCW15c2VsZiA9IENhc3RDcmVhdGUoc291cmNldHlwZWlkLCB0YXJnZXR0 eXBlaWQsIGZ1bmNpZCwgaW5jYXN0aWQsIG91dGNhc3RpZCwKLQkJCQkJCWNhc3Rjb250ZXh0LCBj YXN0bWV0aG9kLCBERVBFTkRFTkNZX05PUk1BTCk7CisJCQkJCQljYXN0Y29udGV4dCwgY2FzdG1l dGhvZCwgc3RtdC0+c2FmZSwgREVQRU5ERU5DWV9OT1JNQUwpOwogCXJldHVybiBteXNlbGY7CiB9 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IDQ3ZDUwNDdmZThiLi42ZmNlMTdjZTAyYiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC0xNzU0LDYgKzE3NTQsNyBAQCBEZWZpbmVSYW5n ZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVJhbmdlU3RtdCAqc3RtdCkKIAkvKiBDcmVhdGUg Y2FzdCBmcm9tIHRoZSByYW5nZSB0eXBlIHRvIGl0cyBtdWx0aXJhbmdlIHR5cGUgKi8KIAlDYXN0 Q3JlYXRlKHR5cG9pZCwgbXVsdGlyYW5nZU9pZCwgY2FzdEZ1bmNPaWQsIEludmFsaWRPaWQsIElu dmFsaWRPaWQsCiAJCQkgICBDT0VSQ0lPTl9DT0RFX0VYUExJQ0lULCBDT0VSQ0lPTl9NRVRIT0Rf RlVOQ1RJT04sCisJCQkgICBmYWxzZSwKIAkJCSAgIERFUEVOREVOQ1lfSU5URVJOQUwpOwogCiAJ cGZyZWUobXVsdGlyYW5nZUFycmF5TmFtZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA4YTI3ZTA0NWJjMC4u ZTdmZjdlNWMyNzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMzUzLDcgKzM1Myw3IEBAIHN0YXRpYyBOb2Rl ICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBO b2RlICpxdWVyeSk7CiAldHlwZSA8ZGVmZWx0Pglkcm9wX29wdGlvbgogJXR5cGUgPGJvb2xlYW4+ CW9wdF9vcl9yZXBsYWNlIG9wdF9ubwogCQkJCW9wdF9ncmFudF9ncmFudF9vcHRpb24KLQkJCQlv cHRfbm93YWl0IG9wdF9pZl9leGlzdHMgb3B0X3dpdGhfZGF0YQorCQkJCW9wdF9ub3dhaXQgb3B0 X3NhZmUgb3B0X2lmX2V4aXN0cyBvcHRfd2l0aF9kYXRhCiAJCQkJb3B0X3RyYW5zYWN0aW9uX2No YWluCiAldHlwZSA8bGlzdD4JZ3JhbnRfcm9sZV9vcHRfbGlzdAogJXR5cGUgPGRlZmVsdD4JZ3Jh bnRfcm9sZV9vcHQKQEAgLTc3NCw3ICs3NzQsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog CVJFU0VUIFJFU1BFQ1RfUCBSRVNUQVJUIFJFU1RSSUNUIFJFVFVSTiBSRVRVUk5JTkcgUkVUVVJO UyBSRVZPS0UgUklHSFQgUk9MRSBST0xMQkFDSyBST0xMVVAKIAlST1VUSU5FIFJPVVRJTkVTIFJP VyBST1dTIFJVTEUKIAotCVNBVkVQT0lOVCBTQ0FMQVIgU0NIRU1BIFNDSEVNQVMgU0NST0xMIFNF QVJDSCBTRUNPTkRfUCBTRUNVUklUWSBTRUxFQ1QKKwlTQUZFIFNBVkVQT0lOVCBTQ0FMQVIgU0NI RU1BIFNDSEVNQVMgU0NST0xMIFNFQVJDSCBTRUNPTkRfUCBTRUNVUklUWSBTRUxFQ1QKIAlTRVFV RU5DRSBTRVFVRU5DRVMKIAlTRVJJQUxJWkFCTEUgU0VSVkVSIFNFU1NJT04gU0VTU0lPTl9VU0VS IFNFVCBTRVRTIFNFVE9GIFNIQVJFIFNIT1cKIAlTSU1JTEFSIFNJTVBMRSBTS0lQIFNNQUxMSU5U IFNOQVBTSE9UIFNPTUUgU09VUkNFIFNRTF9QIFNUQUJMRSBTVEFOREFMT05FX1AKQEAgLTkyOTEs MTQgKzkyOTEsMTUgQEAgZG9zdG10X29wdF9pdGVtOgogICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwog CiBDcmVhdGVDYXN0U3RtdDogQ1JFQVRFIENBU1QgJygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcp JwotCQkJCQlXSVRIIEZVTkNUSU9OIGZ1bmN0aW9uX3dpdGhfYXJndHlwZXMgY2FzdF9jb250ZXh0 CisJCQkJCVdJVEggb3B0X3NhZmUgRlVOQ1RJT04gZnVuY3Rpb25fd2l0aF9hcmd0eXBlcyBjYXN0 X2NvbnRleHQKIAkJCQl7CiAJCQkJCUNyZWF0ZUNhc3RTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRl Q2FzdFN0bXQpOwogCiAJCQkJCW4tPnNvdXJjZXR5cGUgPSAkNDsKIAkJCQkJbi0+dGFyZ2V0dHlw ZSA9ICQ2OwotCQkJCQluLT5mdW5jID0gJDEwOwotCQkJCQluLT5jb250ZXh0ID0gKENvZXJjaW9u Q29udGV4dCkgJDExOworCQkJCQluLT5zYWZlID0gJDk7CisJCQkJCW4tPmZ1bmMgPSAkMTE7CisJ CQkJCW4tPmNvbnRleHQgPSAoQ29lcmNpb25Db250ZXh0KSAkMTI7CiAJCQkJCW4tPmlub3V0ID0g ZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC05MzA5LDYgKzkzMTAsNyBA QCBDcmVhdGVDYXN0U3RtdDogQ1JFQVRFIENBU1QgJygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcp JwogCiAJCQkJCW4tPnNvdXJjZXR5cGUgPSAkNDsKIAkJCQkJbi0+dGFyZ2V0dHlwZSA9ICQ2Owor CQkJCQluLT5zYWZlID0gZmFsc2U7CiAJCQkJCW4tPmZ1bmMgPSBOVUxMOwogCQkJCQluLT5jb250 ZXh0ID0gKENvZXJjaW9uQ29udGV4dCkgJDEwOwogCQkJCQluLT5pbm91dCA9IGZhbHNlOwpAQCAt OTMyMSw2ICs5MzIzLDcgQEAgQ3JlYXRlQ2FzdFN0bXQ6IENSRUFURSBDQVNUICcoJyBUeXBlbmFt ZSBBUyBUeXBlbmFtZSAnKScKIAogCQkJCQluLT5zb3VyY2V0eXBlID0gJDQ7CiAJCQkJCW4tPnRh cmdldHR5cGUgPSAkNjsKKwkJCQkJbi0+c2FmZSA9IGZhbHNlOwogCQkJCQluLT5mdW5jID0gTlVM TDsKIAkJCQkJbi0+Y29udGV4dCA9IChDb2VyY2lvbkNvbnRleHQpICQxMDsKIAkJCQkJbi0+aW5v dXQgPSB0cnVlOwpAQCAtOTMzMyw2ICs5MzM2LDkgQEAgY2FzdF9jb250ZXh0OiAgQVMgSU1QTElD SVRfUAkJCQkJeyAkJCA9IENPRVJDSU9OX0lNUExJQ0lUOyB9CiAJCXwgLypFTVBUWSovCQkJCQkJ CQl7ICQkID0gQ09FUkNJT05fRVhQTElDSVQ7IH0KIAkJOwogCitvcHRfc2FmZTogU0FGRQkJCQkJ CXsgJCQgPSB0cnVlOyB9CisJCXwgLypFTVBUWSovCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOwog CiBEcm9wQ2FzdFN0bXQ6IERST1AgQ0FTVCBvcHRfaWZfZXhpc3RzICcoJyBUeXBlbmFtZSBBUyBU eXBlbmFtZSAnKScgb3B0X2Ryb3BfYmVoYXZpb3IKIAkJCQl7CkBAIC0xODEwOCw2ICsxODExNCw3 IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgUk9VVElORVMKIAkJCXwgUk9XUwogCQkJfCBS VUxFCisJCQl8IFNBRkUKIAkJCXwgU0FWRVBPSU5UCiAJCQl8IFNDQUxBUgogCQkJfCBTQ0hFTUEK QEAgLTE4NzQ0LDYgKzE4NzUxLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBST1cKIAkJ CXwgUk9XUwogCQkJfCBSVUxFCisJCQl8IFNBRkUKIAkJCXwgU0FWRVBPSU5UCiAJCQl8IFNDQUxB UgogCQkJfCBTQ0hFTUEKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDdkM2VkMGViODkwLi5h MzUwYzdlZGQxMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC0zMDUxLDcgKzMwNTEsNiBA QCBDb2VyY2lvbkVycm9yU2FmZUNoZWNrKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4 cHIsIE5vZGUgKnNvdXJjZWV4cHIsIE9pZAogewogCUhlYXBUdXBsZQl0dXBsZTsKIAlib29sIAll cnJvcnNhZmUgPSB0cnVlOwotCWJvb2wJdXNlcmRlZmluZWQgPSBmYWxzZTsKIAlPaWQJCWlucHV0 QmFzZVR5cGU7CiAJT2lkCQl0YXJnZXRCYXNlVHlwZTsKIAlPaWQgCWlucHV0RWxlbWVudFR5cGU7 CkBAIC0zMTIzLDExICszMTIyLDggQEAgQ29lcmNpb25FcnJvclNhZmVDaGVjayhQYXJzZVN0YXRl ICpwc3RhdGUsIE5vZGUgKmNhc3RleHByLCBOb2RlICpzb3VyY2VleHByLCBPaWQKIAkJewogCQkJ Rm9ybV9wZ19jYXN0IGNhc3RGb3JtID0gKEZvcm1fcGdfY2FzdCkgR0VUU1RSVUNUKHR1cGxlKTsK IAotCQkJaWYgKGNhc3RGb3JtLT5vaWQgPiBGaXJzdFVucGlubmVkT2JqZWN0SWQpCi0JCQl7CisJ CQlpZiAoT2lkSXNWYWxpZChjYXN0Rm9ybS0+Y2FzdGZ1bmMpICYmICFjYXN0Rm9ybS0+Y2FzdGVy cm9yc2FmZSkKIAkJCQllcnJvcnNhZmUgPSBmYWxzZTsKLQkJCQl1c2VyZGVmaW5lZCA9IHRydWU7 Ci0JCQl9CiAKIAkJCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CiAJCX0KQEAgLTMxNDEsOSArMzEz Nyw3IEBAIENvZXJjaW9uRXJyb3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpj YXN0ZXhwciwgTm9kZSAqc291cmNlZXhwciwgT2lkCiAJCQkJCSAgIGZvcm1hdF90eXBlX2JlKHRh cmdldFR5cGUpLAogCQkJCQkgICAiREVGQVVMVCIsCiAJCQkJCSAgICJDQVNUIC4uLiBPTiBDT05W RVJTSU9OIEVSUk9SIiksCi0JCQkJdXNlcmRlZmluZWQKLQkJCQk/IGVycmhpbnQoIlNhZmUgdHlw ZSBjYXN0IGZvciB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIikKLQkJ CQk6IGVycmhpbnQoIkV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBu b3QgZXJyb3Igc2FmZSIpLAorCQkJCWVycmhpbnQoIkV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBi dXQgZGVmaW5pdGlvbiBpcyBub3QgZXJyb3Igc2FmZSIpLAogCQkJCXBhcnNlcl9lcnJwb3NpdGlv bihwc3RhdGUsIGV4cHJMb2NhdGlvbihzb3VyY2VleHByKSkpOwogfQogCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19j YXN0LmRhdAppbmRleCBmYmZkNjY5NTg3Zi4uY2E1MmNmY2QwODYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19j YXN0LmRhdApAQCAtMTksNjUgKzE5LDY1IEBACiAjIGludDItPmludDQtPmludDgtPm51bWVyaWMt PmZsb2F0NC0+ZmxvYXQ4LCB3aGlsZSBjYXN0cyBpbiB0aGUKICMgcmV2ZXJzZSBkaXJlY3Rpb24g YXJlIGFzc2lnbm1lbnQtb25seS4KIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQg PT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihpbnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50OCknLAotICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0 NChpbnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBj YXN0ZnVuYyA9PiAnZmxvYXQ4KGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJn ZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhpbnQ4KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoaW50Mikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0 NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2Fz dHRhcmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChpbnQyKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVy aWMoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNh c3RmdW5jID0+ICdpbnQ4KGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQg PT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQn LCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGludDQpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdm bG9hdDgoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnbnVtZXJp YycsIGNhc3RmdW5jID0+ICdudW1lcmljKGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0Jywg Y2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGZsb2F0NCknLAotICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIo ZmxvYXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBj YXN0ZnVuYyA9PiAnaW50NChmbG9hdDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRh cmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChmbG9hdDQpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsCi0gIGNhc3RmdW5jID0+ICdu dW1lcmljKGZsb2F0NCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3RmdW5jID0+ICdudW1lcmljKGZsb2F0NCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGZsb2F0 OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1 bmMgPT4gJ2ludDIoZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQg PT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxv YXQ4JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChmbG9hdDgp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsCi0gIGNh c3RmdW5jID0+ICdudW1lcmljKGZsb2F0OCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdudW1lcmljKGZsb2F0OCknLCBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9 PiAnaW50OChudW1lcmljKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIobnVtZXJpYyknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdudW1l cmljJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KG51bWVyaWMpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsCi0gIGNhc3Rm dW5jID0+ICdmbG9hdDQobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdmbG9hdDQobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsCi0gIGNhc3RmdW5j ID0+ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3RmdW5jID0+ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnbW9uZXknLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251 bWVyaWMobW9uZXkpJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAogeyBjYXN0c291cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnbW9uZXknLCBjYXN0 ZnVuYyA9PiAnbW9uZXkobnVtZXJpYyknLApAQCAtODksMTMgKzg5LDEzIEBACiAKICMgQWxsb3cg ZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4gaW50NCBhbmQgYm9vbAogeyBjYXN0c291cmNlID0+ ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnYm9vbCcsIGNhc3RmdW5jID0+ICdib29sKGludDQpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAn aW50NChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiAKICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4geGlkOCBhbmQg eGlkCiB7IGNhc3Rzb3VyY2UgPT4gJ3hpZDgnLCBjYXN0dGFyZ2V0ID0+ICd4aWQnLCBjYXN0ZnVu YyA9PiAneGlkKHhpZDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIAogIyBPSUQgY2F0ZWdvcnk6IGFsbG93IGltcGxpY2l0IGNvbnZlcnNp b24gZnJvbSBhbnkgaW50ZWdyYWwgdHlwZSAoaW5jbHVkaW5nCiAjIGludDgsIHRvIHN1cHBvcnQg T0lEIGxpdGVyYWxzID4gMkcpIHRvIE9JRCwgYXMgd2VsbCBhcyBhc3NpZ25tZW50IGNvZXJjaW9u CkBAIC0xMDYsMTMgKzEwNiwxMyBAQAogIyBjYXN0cyBmcm9tIHRleHQgYW5kIHZhcmNoYXIgdG8g cmVnY2xhc3MsIHdoaWNoIGV4aXN0IG1haW5seSB0byBzdXBwb3J0CiAjIGxlZ2FjeSBmb3JtcyBv ZiBuZXh0dmFsKCkgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zLgogeyBjYXN0c291cmNlID0+ICdpbnQ4 JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDInLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2MnLCBjYXN0ZnVuYyA9PiAnMCcs CkBAIC0xMjAsMTMgKzEyMCwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRh cmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ ICdyZWdwcm9jJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0 dGFyZ2V0ID0+ICdyZWdwcm9jJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAncmVncHJvY2VkdXJlJywgY2Fz dGZ1bmMgPT4gJzAnLApAQCAtMTM4LDEzICsxMzgsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVn cHJvY2VkdXJlJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5j ID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3Jl Z3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Jl Z3Byb2NlZHVyZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAn b2lkJywgY2FzdHRhcmdldCA9PiAncmVnb3BlcicsIGNhc3RmdW5jID0+ICcwJywKQEAgLTE1Miwx MyArMTUyLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdv aWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXIn LCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4g J3JlZ29wZXInLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQn LCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXIn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICcw JywKQEAgLTE3MCwxMyArMTcwLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXJhdG9yJywg Y2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFy Z2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQyJywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQy KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBj YXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcmF0b3InLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTg0LDEzICsxODQsMTMgQEAKIHsg Y2FzdHNvdXJjZSA9PiAncmVnY2xhc3MnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9 PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4g J29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNh c3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywgY2FzdHRhcmdl dCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdj bGFzcycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywg Y2FzdHRhcmdldCA9PiAncmVnY29sbGF0aW9uJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTk4LDEz ICsxOTgsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29sbGF0aW9uJywgY2FzdHRhcmdldCA9 PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdj b2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0 YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMg PT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3R0YXJnZXQg PT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVn dHlwZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTIxMiwxMyArMjEyLDEzIEBACiB7IGNhc3Rzb3Vy Y2UgPT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAn aW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBl JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4Jywg Y2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3R5cGUnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4g J3JlZ2NvbmZpZycsIGNhc3RmdW5jID0+ICcwJywKQEAgLTIyNiwxMyArMjI2LDEzIEBACiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ2NvbmZpZycsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4g J29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBj YXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0 ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29uZmlnJywgY2FzdHRh cmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdy ZWdjb25maWcnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29p ZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0y NDAsMzEgKzI0MCwzMSBAQAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdHRh cmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ ICdyZWdkaWN0aW9uYXJ5JywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDIn LCBjYXN0dGFyZ2V0ID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50Mikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdHRhcmdldCA9PiAnaW50OCcs IGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5Jywg Y2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRh cmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAncmVnY2xhc3MnLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAncmVnY2xh c3MnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9 PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3JvbGUnLCBjYXN0ZnVuYyA9PiAn b2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3JvbGUnLCBjYXN0 ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0 YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTI3MiwxMyArMjcy LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3R0YXJnZXQgPT4gJ29p ZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNw YWNlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0 ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAncmVnbmFtZXNwYWNlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdp bnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0dGFyZ2V0ID0+ICdp bnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFi YXNlJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjg2LDEzICsyODYsMTMgQEAKIHsgY2FzdHNvdXJj ZSA9PiAncmVnZGF0YWJhc2UnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJ29p ZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNh c3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RhdGFiYXNlJywgY2Fz dHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIApAQCAtMzAyLDU3ICsz MDIsNTcgQEAKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXIn LCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn YicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNh c3RmdW5jID0+ICd0ZXh0KGJwY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFy Z2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoYnBjaGFyKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAn Y2hhcicsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChjaGFyKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAn YnBjaGFyKGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNo YXInLCBjYXN0ZnVuYyA9PiAndGV4dChjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ25hbWUnLCBjYXN0 dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQobmFtZSknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICduYW1lJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJ2JwY2hhcihuYW1l KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ25hbWUnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1 bmMgPT4gJ3ZhcmNoYXIobmFtZSknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9 PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKHRleHQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFy JywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKHRleHQpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hh cih0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ICduYW1lJywgY2Fz dGZ1bmMgPT4gJ25hbWUodGV4dCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0 ID0+ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUoYnBjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Zh cmNoYXInLCBjYXN0dGFyZ2V0ID0+ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUodmFyY2hhcikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog CiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGJ5dGVhIGFuZCBpbnRlZ2VyIHR5 cGVzCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdieXRlYScsIGNhc3Rm dW5jID0+ICdieXRlYShpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ ICdieXRlYScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgn LCBjYXN0dGFyZ2V0ID0+ICdieXRlYScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQ4KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQy KGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNh c3RmdW5jID0+ICdpbnQ0KGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdl dCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQWxsb3cgZXhwbGljaXQg Y29lcmNpb25zIGJldHdlZW4gaW50NCBhbmQgImNoYXIiCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXIn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoY2hhciknLAotICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKGlu dDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIAogIyBwZ19ub2RlX3RyZWUgY2FuIGJlIGNvZXJjZWQgdG8sIGJ1dCBub3QgZnJvbSwgdGV4 dAogeyBjYXN0c291cmNlID0+ICdwZ19ub2RlX3RyZWUnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0Jywg Y2FzdGZ1bmMgPT4gJzAnLApAQCAtMzc4LDczICszNzgsNzMgQEAKIAogIyBEYXRldGltZSBjYXRl Z29yeQogeyBjYXN0c291cmNlID0+ICdkYXRlJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wJywK LSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcChkYXRlKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcChkYXRlKScsIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdkYXRlJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wdHonLAot ICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wdHooZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eihkYXRlKScsIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lJywgY2FzdHRhcmdldCA9PiAnaW50ZXJ2YWwnLCBj YXN0ZnVuYyA9PiAnaW50ZXJ2YWwodGltZSknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lJywgY2FzdHRh cmdldCA9PiAndGltZXR6JywgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1lKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ2RhdGUnLAotICBjYXN0ZnVuYyA9PiAnZGF0 ZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLAotICBjYXN0ZnVuYyA9PiAndGltZSh0 aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0ZnVuYyA9PiAndGltZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Rp bWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcHR6JywKLSAgY2FzdGZ1bmMgPT4gJ3Rp bWVzdGFtcHR6KHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3RhbXApJywgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAnZGF0ZScsCi0gIGNh c3RmdW5jID0+ICdkYXRlKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wdHopJywgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAndGltZScsCi0g IGNhc3RmdW5jID0+ICd0aW1lKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wdHopJywgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAndGltZXN0 YW1wJywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcCh0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAo dGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2Fz dHRhcmdldCA9PiAndGltZXR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1lc3RhbXB0eikn LCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ ICd0aW1ldHoodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludGVydmFs JywgY2FzdHRhcmdldCA9PiAndGltZScsIGNhc3RmdW5jID0+ICd0aW1lKGludGVydmFsKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3RpbWV0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAn dGltZSh0aW1ldHopJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIAogIyBHZW9tZXRyaWMgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAncG9p bnQnLCBjYXN0dGFyZ2V0ID0+ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KHBvaW50KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnbHNlZycsIGNhc3R0YXJnZXQgPT4gJ3BvaW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50 KGxzZWcpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdwYXRoJywgY2FzdHRhcmdldCA9PiAncG9seWdvbicsIGNh c3RmdW5jID0+ICdwb2x5Z29uKHBhdGgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gnLCBjYXN0dGFyZ2V0 ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2ludChib3gpJywKLSAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gn LCBjYXN0dGFyZ2V0ID0+ICdsc2VnJywgY2FzdGZ1bmMgPT4gJ2xzZWcoYm94KScsCi0gIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAncG9seWdvbicsIGNhc3RmdW5jID0+ICdwb2x5Z29u KGJveCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNhc3R0YXJnZXQgPT4gJ2NpcmNsZScsIGNhc3Rm dW5jID0+ICdjaXJjbGUoYm94KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQg PT4gJ3BvaW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50KHBvbHlnb24pJywKLSAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdw b2x5Z29uJywgY2FzdHRhcmdldCA9PiAncGF0aCcsIGNhc3RmdW5jID0+ICdwYXRoJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMgPT4gJ2JveChw b2x5Z29uKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4gJ2NpcmNsZScs Ci0gIGNhc3RmdW5jID0+ICdjaXJjbGUocG9seWdvbiknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdjaXJjbGUocG9seWdvbiknLCBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNhc3Rm dW5jID0+ICdwb2ludChjaXJjbGUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0 ID0+ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KGNpcmNsZSknLAotICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpcmNs ZScsIGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24nLAotICBjYXN0ZnVuYyA9PiAncG9seWdvbihjaXJj bGUpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVu YyA9PiAncG9seWdvbihjaXJjbGUpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJ30sCiAKICMgTUFDIGFkZHJlc3MgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnbWFjYWRk cicsIGNhc3R0YXJnZXQgPT4gJ21hY2FkZHI4JywgY2FzdGZ1bmMgPT4gJ21hY2FkZHI4JywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnbWFjYWRkcjgnLCBjYXN0dGFyZ2V0ID0+ICdtYWNhZGRyJywgY2FzdGZ1bmMg PT4gJ21hY2FkZHInLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogCiAjIElORVQgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNh c3R0YXJnZXQgPT4gJ2luZXQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJn ZXQgPT4gJ2NpZHInLCBjYXN0ZnVuYyA9PiAnY2lkcicsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQml0U3RyaW5nIGNhdGVnb3J5CiB7 IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmJpdCcsIGNhc3RmdW5jID0+ ICcwJywKQEAgLTQ1NCwxMyArNDU0LDEzIEBACiAKICMgQ3Jvc3MtY2F0ZWdvcnkgY2FzdHMgYmV0 d2VlbiBiaXQgYW5kIGludDQsIGludDgKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJn ZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQoaW50OCxpbnQ0KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBjYXN0ZnVuYyA9PiAnYml0KGludDQsaW50NCkn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4g J2ludDgoYml0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBj YXN0ZnVuYyA9PiAnaW50NChiaXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJv bSBURVhUCiAjIFdlIG5lZWQgZW50cmllcyBoZXJlIG9ubHkgZm9yIGEgZmV3IHNwZWNpYWxpemVk IGNhc2VzIHdoZXJlIHRoZSBiZWhhdmlvcgpAQCAtNDcxLDY4ICs0NzEsNjggQEAKICMgYmVoYXZp b3Igd2lsbCBlbnN1ZSB3aGVuIHRoZSBhdXRvbWF0aWMgY2FzdCBpcyBhcHBsaWVkIGluc3RlYWQg b2YgdGhlCiAjIHBnX2Nhc3QgZW50cnkhCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFy Z2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoaW5ldCknLAotICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bmV0JywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4 dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0 ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwK IHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ ICd4bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIHRvIGFuZCBmcm9tIFZBUkNIQVIKICMgV2Ug c3VwcG9ydCBhbGwgdGhlIHNhbWUgY2FzdHMgYXMgZm9yIFRFWFQuCiB7IGNhc3Rzb3VyY2UgPT4g J2NpZHInLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoaW5ldCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbmV0JywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5j ID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ3Zh cmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcsIGNh c3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNh c3R0YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4bWwnLAotICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNh c3RzIHRvIGFuZCBmcm9tIEJQQ0hBUgogIyBXZSBzdXBwb3J0IGFsbCB0aGUgc2FtZSBjYXN0cyBh cyBmb3IgVEVYVC4KIHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hh cicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0 YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGJvb2wp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAneG1sJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4 bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogCiAjIExlbmd0aC1jb2VyY2lvbiBmdW5jdGlvbnMKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFy JywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywKICAgY2FzdGZ1bmMgPT4gJ2JwY2hhcihicGNoYXIs aW50NCxib29sKScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsCiAgIGNhc3RmdW5jID0+ ICd2YXJjaGFyKHZhcmNoYXIsaW50NCxib29sKScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lJywgY2FzdHRhcmdldCA9PiAndGltZScsIGNh c3RmdW5jID0+ICd0aW1lKHRpbWUsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBj YXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXAnLAogICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wKHRpbWVz dGFtcCxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcHR6JywKICAgY2Fz dGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KHRpbWVzdGFtcHR6LGludDQpJywgY2FzdGNvbnRleHQgPT4g J2knLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludGVydmFsJywgY2FzdHRhcmdl dCA9PiAnaW50ZXJ2YWwnLAogICBjYXN0ZnVuYyA9PiAnaW50ZXJ2YWwoaW50ZXJ2YWwsaW50NCkn LCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGlt ZXR6JywgY2FzdHRhcmdldCA9PiAndGltZXR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1l dHosaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3RmdW5jID0+ICd0aW1ldHoodGltZXR6LGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2JpdCcsIGNhc3R0YXJnZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQoYml0LGludDQsYm9v bCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICd2YXJiaXQnLCBjYXN0dGFyZ2V0ID0+ICd2YXJiaXQnLCBjYXN0 ZnVuYyA9PiAndmFyYml0JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4g J251bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhudW1lcmljLGludDQpJywgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJp YyhudW1lcmljLGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMganNvbiB0by9mcm9tIGpzb25iCiB7IGNhc3Rz b3VyY2UgPT4gJ2pzb24nLCBjYXN0dGFyZ2V0ID0+ICdqc29uYicsIGNhc3RmdW5jID0+ICcwJywK QEAgLTU0MiwzNiArNTQyLDM2IEBACiAKICMganNvbmIgdG8gbnVtZXJpYyBhbmQgYm9vbCB0eXBl cwogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2Jvb2wnLCBjYXN0ZnVu YyA9PiAnYm9vbChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4g J251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhqc29uYiknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdq c29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50Mihqc29uYiknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAn aW50NChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDgn LCBjYXN0ZnVuYyA9PiAnaW50OChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0 YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoanNvbmIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4 KGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiAKICMgcmFuZ2UgdG8gbXVsdGlyYW5nZQogeyBjYXN0c291cmNlID0+ICdpbnQ0cmFu Z2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0bXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdpbnQ0 bXVsdGlyYW5nZShpbnQ0cmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDhyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ2ludDhtdWx0aXJh bmdlJywKICAgY2FzdGZ1bmMgPT4gJ2ludDhtdWx0aXJhbmdlKGludDhyYW5nZSknLCBjYXN0Y29u dGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtcmFuZ2UnLCBj YXN0dGFyZ2V0ID0+ICdudW1tdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ251bW11bHRpcmFu Z2UobnVtcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2RhdGVyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ2RhdGVtdWx0aXJhbmdlJywKICAg Y2FzdGZ1bmMgPT4gJ2RhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAn ZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndHNyYW5nZScsIGNhc3R0YXJnZXQg PT4gJ3RzbXVsdGlyYW5nZScsCi0gIGNhc3RmdW5jID0+ICd0c211bHRpcmFuZ2UodHNyYW5nZSkn LCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ ICd0c211bHRpcmFuZ2UodHNyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndHN0enJh bmdlJywgY2FzdHRhcmdldCA9PiAndHN0em11bHRpcmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAndHN0 em11bHRpcmFuZ2UodHN0enJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2Nhc3QuaAppbmRleCA2YTBjYTMzNzE1My4uYmY0NzU0NGY2NzUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfY2FzdC5oCkBAIC00Nyw2ICs0NywxMCBAQCBDQVRBTE9HKHBnX2Nhc3QsMjYw NSxDYXN0UmVsYXRpb25JZCkKIAogCS8qIGNhc3QgbWV0aG9kICovCiAJY2hhcgkJY2FzdG1ldGhv ZDsKKworCS8qIGNhc3QgZnVuY3Rpb24gZXJyb3Igc2FmZSAqLworCWJvb2wJCWNhc3RlcnJvcnNh ZmUgQktJX0RFRkFVTFQoZik7CisKIH0gRm9ybURhdGFfcGdfY2FzdDsKIAogLyogLS0tLS0tLS0t LS0tLS0tLQpAQCAtMTAxLDYgKzEwNSw3IEBAIGV4dGVybiBPYmplY3RBZGRyZXNzIENhc3RDcmVh dGUoT2lkIHNvdXJjZXR5cGVpZCwKIAkJCQkJCQkJT2lkIG91dGNhc3RpZCwKIAkJCQkJCQkJY2hh ciBjYXN0Y29udGV4dCwKIAkJCQkJCQkJY2hhciBjYXN0bWV0aG9kLAorCQkJCQkJCQlib29sIGNh c3RlcnJvcnNhZmUsCiAJCQkJCQkJCURlcGVuZGVuY3lUeXBlIGJlaGF2aW9yKTsKIAogI2VuZGlm CQkJCQkJCS8qIFBHX0NBU1RfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDgyYjBmYjgz YjRiLi5lOTk0OTkxOTZjYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDE1NSw2ICs0MTU1 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlQ2FzdFN0bXQKIAlPYmplY3RXaXRoQXJncyAqZnVu YzsKIAlDb2VyY2lvbkNvbnRleHQgY29udGV4dDsKIAlib29sCQlpbm91dDsKKwlib29sCQlzYWZl OwogfSBDcmVhdGVDYXN0U3RtdDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oCmluZGV4IDVkNGZlMjdlZjk2Li5mMmZmNjA5MWZkMiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApA QCAtMzk2LDYgKzM5Niw3IEBAIFBHX0tFWVdPUkQoInJvdXRpbmVzIiwgUk9VVElORVMsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJvdyIsIFJPVywgQ09MX05B TUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJvd3MiLCBST1dTLCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJydWxlIiwgUlVMRSwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgic2FmZSIsIFNBRkUsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInNhdmVwb2ludCIsIFNBVkVQ T0lOVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgic2NhbGFy IiwgU0NBTEFSLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJz Y2hlbWEiLCBTQ0hFTUEsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKaW5kZXggMDA1NGVkMGVmNjcuLjFlMzJj MDQxYjlmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0 Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dApAQCAt ODEsNiArODEsMTIgQEAgTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBjYXN0IGZyb20gaW50ZWdl ciB0byBjYXN0dGVzdHR5cGUKIC0tIFRyeSBpdCB3aXRoIGEgZnVuY3Rpb24gdGhhdCByZXF1aXJl cyBhbiBpbXBsaWNpdCBjYXN0CiBDUkVBVEUgRlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBS RVRVUk5TIHRleHQgTEFOR1VBR0UgU1FMIEFTCiAkJCBTRUxFQ1QgKCdiYXInOjp0ZXh0IHx8ICQx Ojp0ZXh0KTsgJCQ7CitDUkVBVEUgRlVOQ1RJT04gYmFyX2ludDRfdGV4dF9wbHBnKGludDQpIFJF VFVSTlMgdGV4dCBMQU5HVUFHRSBwbHBnc3FsIEFTCiskJCBCRUdJTiBSRVRVUk4gKCdiYXInOjp0 ZXh0IHx8ICQxOjp0ZXh0KTsgRU5EICQkOworQ1JFQVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0 eXBlKSBXSVRIIFNBRkUgRlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBBUyBJTVBMSUNJVDsg LS0gZXJyb3IKK0VSUk9SOiAgU2FmZSB0eXBlIGNhc3QgZnVuY3Rpb25zIGFyZSBvbmx5IHN1cHBv cnRlZCBmb3IgQyBhbmQgaW50ZXJuYWwgbGFuZ3VhZ2VzCitDUkVBVEUgQ0FTVCAoaW50NCBBUyBj YXN0dGVzdHR5cGUpIFdJVEggU0FGRSBGVU5DVElPTiBiYXJfaW50NF90ZXh0X3BscGcoaW50NCkg QVMgSU1QTElDSVQ7IC0tIGVycm9yCitFUlJPUjogIFNhZmUgdHlwZSBjYXN0IGZ1bmN0aW9ucyBh cmUgb25seSBzdXBwb3J0ZWQgZm9yIEMgYW5kIGludGVybmFsIGxhbmd1YWdlcwogQ1JFQVRFIENB U1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50 NCkgQVMgSU1QTElDSVQ7CiBTRUxFQ1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91 bGQgd29yayBub3cKICBjYXN0dGVzdHR5cGUgCkBAIC05Miw3ICs5OCw3IEBAIFNFTEVDVCBDQVNU KDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsgLS0gZXJyCiBFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgaW50ZWdlciB0byBjYXN0dGVz dHR5cGUgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9O IENPTlZFUlNJT04gRVJST1IKIExJTkUgMTogU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0 dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZFLi4uCiAgICAgICAgICAgICAgICAgICAgIF4K LUhJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0 IHN1cHBvcnRlZAorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlv biBpcyBub3QgZXJyb3Igc2FmZQogLS0gY2hlY2sgZGVwZW5kZW5jaWVzIGdlbmVyYXRlZCBmb3Ig dGhhdAogU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdChjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQp IGFzIG9iaiwKICAgICAgICBwZ19kZXNjcmliZV9vYmplY3QocmVmY2xhc3NpZCwgcmVmb2JqaWQs IHJlZm9ianN1YmlkKSBhcyBvYmpyZWYsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL29wcl9zYW5pdHkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2Fu aXR5Lm91dAppbmRleCBhMzU3ZTFkMGMwZS4uODFlYTI0NDg1OWYgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dApAQCAtOTQzLDggKzk0Myw4IEBAIFNFTEVDVCAqCiBG Uk9NIHBnX2Nhc3QgYwogV0hFUkUgY2FzdHNvdXJjZSA9IDAgT1IgY2FzdHRhcmdldCA9IDAgT1Ig Y2FzdGNvbnRleHQgTk9UIElOICgnZScsICdhJywgJ2knKQogICAgIE9SIGNhc3RtZXRob2QgTk9U IElOICgnZicsICdiJyAsJ2knKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNh c3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwg Y2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1l dGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCBy b3dzKQogCiAtLSBDaGVjayB0aGF0IGNhc3RmdW5jIGlzIG5vbnplcm8gb25seSBmb3IgY2FzdCBt ZXRob2RzIHRoYXQgbmVlZCBhIGZ1bmN0aW9uLApAQCAtOTUzLDggKzk1Myw4IEBAIFNFTEVDVCAq CiBGUk9NIHBnX2Nhc3QgYwogV0hFUkUgKGNhc3RtZXRob2QgPSAnZicgQU5EIGNhc3RmdW5jID0g MCkKICAgIE9SIChjYXN0bWV0aG9kIElOICgnYicsICdpJykgQU5EIGNhc3RmdW5jIDw+IDApOwot IG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8 IGNhc3RtZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdl dCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAK Ky0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIExvb2sgZm9yIGNh c3RzIHRvL2Zyb20gdGhlIHNhbWUgdHlwZSB0aGF0IGFyZW4ndCBsZW5ndGggY29lcmNpb24gZnVu Y3Rpb25zLgpAQCAtOTYzLDE1ICs5NjMsMTUgQEAgV0hFUkUgKGNhc3RtZXRob2QgPSAnZicgQU5E IGNhc3RmdW5jID0gMCkKIFNFTEVDVCAqCiBGUk9NIHBnX2Nhc3QgYwogV0hFUkUgY2FzdHNvdXJj ZSA9IGNhc3R0YXJnZXQgQU5EIGNhc3RmdW5jID0gMDsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2Fz dHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250 ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tCiAoMCByb3dzKQogCiBTRUxFQ1QgYy4qCiBGUk9NIHBnX2Nhc3QgYywgcGdfcHJvYyBw CiBXSEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5EIHAucHJvbmFyZ3MgPCAyIEFORCBjYXN0c291 cmNlID0gY2FzdHRhcmdldDsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3Rm dW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2Fz dHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhv ZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dz KQogCiAtLSBMb29rIGZvciBjYXN0IGZ1bmN0aW9ucyB0aGF0IGRvbid0IGhhdmUgdGhlIHJpZ2h0 IHNpZ25hdHVyZS4gIFRoZQpAQCAtOTg5LDggKzk4OSw4IEBAIFdIRVJFIGMuY2FzdGZ1bmMgPSBw Lm9pZCBBTkQKICAgICAgICAgICAgICBPUiAoYy5jYXN0c291cmNlID0gJ2NoYXJhY3Rlcic6OnJl Z3R5cGUgQU5ECiAgICAgICAgICAgICAgICAgIHAucHJvYXJndHlwZXNbMF0gPSAndGV4dCc6OnJl Z3R5cGUpKQogICAgICBPUiBOT1QgYmluYXJ5X2NvZXJjaWJsZShwLnByb3JldHR5cGUsIGMuY2Fz dHRhcmdldCkpOwotIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBj YXN0Y29udGV4dCB8IGNhc3RtZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNl IHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2Fz dGVycm9yc2FmZSAKKy0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIFNF TEVDVCBjLioKQEAgLTk5OCw4ICs5OTgsOCBAQCBGUk9NIHBnX2Nhc3QgYywgcGdfcHJvYyBwCiBX SEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5ECiAgICAgKChwLnByb25hcmdzID4gMSBBTkQgcC5w cm9hcmd0eXBlc1sxXSAhPSAnaW50NCc6OnJlZ3R5cGUpIE9SCiAgICAgIChwLnByb25hcmdzID4g MiBBTkQgcC5wcm9hcmd0eXBlc1syXSAhPSAnYm9vbCc6OnJlZ3R5cGUpKTsKLSBvaWQgfCBjYXN0 c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9k IAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVu YyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBMb29rIGZvciBiaW5hcnkgY29tcGF0 aWJsZSBjYXN0cyB0aGF0IGRvIG5vdCBoYXZlIHRoZSByZXZlcnNlCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9j cmVhdGVfY2FzdC5zcWwKaW5kZXggMGExNWE3OTVkODcuLjMwYTBmZjA3N2M5IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCkBAIC02MCw2ICs2MCwxMSBAQCBEUk9QIEZVTkNUSU9O IGludDRfY2FzdHRlc3R0eXBlKGludDQpIENBU0NBREU7CiBDUkVBVEUgRlVOQ1RJT04gYmFyX2lu dDRfdGV4dChpbnQ0KSBSRVRVUk5TIHRleHQgTEFOR1VBR0UgU1FMIEFTCiAkJCBTRUxFQ1QgKCdi YXInOjp0ZXh0IHx8ICQxOjp0ZXh0KTsgJCQ7CiAKK0NSRUFURSBGVU5DVElPTiBiYXJfaW50NF90 ZXh0X3BscGcoaW50NCkgUkVUVVJOUyB0ZXh0IExBTkdVQUdFIHBscGdzcWwgQVMKKyQkIEJFR0lO IFJFVFVSTiAoJ2Jhcic6OnRleHQgfHwgJDE6OnRleHQpOyBFTkQgJCQ7CisKK0NSRUFURSBDQVNU IChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBTQUZFIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQo aW50NCkgQVMgSU1QTElDSVQ7IC0tIGVycm9yCitDUkVBVEUgQ0FTVCAoaW50NCBBUyBjYXN0dGVz dHR5cGUpIFdJVEggU0FGRSBGVU5DVElPTiBiYXJfaW50NF90ZXh0X3BscGcoaW50NCkgQVMgSU1Q TElDSVQ7IC0tIGVycm9yCiBDUkVBVEUgQ0FTVCAoaW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEgg RlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBBUyBJTVBMSUNJVDsKIFNFTEVDVCAxMjM0Ojpp bnQ0OjpjYXN0dGVzdHR5cGU7IC0tIFNob3VsZCB3b3JrIG5vdwogU0VMRUNUIENBU1QoMTIzNDo6 aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAt LSBlcnJvcgotLSAKMi4zNC4xCgo= --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0019-refactor-point_dt.patch" Content-Disposition: attachment; filename="v15-0019-refactor-point_dt.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtocc3 RnJvbSAzNTcxNWNmYWNkM2VlMTk0NjAxNDQzYmEwMGRjYWM2NTYzMDQ1NGQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTAgRGVjIDIwMjUgMTI6MDA6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAxOS8yMl0gcmVmYWN0b3IgcG9pbnRfZHQKCnBvaW50X2R0IHVzZWQgaW4gbWFueSBwbGFjZXMs IGl0IHdpbGwgYmUgdXNlZCBpbiBsYXRlciBvbiBwYXRjaCwgdGh1cwpyZWZhY3RvcmluZyBtYWtl IGl0IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1m djFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNv bQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMgfCA3NyArKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAz MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29w cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYwppbmRleCA5MTAxYTcyMDc0NC4u YWQ2YmExZDY2MjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYwpAQCAtODIsNyArODIsNyBAQCBz dGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfc3ViX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpw dDEsIFBvaW50ICpwdDIpOwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X211bF9wb2ludChQb2lu dCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBw b2ludF9kaXZfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBz dGF0aWMgaW5saW5lIGJvb2wgcG9pbnRfZXFfcG9pbnQoUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7 Ci1zdGF0aWMgaW5saW5lIGZsb2F0OCBwb2ludF9kdChQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsK K3N0YXRpYyBpbmxpbmUgZmxvYXQ4IHBvaW50X2R0KFBvaW50ICpwdDEsIFBvaW50ICpwdDIsIE5v ZGUgKmVzY29udGV4dCk7CiBzdGF0aWMgaW5saW5lIGZsb2F0OCBwb2ludF9zbChQb2ludCAqcHQx LCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbnQJcG9pbnRfaW5zaWRlKFBvaW50ICpwLCBpbnQgbnB0 cywgUG9pbnQgKnBsaXN0KTsKIApAQCAtODM5LDcgKzgzOSw3IEBAIGJveF9kaXN0YW5jZShQR19G VU5DVElPTl9BUkdTKQogCWJveF9jbigmYSwgYm94MSk7CiAJYm94X2NuKCZiLCBib3gyKTsKIAot CVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQoJmEsICZiKSk7CisJUEdfUkVUVVJOX0ZMT0FUOChw b2ludF9kdCgmYSwgJmIsIE5VTEwpKTsKIH0KIAogCkBAIC0xODA4LDcgKzE4MDgsNyBAQCBwYXRo X2xlbmd0aChQR19GVU5DVElPTl9BUkdTKQogCQkJaXByZXYgPSBwYXRoLT5ucHRzIC0gMTsgLyog aW5jbHVkZSB0aGUgY2xvc3VyZSBzZWdtZW50ICovCiAJCX0KIAotCQlyZXN1bHQgPSBmbG9hdDhf cGwocmVzdWx0LCBwb2ludF9kdCgmcGF0aC0+cFtpcHJldl0sICZwYXRoLT5wW2ldKSk7CisJCXJl c3VsdCA9IGZsb2F0OF9wbChyZXN1bHQsIHBvaW50X2R0KCZwYXRoLT5wW2lwcmV2XSwgJnBhdGgt PnBbaV0sIE5VTEwpKTsKIAl9CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CkBAIC0xOTk1 LDEzICsxOTk1LDI0IEBAIHBvaW50X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUG9pbnQJ ICAgKnB0MSA9IFBHX0dFVEFSR19QT0lOVF9QKDApOwogCVBvaW50CSAgICpwdDIgPSBQR19HRVRB UkdfUE9JTlRfUCgxKTsKIAotCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQocHQxLCBwdDIpKTsK KwlQR19SRVRVUk5fRkxPQVQ4KHBvaW50X2R0KHB0MSwgcHQyLCBOVUxMKSk7CiB9CiAKIHN0YXRp YyBpbmxpbmUgZmxvYXQ4Ci1wb2ludF9kdChQb2ludCAqcHQxLCBQb2ludCAqcHQyKQorcG9pbnRf ZHQoUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9kZSAqZXNjb250ZXh0KQogewotCXJldHVybiBo eXBvdChmbG9hdDhfbWkocHQxLT54LCBwdDItPngpLCBmbG9hdDhfbWkocHQxLT55LCBwdDItPnkp KTsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5OworCisJeCA9IGZsb2F0OF9taV9zYWZlKHB0MS0+ eCwgcHQyLT54LCBlc2NvbnRleHQpOworCWlmICh1bmxpa2VseShTT0ZUX0VSUk9SX09DQ1VSUkVE KGVzY29udGV4dCkpKQorCQlyZXR1cm4gMC4wOworCisJeSAgPSBmbG9hdDhfbWlfc2FmZShwdDEt PnksIHB0Mi0+eSwgZXNjb250ZXh0KTsKKwlpZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJF RChlc2NvbnRleHQpKSkKKwkJcmV0dXJuIDAuMDsKKworCXJldHVybiBoeXBvdCh4LCB5KTsKIH0K IAogRGF0dW0KQEAgLTIxNzMsNyArMjE4NCw3IEBAIGxzZWdfbGVuZ3RoKFBHX0ZVTkNUSU9OX0FS R1MpCiB7CiAJTFNFRwkgICAqbHNlZyA9IFBHX0dFVEFSR19MU0VHX1AoMCk7CiAKLQlQR19SRVRV Uk5fRkxPQVQ4KHBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsxXSkpOworCVBHX1JFVFVS Tl9GTE9BVDgocG9pbnRfZHQoJmxzZWctPnBbMF0sICZsc2VnLT5wWzFdLCBOVUxMKSk7CiB9CiAK IC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpAQCAtMjI1OCw4ICsyMjY5LDggQEAgbHNlZ19sdChQR19GVU5DVElPTl9BUkdTKQogCUxT RUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dFVEFS R19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGx0KHBvaW50X2R0KCZsMS0+cFswXSwg JmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOworCVBH X1JFVFVSTl9CT09MKEZQbHQocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIE5VTEwpLAor CQkJCQkJcG9pbnRfZHQoJmwyLT5wWzBdLCAmbDItPnBbMV0sIE5VTEwpKSk7CiB9CiAKIERhdHVt CkBAIC0yMjY4LDggKzIyNzksOCBAQCBsc2VnX2xlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTFNFRwkg ICAqbDEgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCUxTRUcJICAgKmwyID0gUEdfR0VUQVJHX0xT RUdfUCgxKTsKIAotCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEt PnBbMV0pLAotCQkJCQkJcG9pbnRfZHQoJmwyLT5wWzBdLCAmbDItPnBbMV0pKSk7CisJUEdfUkVU VVJOX0JPT0woRlBsZShwb2ludF9kdCgmbDEtPnBbMF0sICZsMS0+cFsxXSwgTlVMTCksCisJCQkJ CQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgTlVMTCkpKTsKIH0KIAogRGF0dW0KQEAg LTIyNzgsOCArMjI4OSw4IEBAIGxzZWdfZ3QoUEdfRlVOQ1RJT05fQVJHUykKIAlMU0VHCSAgICps MSA9IFBHX0dFVEFSR19MU0VHX1AoMCk7CiAJTFNFRwkgICAqbDIgPSBQR19HRVRBUkdfTFNFR19Q KDEpOwogCi0JUEdfUkVUVVJOX0JPT0woRlBndChwb2ludF9kdCgmbDEtPnBbMF0sICZsMS0+cFsx XSksCi0JCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSkpKTsKKwlQR19SRVRVUk5f Qk9PTChGUGd0KHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdLCBOVUxMKSwKKwkJCQkJCXBv aW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdLCBOVUxMKSkpOwogfQogCiBEYXR1bQpAQCAtMjI4 OCw4ICsyMjk5LDggQEAgbHNlZ19nZShQR19GVU5DVElPTl9BUkdTKQogCUxTRUcJICAgKmwxID0g UEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dFVEFSR19MU0VHX1AoMSk7 CiAKLQlQR19SRVRVUk5fQk9PTChGUGdlKHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdKSwK LQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOworCVBHX1JFVFVSTl9CT09M KEZQZ2UocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIE5VTEwpLAorCQkJCQkJcG9pbnRf ZHQoJmwyLT5wWzBdLCAmbDItPnBbMV0sIE5VTEwpKSk7CiB9CiAKIApAQCAtMjc0Myw3ICsyNzU0 LDcgQEAgbGluZV9jbG9zZXB0X3BvaW50KFBvaW50ICpyZXN1bHQsIExJTkUgKmxpbmUsIFBvaW50 ICpwb2ludCkKIAlpZiAocmVzdWx0ICE9IE5VTEwpCiAJCSpyZXN1bHQgPSBjbG9zZXB0OwogCi0J cmV0dXJuIHBvaW50X2R0KCZjbG9zZXB0LCBwb2ludCk7CisJcmV0dXJuIHBvaW50X2R0KCZjbG9z ZXB0LCBwb2ludCwgTlVMTCk7CiB9CiAKIERhdHVtCkBAIC0yNzg0LDcgKzI3OTUsNyBAQCBsc2Vn X2Nsb3NlcHRfcG9pbnQoUG9pbnQgKnJlc3VsdCwgTFNFRyAqbHNlZywgUG9pbnQgKnB0KQogCWlm IChyZXN1bHQgIT0gTlVMTCkKIAkJKnJlc3VsdCA9IGNsb3NlcHQ7CiAKLQlyZXR1cm4gcG9pbnRf ZHQoJmNsb3NlcHQsIHB0KTsKKwlyZXR1cm4gcG9pbnRfZHQoJmNsb3NlcHQsIHB0LCBOVUxMKTsK IH0KIAogRGF0dW0KQEAgLTMxMDgsOSArMzExOSw5IEBAIG9uX3BsKFBHX0ZVTkNUSU9OX0FSR1Mp CiBzdGF0aWMgYm9vbAogbHNlZ19jb250YWluX3BvaW50KExTRUcgKmxzZWcsIFBvaW50ICpwdCkK IHsKLQlyZXR1cm4gRlBlcShwb2ludF9kdChwdCwgJmxzZWctPnBbMF0pICsKLQkJCQlwb2ludF9k dChwdCwgJmxzZWctPnBbMV0pLAotCQkJCXBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsx XSkpOworCXJldHVybiBGUGVxKHBvaW50X2R0KHB0LCAmbHNlZy0+cFswXSwgTlVMTCkgKworCQkJ CXBvaW50X2R0KHB0LCAmbHNlZy0+cFsxXSwgTlVMTCksCisJCQkJcG9pbnRfZHQoJmxzZWctPnBb MF0sICZsc2VnLT5wWzFdLCBOVUxMKSk7CiB9CiAKIERhdHVtCkBAIC0zMTc2LDExICszMTg3LDEx IEBAIG9uX3BwYXRoKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKCFwYXRoLT5jbG9zZWQpCiAJewog CQluID0gcGF0aC0+bnB0cyAtIDE7Ci0JCWEgPSBwb2ludF9kdChwdCwgJnBhdGgtPnBbMF0pOwor CQlhID0gcG9pbnRfZHQocHQsICZwYXRoLT5wWzBdLCBOVUxMKTsKIAkJZm9yIChpID0gMDsgaSA8 IG47IGkrKykKIAkJewotCQkJYiA9IHBvaW50X2R0KHB0LCAmcGF0aC0+cFtpICsgMV0pOwotCQkJ aWYgKEZQZXEoZmxvYXQ4X3BsKGEsIGIpLCBwb2ludF9kdCgmcGF0aC0+cFtpXSwgJnBhdGgtPnBb aSArIDFdKSkpCisJCQliID0gcG9pbnRfZHQocHQsICZwYXRoLT5wW2kgKyAxXSwgTlVMTCk7CisJ CQlpZiAoRlBlcShmbG9hdDhfcGwoYSwgYiksIHBvaW50X2R0KCZwYXRoLT5wW2ldLCAmcGF0aC0+ cFtpICsgMV0sIE5VTEwpKSkKIAkJCQlQR19SRVRVUk5fQk9PTCh0cnVlKTsKIAkJCWEgPSBiOwog CQl9CkBAIC00NzY2LDcgKzQ3NzcsNyBAQCBjaXJjbGVfb3ZlcmxhcChQR19GVU5DVElPTl9BUkdT KQogCUNJUkNMRQkgICAqY2lyY2xlMSA9IFBHX0dFVEFSR19DSVJDTEVfUCgwKTsKIAlDSVJDTEUJ ICAgKmNpcmNsZTIgPSBQR19HRVRBUkdfQ0lSQ0xFX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChG UGxlKHBvaW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCVBHX1JF VFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNlbnRl ciwgTlVMTCksCiAJCQkJCQlmbG9hdDhfcGwoY2lyY2xlMS0+cmFkaXVzLCBjaXJjbGUyLT5yYWRp dXMpKSk7CiB9CiAKQEAgLTQ4MjgsNyArNDgzOSw3IEBAIGNpcmNsZV9jb250YWluZWQoUEdfRlVO Q1RJT05fQVJHUykKIAlDSVJDTEUJICAgKmNpcmNsZTEgPSBQR19HRVRBUkdfQ0lSQ0xFX1AoMCk7 CiAJQ0lSQ0xFCSAgICpjaXJjbGUyID0gUEdfR0VUQVJHX0NJUkNMRV9QKDEpOwogCi0JUEdfUkVU VVJOX0JPT0woRlBsZShwb2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVy KSwKKwlQR19SRVRVUk5fQk9PTChGUGxlKHBvaW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJj bGUyLT5jZW50ZXIsIE5VTEwpLAogCQkJCQkJZmxvYXQ4X21pKGNpcmNsZTItPnJhZGl1cywgY2ly Y2xlMS0+cmFkaXVzKSkpOwogfQogCkBAIC00ODQwLDcgKzQ4NTEsNyBAQCBjaXJjbGVfY29udGFp bihQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlMSA9IFBHX0dFVEFSR19DSVJD TEVfUCgwKTsKIAlDSVJDTEUJICAgKmNpcmNsZTIgPSBQR19HRVRBUkdfQ0lSQ0xFX1AoMSk7CiAK LQlQR19SRVRVUk5fQk9PTChGUGxlKHBvaW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUy LT5jZW50ZXIpLAorCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRl ciwgJmNpcmNsZTItPmNlbnRlciwgTlVMTCksCiAJCQkJCQlmbG9hdDhfbWkoY2lyY2xlMS0+cmFk aXVzLCBjaXJjbGUyLT5yYWRpdXMpKSk7CiB9CiAKQEAgLTUwNjksNyArNTA4MCw3IEBAIGNpcmNs ZV9kaXN0YW5jZShQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlMiA9IFBHX0dF VEFSR19DSVJDTEVfUCgxKTsKIAlmbG9hdDgJCXJlc3VsdDsKIAotCXJlc3VsdCA9IGZsb2F0OF9t aShwb2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVyKSwKKwlyZXN1bHQg PSBmbG9hdDhfbWkocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNlbnRlciwg TlVMTCksCiAJCQkJCSAgIGZsb2F0OF9wbChjaXJjbGUxLT5yYWRpdXMsIGNpcmNsZTItPnJhZGl1 cykpOwogCWlmIChyZXN1bHQgPCAwLjApCiAJCXJlc3VsdCA9IDAuMDsKQEAgLTUwODUsNyArNTA5 Niw3IEBAIGNpcmNsZV9jb250YWluX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJUG9pbnQJICAgKnBv aW50ID0gUEdfR0VUQVJHX1BPSU5UX1AoMSk7CiAJZmxvYXQ4CQlkOwogCi0JZCA9IHBvaW50X2R0 KCZjaXJjbGUtPmNlbnRlciwgcG9pbnQpOworCWQgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIs IHBvaW50LCBOVUxMKTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNpcmNsZS0+cmFkaXVzKTsKIH0K IApAQCAtNTA5Nyw3ICs1MTA4LDcgQEAgcHRfY29udGFpbmVkX2NpcmNsZShQR19GVU5DVElPTl9B UkdTKQogCUNJUkNMRQkgICAqY2lyY2xlID0gUEdfR0VUQVJHX0NJUkNMRV9QKDEpOwogCWZsb2F0 OAkJZDsKIAotCWQgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsIHBvaW50KTsKKwlkID0gcG9p bnRfZHQoJmNpcmNsZS0+Y2VudGVyLCBwb2ludCwgTlVMTCk7CiAJUEdfUkVUVVJOX0JPT0woZCA8 PSBjaXJjbGUtPnJhZGl1cyk7CiB9CiAKQEAgLTUxMTIsNyArNTEyMyw3IEBAIGRpc3RfcGMoUEdf RlVOQ1RJT05fQVJHUykKIAlDSVJDTEUJICAgKmNpcmNsZSA9IFBHX0dFVEFSR19DSVJDTEVfUCgx KTsKIAlmbG9hdDgJCXJlc3VsdDsKIAotCXJlc3VsdCA9IGZsb2F0OF9taShwb2ludF9kdChwb2lu dCwgJmNpcmNsZS0+Y2VudGVyKSwKKwlyZXN1bHQgPSBmbG9hdDhfbWkocG9pbnRfZHQocG9pbnQs ICZjaXJjbGUtPmNlbnRlciwgTlVMTCksCiAJCQkJCSAgIGNpcmNsZS0+cmFkaXVzKTsKIAlpZiAo cmVzdWx0IDwgMC4wKQogCQlyZXN1bHQgPSAwLjA7CkBAIC01MTMwLDcgKzUxNDEsNyBAQCBkaXN0 X2Nwb2ludChQR19GVU5DVElPTl9BUkdTKQogCVBvaW50CSAgICpwb2ludCA9IFBHX0dFVEFSR19Q T0lOVF9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVzdWx0ID0gZmxvYXQ4X21pKHBvaW50 X2R0KHBvaW50LCAmY2lyY2xlLT5jZW50ZXIpLCBjaXJjbGUtPnJhZGl1cyk7CisJcmVzdWx0ID0g ZmxvYXQ4X21pKHBvaW50X2R0KHBvaW50LCAmY2lyY2xlLT5jZW50ZXIsIE5VTEwpLCBjaXJjbGUt PnJhZGl1cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJcmVzdWx0ID0gMC4wOwogCkBAIC01MjE1 LDcgKzUyMjYsNyBAQCBib3hfY2lyY2xlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJY2lyY2xlLT5jZW50 ZXIueCA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBib3gtPmxvdy54KSwgMi4w KTsKIAljaXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLnks IGJveC0+bG93LnkpLCAyLjApOwogCi0JY2lyY2xlLT5yYWRpdXMgPSBwb2ludF9kdCgmY2lyY2xl LT5jZW50ZXIsICZib3gtPmhpZ2gpOworCWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNs ZS0+Y2VudGVyLCAmYm94LT5oaWdoLCBOVUxMKTsKIAogCVBHX1JFVFVSTl9DSVJDTEVfUChjaXJj bGUpOwogfQpAQCAtNTI5OSw3ICs1MzEwLDcgQEAgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1 bHQsIFBPTFlHT04gKnBvbHkpCiAKIAlmb3IgKGkgPSAwOyBpIDwgcG9seS0+bnB0czsgaSsrKQog CQlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9wbChyZXN1bHQtPnJhZGl1cywKLQkJCQkJCQkJICAg cG9pbnRfZHQoJnBvbHktPnBbaV0sICZyZXN1bHQtPmNlbnRlcikpOworCQkJCQkJCQkgICBwb2lu dF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBOVUxMKSk7CiAJcmVzdWx0LT5yYWRp dXMgPSBmbG9hdDhfZGl2KHJlc3VsdC0+cmFkaXVzLCBwb2x5LT5ucHRzKTsKIH0KIAotLSAKMi4z NC4xCgo= --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0020-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v15-0020-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtoca2 RnJvbSA4OTUzOWVjNWM4NjYzODcyYWQ5NTRlOThkNDM1ZjNkNGUzMjFiN2QwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTAgRGVjIDIwMjUgMTM6MzU6NDIgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAyMC8yMl0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBnZW9tZXRyeSBkYXRhIHR5cGUKCnNlbGVj dCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBwcC5wcm9zcmMKZnJv bSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0ZnVuYwpqb2lu IHBnX3R5cGUgcHQgb24gcHQub2lkID0gY2FzdHNvdXJjZQpqb2luIHBnX3R5cGUgcHQxIG9uIHB0 MS5vaWQgPSBjYXN0dGFyZ2V0CmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kICBwdC50eXBhcnJheSA8 PiAwCmFuZCBwdC50eXBuYW1lc3BhY2UgPSAncGdfY2F0YWxvZyc6OnJlZ25hbWVzcGFjZQphbmQg cHQxLnR5cG5hbWVzcGFjZSA9ICdwZ19jYXRhbG9nJzo6cmVnbmFtZXNwYWNlCmFuZCAocHQudHlw Y2F0ZWdvcnkgID0gJ0cnIG9yIHB0MS50eXBjYXRlZ29yeSAgPSAnRycpCm9yZGVyIGJ5IGNhc3Rz b3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0 YXJnZXQgfCAgICBwcm9zcmMKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0KIHBvaW50ICAgICAgfCBib3ggICAgICAgIHwgcG9pbnRfYm94CiBsc2VnICAgICAgIHwgcG9p bnQgICAgICB8IGxzZWdfY2VudGVyCiBwYXRoICAgICAgIHwgcG9seWdvbiAgICB8IHBhdGhfcG9s eQogYm94ICAgICAgICB8IHBvaW50ICAgICAgfCBib3hfY2VudGVyCiBib3ggICAgICAgIHwgbHNl ZyAgICAgICB8IGJveF9kaWFnb25hbAogYm94ICAgICAgICB8IHBvbHlnb24gICAgfCBib3hfcG9s eQogYm94ICAgICAgICB8IGNpcmNsZSAgICAgfCBib3hfY2lyY2xlCiBwb2x5Z29uICAgIHwgcG9p bnQgICAgICB8IHBvbHlfY2VudGVyCiBwb2x5Z29uICAgIHwgcGF0aCAgICAgICB8IHBvbHlfcGF0 aAogcG9seWdvbiAgICB8IGJveCAgICAgICAgfCBwb2x5X2JveAogcG9seWdvbiAgICB8IGNpcmNs ZSAgICAgfCBwb2x5X2NpcmNsZQogY2lyY2xlICAgICB8IHBvaW50ICAgICAgfCBjaXJjbGVfY2Vu dGVyCiBjaXJjbGUgICAgIHwgYm94ICAgICAgICB8IGNpcmNsZV9ib3gKIGNpcmNsZSAgICAgfCBw b2x5Z29uICAgIHwKKDE0IHJvd3MpCgphbHJlYWR5IGVycm9yIHNhZmU6IHBvaW50X2JveCwgYm94 X2RpYWdvbmFsLCBib3hfcG9seSwgcG9seV9wYXRoLCBwb2x5X2JveCwKY2lyY2xlX2NlbnRlcgpU aGlzIHBhdGNoIG1ha2UgdGhlc2UgZnVuY3Rpb25zIGVycm9yIHNhZmU6IHBhdGhfcG9seSwgbHNl Z19jZW50ZXIsIGJveF9jZW50ZXIsCmJveF9jaXJjbGUsIHBvbHlfY2VudGVyLCBwb2x5X2NpcmNs ZSwgY2lyY2xlX2JveAoKY2FuIG5vdCBlcnJvciBzYWZlOiBjYXN0IGNpcmNsZSB0byBwb2x5Z29u LCBiZWNhdXNlIGl0J3MgYSBTUUwgZnVuY3Rpb24KZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3Iu ZXMvbS9DQUNKdWZ4SENNenJIT1c9d1JlOEwzMHJNaEIzc2p3QXYxTEU5MjhGYTdzeE11MVR4LWdA bWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jIHwgMTk0 ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUzIGlu c2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9nZW9fb3BzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCmluZGV4 IGFkNmJhMWQ2NjIxLi5hYmI0MDFhOTEzYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2dlb19vcHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCkBAIC03 Nyw3ICs3Nyw4IEBAIGVudW0gcGF0aF9kZWxpbQogCiAvKiBSb3V0aW5lcyBmb3IgcG9pbnRzICov CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfY29uc3RydWN0KFBvaW50ICpyZXN1bHQsIGZsb2F0 OCB4LCBmbG9hdDggeSk7Ci1zdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfYWRkX3BvaW50KFBvaW50 ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOworc3RhdGljIGlubGluZSB2b2lkIHBv aW50X2FkZF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyLAorCQkJ CSAgIE5vZGUgKmVzY29udGV4dCk7CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfc3ViX3BvaW50 KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwogc3RhdGljIGlubGluZSB2 b2lkIHBvaW50X211bF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQy KTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9kaXZfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9p bnQgKnB0MSwgUG9pbnQgKnB0Mik7CkBAIC0xMDgsNyArMTA5LDcgQEAgc3RhdGljIGZsb2F0OCBs c2VnX2Nsb3NlcHRfbHNlZyhQb2ludCAqcmVzdWx0LCBMU0VHICpvbl9sc2VnLCBMU0VHICp0b19s c2VnKTsKIAogLyogUm91dGluZXMgZm9yIGJveGVzICovCiBzdGF0aWMgaW5saW5lIHZvaWQgYm94 X2NvbnN0cnVjdChCT1ggKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7Ci1zdGF0aWMg dm9pZCBib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpib3gpOworc3RhdGljIHZvaWQgYm94X2Nu KFBvaW50ICpjZW50ZXIsIEJPWCAqYm94LCBOb2RlKiBlc2NvbnRleHQpOwogc3RhdGljIGJvb2wg Ym94X292KEJPWCAqYm94MSwgQk9YICpib3gyKTsKIHN0YXRpYyBmbG9hdDggYm94X2FyKEJPWCAq Ym94KTsKIHN0YXRpYyBmbG9hdDggYm94X2h0KEJPWCAqYm94KTsKQEAgLTEyNSw3ICsxMjYsNyBA QCBzdGF0aWMgZmxvYXQ4IGNpcmNsZV9hcihDSVJDTEUgKmNpcmNsZSk7CiAKIC8qIFJvdXRpbmVz IGZvciBwb2x5Z29ucyAqLwogc3RhdGljIHZvaWQgbWFrZV9ib3VuZF9ib3goUE9MWUdPTiAqcG9s eSk7Ci1zdGF0aWMgdm9pZCBwb2x5X3RvX2NpcmNsZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdPTiAq cG9seSk7CitzdGF0aWMgYm9vbCBwb2x5X3RvX2NpcmNsZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdP TiAqcG9seSwgTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBib29sIGxzZWdfaW5zaWRlX3BvbHko UG9pbnQgKmEsIFBvaW50ICpiLCBQT0xZR09OICpwb2x5LCBpbnQgc3RhcnQpOwogc3RhdGljIGJv b2wgcG9seV9jb250YWluX3BvbHkoUE9MWUdPTiAqY29udGFpbnNfcG9seSwgUE9MWUdPTiAqY29u dGFpbmVkX3BvbHkpOwogc3RhdGljIGJvb2wgcGxpc3Rfc2FtZShpbnQgbnB0cywgUG9pbnQgKnAx LCBQb2ludCAqcDIpOwpAQCAtODM2LDggKzgzNyw4IEBAIGJveF9kaXN0YW5jZShQR19GVU5DVElP Tl9BUkdTKQogCVBvaW50CQlhLAogCQkJCWI7CiAKLQlib3hfY24oJmEsIGJveDEpOwotCWJveF9j bigmYiwgYm94Mik7CisJYm94X2NuKCZhLCBib3gxLCBOVUxMKTsKKwlib3hfY24oJmIsIGJveDIs IE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChwb2ludF9kdCgmYSwgJmIsIE5VTEwpKTsKIH0K QEAgLTg1MSw3ICs4NTIsOSBAQCBib3hfY2VudGVyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQk9YCQkg ICAqYm94ID0gUEdfR0VUQVJHX0JPWF9QKDApOwogCVBvaW50CSAgICpyZXN1bHQgPSAoUG9pbnQg KikgcGFsbG9jKHNpemVvZihQb2ludCkpOwogCi0JYm94X2NuKHJlc3VsdCwgYm94KTsKKwlib3hf Y24ocmVzdWx0LCBib3gsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKChTT0ZUX0VSUk9SX09DQ1VS UkVEKGZjaW5mby0+Y29udGV4dCkpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJO X1BPSU5UX1AocmVzdWx0KTsKIH0KQEAgLTg2OSwxMyArODcyLDI2IEBAIGJveF9hcihCT1ggKmJv eCkKIC8qCQlib3hfY24JLQkJc3RvcmVzIHRoZSBjZW50ZXJwb2ludCBvZiB0aGUgYm94IGludG8g KmNlbnRlci4KICAqLwogc3RhdGljIHZvaWQKLWJveF9jbihQb2ludCAqY2VudGVyLCBCT1ggKmJv eCkKK2JveF9jbihQb2ludCAqY2VudGVyLCBCT1ggKmJveCwgTm9kZSAqZXNjb250ZXh0KQogewot CWNlbnRlci0+eCA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBib3gtPmxvdy54 KSwgMi4wKTsKLQljZW50ZXItPnkgPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gueSwg Ym94LT5sb3cueSksIDIuMCk7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKKworCXggPSBmbG9h dDhfcGxfc2FmZShib3gtPmhpZ2gueCwgYm94LT5sb3cueCwgZXNjb250ZXh0KTsKKwlpZiAoU09G VF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm47CisKKwljZW50ZXItPnggPSBm bG9hdDhfZGl2X3NhZmUoeCwgMi4wLCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VS UkVEKGVzY29udGV4dCkpCisJCXJldHVybjsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShib3gtPmhp Z2gueSwgYm94LT5sb3cueSwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChl c2NvbnRleHQpKQorCQlyZXR1cm47CisKKwljZW50ZXItPnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwg Mi4wLCBlc2NvbnRleHQpOwogfQogCi0KIC8qCQlib3hfd2QJLQkJcmV0dXJucyB0aGUgd2lkdGgg KGxlbmd0aCkgb2YgdGhlIGJveAogICoJCQkJCQkJCSAgKGhvcml6b250YWwgbWFnbml0dWRlKS4K ICAqLwpAQCAtMjMyOCwxMyArMjM0NCwzMSBAQCBsc2VnX2NlbnRlcihQR19GVU5DVElPTl9BUkdT KQogewogCUxTRUcJICAgKmxzZWcgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCVBvaW50CSAgICpy ZXN1bHQ7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAogCXJlc3VsdCA9IChQb2ludCAqKSBw YWxsb2Moc2l6ZW9mKFBvaW50KSk7CiAKLQlyZXN1bHQtPnggPSBmbG9hdDhfZGl2KGZsb2F0OF9w bChsc2VnLT5wWzBdLngsIGxzZWctPnBbMV0ueCksIDIuMCk7Ci0JcmVzdWx0LT55ID0gZmxvYXQ4 X2RpdihmbG9hdDhfcGwobHNlZy0+cFswXS55LCBsc2VnLT5wWzFdLnkpLCAyLjApOworCXggPSBm bG9hdDhfcGxfc2FmZShsc2VnLT5wWzBdLngsIGxzZWctPnBbMV0ueCwgZmNpbmZvLT5jb250ZXh0 KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZh aWw7CisKKwlyZXN1bHQtPnggPSBmbG9hdDhfZGl2X3NhZmUoeCwgMi4wLCBmY2luZm8tPmNvbnRl eHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8g ZmFpbDsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShsc2VnLT5wWzBdLnksIGxzZWctPnBbMV0ueSwg ZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRl eHQpKQorCQlnb3RvIGZhaWw7CisKKwlyZXN1bHQtPnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwgMi4w LCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29u dGV4dCkpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7CisKK2Zh aWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0KIAogCkBAIC0zMjg4LDcgKzMzMjIsNyBAQCBib3hf aW50ZXJwdF9sc2VnKFBvaW50ICpyZXN1bHQsIEJPWCAqYm94LCBMU0VHICpsc2VnKQogCiAJaWYg KHJlc3VsdCAhPSBOVUxMKQogCXsKLQkJYm94X2NuKCZwb2ludCwgYm94KTsKKwkJYm94X2NuKCZw b2ludCwgYm94LCBOVUxMKTsKIAkJbHNlZ19jbG9zZXB0X3BvaW50KHJlc3VsdCwgbHNlZywgJnBv aW50KTsKIAl9CiAKQEAgLTQxMTksMTEgKzQxNTMsMjAgQEAgY29uc3RydWN0X3BvaW50KFBHX0ZV TkNUSU9OX0FSR1MpCiAKIAogc3RhdGljIGlubGluZSB2b2lkCi1wb2ludF9hZGRfcG9pbnQoUG9p bnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0MikKK3BvaW50X2FkZF9wb2ludChQb2lu dCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyLCBOb2RlICplc2NvbnRleHQpCiB7Ci0J cG9pbnRfY29uc3RydWN0KHJlc3VsdCwKLQkJCQkJZmxvYXQ4X3BsKHB0MS0+eCwgcHQyLT54KSwK LQkJCQkJZmxvYXQ4X3BsKHB0MS0+eSwgcHQyLT55KSk7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJ eTsKKworCXggPSBmbG9hdDhfcGxfc2FmZShwdDEtPngsIHB0Mi0+eCwgZXNjb250ZXh0KTsKKwlp ZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm47CisKKwl5ID0gZmxv YXQ4X3BsX3NhZmUocHQxLT55LCBwdDItPnksIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1Jf T0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuOworCisJcG9pbnRfY29uc3RydWN0KHJlc3Vs dCwgeCwgeSk7CiB9CiAKIERhdHVtCkBAIC00MTM1LDcgKzQxNzgsNyBAQCBwb2ludF9hZGQoUEdf RlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IChQb2ludCAqKSBwYWxsb2Moc2l6ZW9mKFBvaW50 KSk7CiAKLQlwb2ludF9hZGRfcG9pbnQocmVzdWx0LCBwMSwgcDIpOworCXBvaW50X2FkZF9wb2lu dChyZXN1bHQsIHAxLCBwMiwgTlVMTCk7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQpOwog fQpAQCAtNDI0Nyw4ICs0MjkwLDggQEAgYm94X2FkZChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVz dWx0ID0gKEJPWCAqKSBwYWxsb2Moc2l6ZW9mKEJPWCkpOwogCi0JcG9pbnRfYWRkX3BvaW50KCZy ZXN1bHQtPmhpZ2gsICZib3gtPmhpZ2gsIHApOwotCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5s b3csICZib3gtPmxvdywgcCk7CisJcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQtPmhpZ2gsICZib3gt PmhpZ2gsIHAsIE5VTEwpOworCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5sb3csICZib3gtPmxv dywgcCwgTlVMTCk7CiAKIAlQR19SRVRVUk5fQk9YX1AocmVzdWx0KTsKIH0KQEAgLTQ0MTEsNyAr NDQ1NCw3IEBAIHBhdGhfYWRkX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW50CQkJaTsKIAogCWZv ciAoaSA9IDA7IGkgPCBwYXRoLT5ucHRzOyBpKyspCi0JCXBvaW50X2FkZF9wb2ludCgmcGF0aC0+ cFtpXSwgJnBhdGgtPnBbaV0sIHBvaW50KTsKKwkJcG9pbnRfYWRkX3BvaW50KCZwYXRoLT5wW2ld LCAmcGF0aC0+cFtpXSwgcG9pbnQsIE5VTEwpOwogCiAJUEdfUkVUVVJOX1BBVEhfUChwYXRoKTsK IH0KQEAgLTQ0NjksNyArNDUxMiw3IEBAIHBhdGhfcG9seShQR19GVU5DVElPTl9BUkdTKQogCiAJ LyogVGhpcyBpcyBub3QgdmVyeSBjb25zaXN0ZW50IC0tLSBvdGhlciBzaW1pbGFyIGNhc2VzIHJl dHVybiBOVUxMIC4uLiAqLwogCWlmICghcGF0aC0+Y2xvc2VkKQotCQllcmVwb3J0KEVSUk9SLAor CQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCSBlcnJtc2coIm9wZW4gcGF0aCBjYW5u b3QgYmUgY29udmVydGVkIHRvIHBvbHlnb24iKSkpOwogCkBAIC00NTE5LDcgKzQ1NjIsOSBAQCBw b2x5X2NlbnRlcihQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gKFBvaW50ICopIHBhbGxv YyhzaXplb2YoUG9pbnQpKTsKIAotCXBvbHlfdG9fY2lyY2xlKCZjaXJjbGUsIHBvbHkpOworCWlm ICghcG9seV90b19jaXJjbGUoJmNpcmNsZSwgcG9seSwgZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdf UkVUVVJOX05VTEwoKTsKKwogCSpyZXN1bHQgPSBjaXJjbGUuY2VudGVyOwogCiAJUEdfUkVUVVJO X1BPSU5UX1AocmVzdWx0KTsKQEAgLTQ5ODEsNyArNTAyNiw3IEBAIGNpcmNsZV9hZGRfcHQoUEdf RlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IChDSVJDTEUgKikgcGFsbG9jKHNpemVvZihDSVJD TEUpKTsKIAotCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5jZW50ZXIsICZjaXJjbGUtPmNlbnRl ciwgcG9pbnQpOworCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5jZW50ZXIsICZjaXJjbGUtPmNl bnRlciwgcG9pbnQsIE5VTEwpOwogCXJlc3VsdC0+cmFkaXVzID0gY2lyY2xlLT5yYWRpdXM7CiAK IAlQR19SRVRVUk5fQ0lSQ0xFX1AocmVzdWx0KTsKQEAgLTUyMDIsMTQgKzUyNDcsMzAgQEAgY2ly Y2xlX2JveChQR19GVU5DVElPTl9BUkdTKQogCiAJYm94ID0gKEJPWCAqKSBwYWxsb2Moc2l6ZW9m KEJPWCkpOwogCi0JZGVsdGEgPSBmbG9hdDhfZGl2KGNpcmNsZS0+cmFkaXVzLCBzcXJ0KDIuMCkp OworCWRlbHRhID0gZmxvYXQ4X2Rpdl9zYWZlKGNpcmNsZS0+cmFkaXVzLCBzcXJ0KDIuMCksIGZj aW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0 KSkKKwkJZ290byBmYWlsOwogCi0JYm94LT5oaWdoLnggPSBmbG9hdDhfcGwoY2lyY2xlLT5jZW50 ZXIueCwgZGVsdGEpOwotCWJveC0+bG93LnggPSBmbG9hdDhfbWkoY2lyY2xlLT5jZW50ZXIueCwg ZGVsdGEpOwotCWJveC0+aGlnaC55ID0gZmxvYXQ4X3BsKGNpcmNsZS0+Y2VudGVyLnksIGRlbHRh KTsKLQlib3gtPmxvdy55ID0gZmxvYXQ4X21pKGNpcmNsZS0+Y2VudGVyLnksIGRlbHRhKTsKKwli b3gtPmhpZ2gueCA9IGZsb2F0OF9wbF9zYWZlKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhLCBmY2lu Zm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkp CisJCWdvdG8gZmFpbDsKKworCWJveC0+bG93LnggPSBmbG9hdDhfbWlfc2FmZShjaXJjbGUtPmNl bnRlci54LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJF RChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmhpZ2gueSA9IGZsb2F0 OF9wbF9zYWZlKGNpcmNsZS0+Y2VudGVyLnksIGRlbHRhLCBmY2luZm8tPmNvbnRleHQpOworCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKwor CWJveC0+bG93LnkgPSBmbG9hdDhfbWlfc2FmZShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSwgZmNp bmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQp KQorCQlnb3RvIGZhaWw7CiAKIAlQR19SRVRVUk5fQk9YX1AoYm94KTsKKworZmFpbDoKKwlQR19S RVRVUk5fTlVMTCgpOwogfQogCiAvKiBib3hfY2lyY2xlKCkKQEAgLTUyMjAsMTUgKzUyODEsMzUg QEAgYm94X2NpcmNsZShQR19GVU5DVElPTl9BUkdTKQogewogCUJPWAkJICAgKmJveCA9IFBHX0dF VEFSR19CT1hfUCgwKTsKIAlDSVJDTEUJICAgKmNpcmNsZTsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4 CQl5OwogCiAJY2lyY2xlID0gKENJUkNMRSAqKSBwYWxsb2Moc2l6ZW9mKENJUkNMRSkpOwogCi0J Y2lyY2xlLT5jZW50ZXIueCA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBib3gt Pmxvdy54KSwgMi4wKTsKLQljaXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwo Ym94LT5oaWdoLnksIGJveC0+bG93LnkpLCAyLjApOworCXggPSBmbG9hdDhfcGxfc2FmZShib3gt PmhpZ2gueCwgYm94LT5sb3cueCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9P Q0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CiAKLQljaXJjbGUtPnJhZGl1 cyA9IHBvaW50X2R0KCZjaXJjbGUtPmNlbnRlciwgJmJveC0+aGlnaCwgTlVMTCk7CisJY2lyY2xl LT5jZW50ZXIueCA9IGZsb2F0OF9kaXZfc2FmZSh4LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7CisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwor CisJeSA9IGZsb2F0OF9wbF9zYWZlKGJveC0+aGlnaC55LCBib3gtPmxvdy55LCBmY2luZm8tPmNv bnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdv dG8gZmFpbDsKKworCWNpcmNsZS0+Y2VudGVyLnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwgMi4wLCBm Y2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4 dCkpCisJCWdvdG8gZmFpbDsKKworCWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNsZS0+ Y2VudGVyLCAmYm94LT5oaWdoLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9DSVJD TEVfUChjaXJjbGUpOworCitmYWlsOgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAKIApAQCAtNTI5 MiwxMCArNTM3MywxMSBAQCBjaXJjbGVfcG9seShQR19GVU5DVElPTl9BUkdTKQogICogWFhYIFRo aXMgYWxnb3JpdGhtIHNob3VsZCB1c2Ugd2VpZ2h0ZWQgbWVhbnMgb2YgbGluZSBzZWdtZW50cwog ICoJcmF0aGVyIHRoYW4gc3RyYWlnaHQgYXZlcmFnZSB2YWx1ZXMgb2YgcG9pbnRzIC0gdGdsIDk3 LzAxLzIxLgogICovCi1zdGF0aWMgdm9pZAotcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQs IFBPTFlHT04gKnBvbHkpCitzdGF0aWMgYm9vbAorcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1 bHQsIFBPTFlHT04gKnBvbHksIE5vZGUgKmVzY29udGV4dCkKIHsKIAlpbnQJCQlpOworCWZsb2F0 OAkJeDsKIAogCUFzc2VydChwb2x5LT5ucHRzID4gMCk7CiAKQEAgLTUzMDQsMTQgKzUzODYsNDMg QEAgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCiAJcmVzdWx0 LT5yYWRpdXMgPSAwOwogCiAJZm9yIChpID0gMDsgaSA8IHBvbHktPm5wdHM7IGkrKykKLQkJcG9p bnRfYWRkX3BvaW50KCZyZXN1bHQtPmNlbnRlciwgJnJlc3VsdC0+Y2VudGVyLCAmcG9seS0+cFtp XSk7Ci0JcmVzdWx0LT5jZW50ZXIueCA9IGZsb2F0OF9kaXYocmVzdWx0LT5jZW50ZXIueCwgcG9s eS0+bnB0cyk7Ci0JcmVzdWx0LT5jZW50ZXIueSA9IGZsb2F0OF9kaXYocmVzdWx0LT5jZW50ZXIu eSwgcG9seS0+bnB0cyk7CisJeworCQlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLAor CQkJCQkJJnJlc3VsdC0+Y2VudGVyLAorCQkJCQkJJnBvbHktPnBbaV0sCisJCQkJCQllc2NvbnRl eHQpOworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZh bHNlOworCX0KKworCXJlc3VsdC0+Y2VudGVyLnggPSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5j ZW50ZXIueCwKKwkJCQkJCQkJCSAgIHBvbHktPm5wdHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQp OworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsK KworCXJlc3VsdC0+Y2VudGVyLnkgPSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5jZW50ZXIueSwK KwkJCQkJCQkJCSAgIHBvbHktPm5wdHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQpOworCWlmIChT T0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKIAogCWZvciAo aSA9IDA7IGkgPCBwb2x5LT5ucHRzOyBpKyspCi0JCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3Bs KHJlc3VsdC0+cmFkaXVzLAotCQkJCQkJCQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3Vs dC0+Y2VudGVyLCBOVUxMKSk7Ci0JcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2KHJlc3VsdC0+ cmFkaXVzLCBwb2x5LT5ucHRzKTsKKwl7CisJCXggPSBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJl c3VsdC0+Y2VudGVyLCBlc2NvbnRleHQpOworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2Nv bnRleHQpKQorCQkJcmV0dXJuIGZhbHNlOworCisJCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3Bs X3NhZmUocmVzdWx0LT5yYWRpdXMsIHgsIGVzY29udGV4dCk7CisJCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGVzY29udGV4dCkpCisJCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmVzdWx0LT5yYWRp dXMgPSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5yYWRpdXMsIHBvbHktPm5wdHMsIGVzY29udGV4 dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNl OworCisJcmV0dXJuIHRydWU7CiB9CiAKIERhdHVtCkBAIC01MzIyLDcgKzU0MzMsOCBAQCBwb2x5 X2NpcmNsZShQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gKENJUkNMRSAqKSBwYWxsb2Mo c2l6ZW9mKENJUkNMRSkpOwogCi0JcG9seV90b19jaXJjbGUocmVzdWx0LCBwb2x5KTsKKwlpZiAo IXBvbHlfdG9fY2lyY2xlKHJlc3VsdCwgcG9seSwgZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9DSVJDTEVfUChyZXN1bHQpOwogfQotLSAKMi4zNC4x Cgo= --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0018-introduce-float8-safe-function.patch" Content-Disposition: attachment; filename="v15-0018-introduce-float8-safe-function.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtocg4 RnJvbSA3MmZhMGZjMWE4YTE1NGI2ODQ0MmQyYTg3MzFiYjgyZTM5ZWZmNGZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTAgRGVjIDIwMjUgMTE6NTU6NDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAxOC8yMl0gaW50cm9kdWNlIGZsb2F0OCBzYWZlIGZ1bmN0aW9uCgp0aGlzIHBhdGNoIGludHJv ZHVjZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uOgpmbG9hdDhfcGxfc2FmZQpmbG9hdDhfbWlfc2Fm ZQpmbG9hdDhfbXVsX3NhZmUKZmxvYXQ4X2Rpdl9zYWZlCgpyZWZhY3RvcmluZyBleGlzdGluZyBm dW5jdGlvbiBpcyBiZSB0b28gaW52YXNpdmUuICB0aHVzIGFkZCB0aGVzZSBuZXcgZnVuY3Rpb25z LgpJdCdzIGNsb3NlIHRvIGV4aXN0aW5nIG5vbi1zYWZlIHZlcnNpb24gZnVuY3Rpb25zLgoKZGlz Y3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4 TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvaW5jbHVkZS91 dGlscy9mbG9hdC5oIHwgNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2Zs b2F0LmgKaW5kZXggMWQwY2IwMjZkNGUuLmY0Njg2MWFiNWMzIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS91dGlscy9mbG9hdC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2Zsb2F0LmgKQEAgLTEw OSwxNiArMTA5LDI0IEBAIGZsb2F0NF9wbChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0 IHZhbDIpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0 OF9wbF9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwgc3RydWN0IE5v ZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJlc3VsdDsKKworCXJlc3VsdCA9IHZhbDEgKyB2 YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlz aW5mKHZhbDIpKQorCXsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKKwkJcmV0 dXJuIDAuMDsKKwl9CisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdDgK IGZsb2F0OF9wbChjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiB7Ci0JZmxv YXQ4CQlyZXN1bHQ7Ci0KLQlyZXN1bHQgPSB2YWwxICsgdmFsMjsKLQlpZiAodW5saWtlbHkoaXNp bmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3Zl cmZsb3dfZXJyb3IoTlVMTCk7Ci0KLQlyZXR1cm4gcmVzdWx0OworCXJldHVybiBmbG9hdDhfcGxf c2FmZSh2YWwxLCB2YWwyLCBOVUxMKTs7CiB9CiAKIHN0YXRpYyBpbmxpbmUgZmxvYXQ0CkBAIC0x MzMsMTYgKzE0MSwyNCBAQCBmbG9hdDRfbWkoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0 NCB2YWwyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgZmxvYXQ4CitmbG9h dDhfbWlfc2FmZShjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIsIHN0cnVjdCBO b2RlICplc2NvbnRleHQpCit7CisJZmxvYXQ4CQlyZXN1bHQ7CisKKwlyZXN1bHQgPSB2YWwxIC0g dmFsMjsKKwlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFp c2luZih2YWwyKSkKKwl7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKGVzY29udGV4dCk7CisJCXJl dHVybiAwLjA7CisJfQorCXJldHVybiByZXN1bHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4 CiBmbG9hdDhfbWkoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQogewotCWZs b2F0OAkJcmVzdWx0OwotCi0JcmVzdWx0ID0gdmFsMSAtIHZhbDI7Ci0JaWYgKHVubGlrZWx5KGlz aW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFsMikpCi0JCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwotCi0JcmV0dXJuIHJlc3VsdDsKKwlyZXR1cm4gZmxvYXQ4X21p X3NhZmUodmFsMSwgdmFsMiwgTlVMTCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgZmxvYXQ0CkBAIC0x NjAsMTkgKzE3NiwzMyBAQCBmbG9hdDRfbXVsKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9h dDQgdmFsMikKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDgKLWZsb2F0OF9tdWwoY29uc3QgZmxv YXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQorZmxvYXQ4X211bF9zYWZlKGNvbnN0IGZsb2F0 OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwgc3RydWN0IE5vZGUgKmVzY29udGV4dCkKIHsKIAlm bG9hdDgJCXJlc3VsdDsKIAogCXJlc3VsdCA9IHZhbDEgKiB2YWwyOwogCWlmICh1bmxpa2VseShp c2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9v dmVyZmxvd19lcnJvcihOVUxMKTsKKwl7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKGVzY29udGV4 dCk7CisJCXJldHVybiAwLjA7CisJfQorCiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYm IHZhbDEgIT0gMC4wICYmIHZhbDIgIT0gMC4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVM TCk7CisJeworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKKwkJcmV0dXJuIDAu MDsKKwl9CiAKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0OAorZmxv YXQ4X211bChjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCit7CisJcmV0dXJu IGZsb2F0OF9tdWxfc2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKK30KKworCiBzdGF0aWMgaW5saW5l IGZsb2F0NAogZmxvYXQ0X2Rpdihjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIp CiB7CkBAIC0xOTAsMjEgKzIyMCwyOCBAQCBmbG9hdDRfZGl2KGNvbnN0IGZsb2F0NCB2YWwxLCBj b25zdCBmbG9hdDQgdmFsMikKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDgKLWZsb2F0OF9kaXYo Y29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQorZmxvYXQ4X2Rpdl9zYWZlKGNv bnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwgc3RydWN0IE5vZGUgKmVzY29udGV4 dCkKIHsKIAlmbG9hdDgJCXJlc3VsdDsKIAogCWlmICh1bmxpa2VseSh2YWwyID09IDAuMCkgJiYg IWlzbmFuKHZhbDEpKQotCQlmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcihOVUxMKTsKKwkJZmxvYXRf emVyb19kaXZpZGVfZXJyb3IoZXNjb250ZXh0KTsKIAlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKIAlp ZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpKQotCQlmbG9hdF9vdmVy Zmxvd19lcnJvcihOVUxMKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKIAlp ZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgIWlzaW5mKHZhbDIp KQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CisJCWZsb2F0X3VuZGVyZmxvd19lcnJv cihlc2NvbnRleHQpOwogCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBmbG9h dDgKK2Zsb2F0OF9kaXYoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQorewor CXJldHVybiBmbG9hdDhfZGl2X3NhZmUodmFsMSwgdmFsMiwgTlVMTCk7Cit9CisKKwogLyoKICAq IFJvdXRpbmVzIGZvciBOYU4tYXdhcmUgY29tcGFyaXNvbnMKICAqCi0tIAoyLjM0LjEKCg== --000000000000efede3064595382e Content-Type: text/x-patch; charset="UTF-8"; name="v15-0021-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Disposition: attachment; filename="v15-0021-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtoc71 RnJvbSAwOGEwNTk1NTg0Zjk1NDBhNTQ1ODZjZmNlMGM1MGVhNDEwYTU5MmJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTAgRGVjIDIwMjUgMTY6MTA6MzggKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAyMS8yMl0gQ0FTVChleHByIEFTIG5ld3R5cGUgREVGQVVMVCBPTiBFUlJPUikKCiogV2l0aCB0 aGlzIHBhdGNoc2V0LCBtb3N0IGZ1bmN0aW9ucyBpbiBwZ19jYXN0LmNhc3RmdW5jIGFyZSBub3cg ZXJyb3Itc2FmZS4KKiBDb2VyY2VWaWFJTyBhbmQgQ29lcmNlVG9Eb21haW4gd2VyZSBhbHJlYWR5 IGVycm9yLXNhZmUgaW4gdGhlIEhFQUQuCiogdGhpcyBwYXRjaCBleHRlbmRzIGVycm9yLXNhZmUg YmVoYXZpb3IgdG8gQXJyYXlDb2VyY2VFeHByLgoqIFdlIGFsc28gZW5zdXJlIHRoYXQgd2hlbiBh IGNvZXJjaW9uIGZhaWxzLCBleGVjdXRpb24gZmFsbHMgYmFjayB0byBldmFsdWF0aW5nCnRoZSBz cGVjaWZpZWQgZGVmYXVsdCBub2RlLgoqIFRoZSBkb2MgaGFzIGJlZW4gcmVmaW5lZCwgdGhvdWdo IGl0IG1heSBzdGlsbCBuZWVkIG1vcmUgcmV2aWV3LgoKZGVtbzoKU0VMRUNUIENBU1QoJzEnIEFT IGRhdGUgIERFRkFVTFQgJzIwMTEtMDEtMDEnIE9OIEVSUk9SKSwKICAgICAgIENBU1QoJ3syMzQs ZGVmLDU2N30nOjp0ZXh0W10gQVMgaW50ZWdlcltdIERFRkFVTFQgJ3stMTAxMX0nIE9OIEVSUk9S KTsKICAgIGRhdGUgICAgfCAgaW50NAotLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiAyMDExLTAxLTAx IHwgey0xMDExfQoKWzBdOiBodHRwczovL2dpdC5wb3N0Z3Jlc3FsLm9yZy9jZ2l0L3Bvc3RncmVz cWwuZ2l0L2NvbW1pdC8/aWQ9YWFhZjk0NDllYzZiZTYyY2IwZDMwZWQzNTg4ZGMzODRmNTYyNzRi CgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dO YmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIGNvbnRyaWIv Y2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQgICAgICAgICAgICB8ICAgNSArCiBjb250cmliL2Np dGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQgICAgICAgICAgfCAgIDUgKwogY29udHJpYi9jaXRl eHQvc3FsL2NpdGV4dC5zcWwgICAgICAgICAgICAgICAgIHwgICAyICsKIC4uLi9wZ19zdGF0X3N0 YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dCAgICB8ICAyMyArLQogY29udHJpYi9wZ19zdGF0 X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5zcWwgICAgIHwgICA1ICsKIGRvYy9zcmMvc2dtbC9zeW50 YXguc2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICAzMCArCiBzcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwci5jICAgICAgICAgICAgICAgfCAxMDkgKystCiBzcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAgMjkgKwogc3JjL2JhY2tlbmQvaml0L2xsdm0v bGx2bWppdF9leHByLmMgICAgICAgICAgIHwgIDI2ICsKIHNyYy9iYWNrZW5kL25vZGVzL25vZGVG dW5jcy5jICAgICAgICAgICAgICAgICB8ICA2MSArKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0 aWwvY2xhdXNlcy5jICAgICAgICAgIHwgIDUxICstCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Fn Zy5jICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2Vy Y2UuYyAgICAgICAgICAgICB8ICA3OCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIu YyAgICAgICAgICAgICAgIHwgNDEyICsrKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2Z1bmMuYyAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90 YXJnZXQuYyAgICAgICAgICAgICB8ICAxNCArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdHlw ZS5jICAgICAgICAgICAgICAgfCAgMTQgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxj bWQuYyAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5j cy5jICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5j ICAgICAgICAgICAgIHwgIDIxICsKIHNyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jICAgICAg ICAgICAgICAgICB8ICAxNCArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oICAgICAg ICAgICAgICAgfCAgIDcgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2ZtZ3IuaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgICAg ICAgfCAgMjEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAg IHwgIDExICsKIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8 ICAzNiArCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmggICAgICAgICAgICAgfCAg IDIgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jb2VyY2UuaCAgICAgICAgICAgICB8ICAx NSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgIDIg Kwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaCAgICAgICAgICAgICAgIHwgICAyICsK IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQgICAgICAgICAgICB8IDgxMCArKysr KysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0 ICAgICB8ICAgNSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0ICAg ICAgfCAgIDcgKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAg IHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jYXN0LnNxbCAgICAgICAgICAgICAgICAg fCAzNTAgKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbCAgICAg ICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9lcXVpdmNsYXNzLnNxbCAgICAgICAg ICAgfCAgIDMgKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAg IHwgICAzICsKIDQwIGZpbGVzIGNoYW5nZWQsIDIxNzkgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0 Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsCgpk aWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dCBiL2NvbnRyaWIv Y2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQKaW5kZXggOGMwYmY1NGYwZjMuLjMzZGExOWQ4ZGY0 IDEwMDY0NAotLS0gYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0CisrKyBiL2Nv bnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQKQEAgLTEwLDYgKzEwLDExIEBAIFdIRVJF IG9wYy5vaWQgPj0gMTYzODQgQU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogLS0tLS0tLS0r LS0tLS0tLS0tCiAoMCByb3dzKQogCitTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4 dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgY2Fu bm90IGNhc3QgdHlwZSBjaGFyYWN0ZXIgdG8gY2l0ZXh0IHdoZW4gREVGQVVMVCBleHByZXNzaW9u IGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNF TEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SS4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgU2FmZSB0eXBlIGNhc3QgZm9yIHVz ZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKIC0tIFRlc3QgdGhlIG9wZXJh dG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5kIDw+LgogU0VMRUNUICdh Jzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0 L2V4cGVjdGVkL2NpdGV4dF8xLm91dCBiL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8x Lm91dAppbmRleCBjNWU1ZjE4MGYyYi4uNjQ3ZWVhMTkxNDIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIv Y2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dAorKysgYi9jb250cmliL2NpdGV4dC9leHBlY3Rl ZC9jaXRleHRfMS5vdXQKQEAgLTEwLDYgKzEwLDExIEBAIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQg QU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogLS0tLS0tLS0rLS0tLS0tLS0tCiAoMCByb3dz KQogCitTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBjaGFy YWN0ZXIgdG8gY2l0ZXh0IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBD QVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhYmMnOjpi cGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSS4uLgorICAgICAgICAgICAg ICAgICAgICBeCitISU5UOiAgU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBh cmUgbm90IHlldCBzdXBwb3J0ZWQKIC0tIFRlc3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcg ZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5kIDw+LgogU0VMRUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpj aXRleHQgQVMgdDsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsIGIv Y29udHJpYi9jaXRleHQvc3FsL2NpdGV4dC5zcWwKaW5kZXggYWExY2Y5YWJkNWMuLjk5Nzk0NDk3 ZDQ3IDEwMDY0NAotLS0gYS9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbAorKysgYi9jb250 cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbApAQCAtOSw2ICs5LDggQEAgU0VMRUNUIGFtbmFtZSwg b3BjbmFtZQogRlJPTSBwZ19vcGNsYXNzIG9wYyBMRUZUIEpPSU4gcGdfYW0gYW0gT04gYW0ub2lk ID0gb3BjbWV0aG9kCiBXSEVSRSBvcGMub2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShv cGMub2lkKTsKIAorU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKIC0tIFRlc3QgdGhlIG9wZXJhdG9y cyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAKIC0tIFRlc3QgPSBhbmQgPD4uCmRpZmYgLS1naXQg YS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0IGIvY29udHJp Yi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dAppbmRleCA3NWM4OTZmMzg4 NS4uNmU2Nzk5N2YwYTIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4 cGVjdGVkL3NlbGVjdC5vdXQKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0 ZWQvc2VsZWN0Lm91dApAQCAtNzMsNiArNzMsMjUgQEAgU0VMRUNUIDEgQVMgImludCIgT0ZGU0VU IDIgRkVUQ0ggRklSU1QgMyBST1cgT05MWTsKIC0tLS0tCiAoMCByb3dzKQogCistLWVycm9yIHNh ZmUgdHlwZSBjYXN0CitTRUxFQ1QgQ0FTVCgnYScgQVMgaW50IERFRkFVTFQgMiBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAgMgorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgnMTEnIEFTIGludCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50NCAKKy0t LS0tLQorICAgMTEKKygxIHJvdykKKworU0VMRUNUIENBU1QoJzEyJyBBUyBudW1lcmljIERFRkFV TFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgICAgICAx MgorKDEgcm93KQorCiAtLSBESVNUSU5DVCBhbmQgT1JERVIgQlkgcGF0dGVybnMKIC0tIFRyeSBz b21lIHF1ZXJ5IHBlcm11dGF0aW9ucyB3aGljaCBvbmNlIHByb2R1Y2VkIGlkZW50aWNhbCBxdWVy eSBJRHMKIFNFTEVDVCBESVNUSU5DVCAxIEFTICJpbnQiOwpAQCAtMjIyLDYgKzI0MSw4IEBAIFNF TEVDVCBjYWxscywgcm93cywgcXVlcnkgRlJPTSBwZ19zdGF0X3N0YXRlbWVudHMgT1JERVIgQlkg cXVlcnkgQ09MTEFURSAiQyI7CiAgICAgIDIgfCAgICAyIHwgU0VMRUNUICQxIEFTICJpbnQiIE9S REVSIEJZIDEKICAgICAgMSB8ICAgIDIgfCBTRUxFQ1QgJDEgQVMgaSBVTklPTiBTRUxFQ1QgJDIg T1JERVIgQlkgaQogICAgICAxIHwgICAgMSB8IFNFTEVDVCAkMSB8fCAkMgorICAgICAyIHwgICAg MiB8IFNFTEVDVCBDQVNUKCQxIEFTIGludCBERUZBVUxUICQyIE9OIENPTlZFUlNJT04gRVJST1Ip CisgICAgIDEgfCAgICAxIHwgU0VMRUNUIENBU1QoJDEgQVMgbnVtZXJpYyBERUZBVUxUICQyIE9O IENPTlZFUlNJT04gRVJST1IpCiAgICAgIDIgfCAgICAyIHwgU0VMRUNUIERJU1RJTkNUICQxIEFT ICJpbnQiCiAgICAgIDAgfCAgICAwIHwgU0VMRUNUIGNhbGxzLCByb3dzLCBxdWVyeSBGUk9NIHBn X3N0YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIgogICAgICAxIHwgICAg MSB8IFNFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0CkBA IC0yMzAsNyArMjUxLDcgQEAgU0VMRUNUIGNhbGxzLCByb3dzLCBxdWVyeSBGUk9NIHBnX3N0YXRf c3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKICAgICAgICB8ICAgICAgfCAp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwogICAgICAgIHwgICAgICB8ICAgU0VMRUNUIGYgRlJPTSB0IE9S REVSIEJZIGYKICAgICAgMSB8ICAgIDEgfCBzZWxlY3QgJDE6Ompzb25iID8gJDIKLSgxNyByb3dz KQorKDE5IHJvd3MpCiAKIFNFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1Qg TlVMTCBBUyB0OwogIHQgCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9z cWwvc2VsZWN0LnNxbCBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3Fs CmluZGV4IDExNjYyY2RlMDhjLi43ZWU4MTYwZmQ4NCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19z dGF0X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5zcWwKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRl bWVudHMvc3FsL3NlbGVjdC5zcWwKQEAgLTI1LDYgKzI1LDExIEBAIFNFTEVDVCAxIEFTICJpbnQi IExJTUlUIDMgT0ZGU0VUIDM7CiBTRUxFQ1QgMSBBUyAiaW50IiBPRkZTRVQgMSBGRVRDSCBGSVJT VCAyIFJPVyBPTkxZOwogU0VMRUNUIDEgQVMgImludCIgT0ZGU0VUIDIgRkVUQ0ggRklSU1QgMyBS T1cgT05MWTsKIAorLS1lcnJvciBzYWZlIHR5cGUgY2FzdAorU0VMRUNUIENBU1QoJ2EnIEFTIGlu dCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTEnIEFTIGlu dCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTInIEFTIG51 bWVyaWMgREVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworCiAtLSBESVNUSU5DVCBhbmQg T1JERVIgQlkgcGF0dGVybnMKIC0tIFRyeSBzb21lIHF1ZXJ5IHBlcm11dGF0aW9ucyB3aGljaCBv bmNlIHByb2R1Y2VkIGlkZW50aWNhbCBxdWVyeSBJRHMKIFNFTEVDVCBESVNUSU5DVCAxIEFTICJp bnQiOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sIGIvZG9jL3NyYy9zZ21s L3N5bnRheC5zZ21sCmluZGV4IDM0YzgzODgwYTY2Li4zMmFmOWVhMDYxYyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbApA QCAtMjEwNiw2ICsyMTA2LDEwIEBAIENBU1QgKCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVw bGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50eXBlPC9yZXBsYWNlYWJsZT4KICAgICBUaGUgPGxp dGVyYWw+Q0FTVDwvbGl0ZXJhbD4gc3ludGF4IGNvbmZvcm1zIHRvIFNRTDsgdGhlIHN5bnRheCB3 aXRoCiAgICAgPGxpdGVyYWw+Ojo8L2xpdGVyYWw+IGlzIGhpc3RvcmljYWwgPHByb2R1Y3RuYW1l PlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPgogICAgIHVzYWdlLgorICAgIFRoZSBlcXVpdmFsZW50 IE9OIENPTlZFUlNJT04gRVJST1IgYmVoYXZpb3IgaXM6Cis8c3lub3BzaXM+CitDQVNUICggPHJl cGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFjZWFibGU+dHlwZTwv cmVwbGFjZWFibGU+IEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IgKQorPC9zeW5vcHNpcz4KICAg IDwvcGFyYT4KIAogICAgPHBhcmE+CkBAIC0yMTYwLDYgKzIxNjQsMzIgQEAgQ0FTVCAoIDxyZXBs YWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3Jl cGxhY2VhYmxlPgogICAgICA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlY2FzdCIvPi4KICAgICA8 L3BhcmE+CiAgICA8L25vdGU+CisKKyA8c2VjdDMgaWQ9InNxbC1zeW50YXgtdHlwZS1jYXN0cy1z YWZlIj4KKyAgPHRpdGxlPlNhZmUgVHlwZSBDYXN0PC90aXRsZT4KKyAgIDxwYXJhPgorICAgIEEg dHlwZSBjYXN0IG1heSBvY2Nhc2lvbmFsbHkgZmFpbC4gVG8gZ3VhcmQgYWdhaW5zdCBzdWNoIGZh aWx1cmVzLCB5b3UgY2FuCisgICAgcHJvdmlkZSBhbiA8bGl0ZXJhbD5PTiBFUlJPUjwvbGl0ZXJh bD4gY2xhdXNlIHRvIGhhbmRsZSBwb3RlbnRpYWwgZXJyb3JzLgorICAgIFRoZSBzeW50YXggZm9y IHNhZmUgdHlwZSBjYXN0IGlzOgorPHN5bm9wc2lzPgorQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHBy ZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPiBE RUZBVUxUIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gT04gQ09OVkVSU0lP TiBFUlJPUiApCis8L3N5bm9wc2lzPgorICAgIElmIHRoZSB0eXBlIGNhc3QgZmFpbHMsIGluc3Rl YWQgb2YgZXJyb3Igb3V0LCBldmFsdWF0aW9uIGZhbGxzIGJhY2sgdG8gdGhlCisgICAgZGVmYXVs dCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IHNwZWNpZmllZCBpbiB0aGUg PGxpdGVyYWw+T04gRVJST1I8L2xpdGVyYWw+IGNsYXVzZS4KKyAgICBBdCBwcmVzZW50LCB0aGlz IG9ubHkgc3VwcG9ydCBidWlsdC1pbiB0eXBlIGNhc3RzOyBzZWUgPHhyZWYgbGlua2VuZD0iY2F0 YWxvZy1wZy1jYXN0Ii8+LgorICAgIFVzZXItZGVmaW5lZCB0eXBlIGNhc3RzIGNyZWF0ZWQgd2l0 aCA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlY2FzdCI+Q1JFQVRFIENBU1Q8L2xpbms+IGFyZSBu b3Qgc3VwcG9ydGVkLgorICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICBTb21lIGV4YW1wbGVz OgorPHNjcmVlbj4KK1NFTEVDVCBDQVNUKFRFWFQgJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFVTFQg MyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKzxsaW5lYW5ub3RhdGlvbj5SZXN1bHQ6IDwvbGluZWFu bm90YXRpb24+PGNvbXB1dGVyb3V0cHV0PjM8L2NvbXB1dGVyb3V0cHV0PgorU0VMRUNUIENBU1Qo VEVYVCAnZXJyb3InIEFTIG51bWVyaWMgREVGQVVMVCAxLjEgT04gQ09OVkVSU0lPTiBFUlJPUik7 Cis8bGluZWFubm90YXRpb24+UmVzdWx0OiA8L2xpbmVhbm5vdGF0aW9uPjxjb21wdXRlcm91dHB1 dD4xLjE8L2NvbXB1dGVyb3V0cHV0PgorPC9zY3JlZW4+CisgICAgPC9wYXJhPgorICA8L3NlY3Qz PgogICA8L3NlY3QyPgogCiAgIDxzZWN0MiBpZD0ic3FsLXN5bnRheC1jb2xsYXRlLWV4cHJzIj4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4IGIwNWZmNDc2YTYzLi5lNjczOGMwYWU3NSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC05OSw2ICs5OSw5IEBAIHN0YXRpYyB2b2lkIEV4ZWNC dWlsZEFnZ1RyYW5zQ2FsbChFeHByU3RhdGUgKnN0YXRlLCBBZ2dTdGF0ZSAqYWdnc3RhdGUsCiBz dGF0aWMgdm9pZCBFeGVjSW5pdEpzb25FeHByKEpzb25FeHByICpqc2V4cHIsIEV4cHJTdGF0ZSAq c3RhdGUsCiAJCQkJCQkJIERhdHVtICpyZXN2LCBib29sICpyZXNudWxsLAogCQkJCQkJCSBFeHBy RXZhbFN0ZXAgKnNjcmF0Y2gpOworc3RhdGljIHZvaWQgRXhlY0luaXRTYWZlVHlwZUNhc3RFeHBy KFNhZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4cHIsIEV4cHJTdGF0ZSAqc3RhdGUsCisJCQkJCQkJCQkg RGF0dW0gKnJlc3YsIGJvb2wgKnJlc251bGwsCisJCQkJCQkJCQkgRXhwckV2YWxTdGVwICpzY3Jh dGNoKTsKIHN0YXRpYyB2b2lkIEV4ZWNJbml0SnNvbkNvZXJjaW9uKEV4cHJTdGF0ZSAqc3RhdGUs IEpzb25SZXR1cm5pbmcgKnJldHVybmluZywKIAkJCQkJCQkJIEVycm9yU2F2ZUNvbnRleHQgKmVz Y29udGV4dCwgYm9vbCBvbWl0X3F1b3RlcywKIAkJCQkJCQkJIGJvb2wgZXhpc3RzX2NvZXJjZSwK QEAgLTE3MCw2ICsxNzMsNDcgQEAgRXhlY0luaXRFeHByKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAq cGFyZW50KQogCXJldHVybiBzdGF0ZTsKIH0KIAorLyoKKyAqIEV4ZWNJbml0RXhwclNhZmU6IHNv ZnQgZXJyb3IgdmFyaWFudCBvZiBFeGVjSW5pdEV4cHIuCisgKgorICogdXNlIGl0IG9ubHkgZm9y IGV4cHJlc3Npb24gbm9kZXMgc3VwcG9ydCBzb2Z0IGVycm9ycywgbm90IGFsbCBleHByZXNzaW9u CisgKiBub2RlcyBzdXBwb3J0IGl0LgorKi8KK0V4cHJTdGF0ZSAqCitFeGVjSW5pdEV4cHJTYWZl KEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KQoreworCUV4cHJTdGF0ZSAgKnN0YXRlOwor CUV4cHJFdmFsU3RlcCBzY3JhdGNoID0gezB9OworCisJLyogU3BlY2lhbCBjYXNlOiBOVUxMIGV4 cHJlc3Npb24gcHJvZHVjZXMgYSBOVUxMIEV4cHJTdGF0ZSBwb2ludGVyICovCisJaWYgKG5vZGUg PT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisKKwkvKiBJbml0aWFsaXplIEV4cHJTdGF0ZSB3aXRo IGVtcHR5IHN0ZXAgbGlzdCAqLworCXN0YXRlID0gbWFrZU5vZGUoRXhwclN0YXRlKTsKKwlzdGF0 ZS0+ZXhwciA9IG5vZGU7CisJc3RhdGUtPnBhcmVudCA9IHBhcmVudDsKKwlzdGF0ZS0+ZXh0X3Bh cmFtcyA9IE5VTEw7CisJc3RhdGUtPmVzY29udGV4dCA9IG1ha2VOb2RlKEVycm9yU2F2ZUNvbnRl eHQpOworCXN0YXRlLT5lc2NvbnRleHQtPnR5cGUgPSBUX0Vycm9yU2F2ZUNvbnRleHQ7CisJc3Rh dGUtPmVzY29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwlzdGF0ZS0+ZXNjb250ZXh0 LT5kZXRhaWxzX3dhbnRlZCA9IGZhbHNlOworCisJLyogSW5zZXJ0IHNldHVwIHN0ZXBzIGFzIG5l ZWRlZCAqLworCUV4ZWNDcmVhdGVFeHByU2V0dXBTdGVwcyhzdGF0ZSwgKE5vZGUgKikgbm9kZSk7 CisKKwkvKiBDb21waWxlIHRoZSBleHByZXNzaW9uIHByb3BlciAqLworCUV4ZWNJbml0RXhwclJl Yyhub2RlLCBzdGF0ZSwgJnN0YXRlLT5yZXN2YWx1ZSwgJnN0YXRlLT5yZXNudWxsKTsKKworCS8q IEZpbmFsbHksIGFwcGVuZCBhIERPTkUgc3RlcCAqLworCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9E T05FX1JFVFVSTjsKKwlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisKKwlFeGVj UmVhZHlFeHByKHN0YXRlKTsKKworCXJldHVybiBzdGF0ZTsKK30KKwogLyoKICAqIEV4ZWNJbml0 RXhwcldpdGhQYXJhbXM6IHByZXBhcmUgYSBzdGFuZGFsb25lIGV4cHJlc3Npb24gdHJlZSBmb3Ig ZXhlY3V0aW9uCiAgKgpAQCAtMTcwMSw2ICsxNzQ1LDcgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIg Km5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAKIAkJCQllbGVtc3RhdGUtPmlubmVybW9zdF9jYXNl dmFsID0gKERhdHVtICopIHBhbGxvYyhzaXplb2YoRGF0dW0pKTsKIAkJCQllbGVtc3RhdGUtPmlu bmVybW9zdF9jYXNlbnVsbCA9IChib29sICopIHBhbGxvYyhzaXplb2YoYm9vbCkpOworCQkJCWVs ZW1zdGF0ZS0+ZXNjb250ZXh0ID0gc3RhdGUtPmVzY29udGV4dDsKIAogCQkJCUV4ZWNJbml0RXhw clJlYyhhY29lcmNlLT5lbGVtZXhwciwgZWxlbXN0YXRlLAogCQkJCQkJCQkmZWxlbXN0YXRlLT5y ZXN2YWx1ZSwgJmVsZW1zdGF0ZS0+cmVzbnVsbCk7CkBAIC0yMTc3LDYgKzIyMjIsMTQgQEAgRXhl Y0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJYnJlYWs7CiAJ CQl9CiAKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0 RXhwciAgICpzdGNleHByID0gY2FzdE5vZGUoU2FmZVR5cGVDYXN0RXhwciwgbm9kZSk7CisKKwkJ CQlFeGVjSW5pdFNhZmVUeXBlQ2FzdEV4cHIoc3RjZXhwciwgc3RhdGUsIHJlc3YsIHJlc251bGws ICZzY3JhdGNoKTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgog CQkJewogCQkJCUNvYWxlc2NlRXhwciAqY29hbGVzY2UgPSAoQ29hbGVzY2VFeHByICopIG5vZGU7 CkBAIC0yNzQzLDcgKzI3OTYsNyBAQCBFeGVjSW5pdEZ1bmMoRXhwckV2YWxTdGVwICpzY3JhdGNo LCBFeHByICpub2RlLCBMaXN0ICphcmdzLCBPaWQgZnVuY2lkLAogCiAJLyogSW5pdGlhbGl6ZSBm dW5jdGlvbiBjYWxsIHBhcmFtZXRlciBzdHJ1Y3R1cmUgdG9vICovCiAJSW5pdEZ1bmN0aW9uQ2Fs bEluZm9EYXRhKCpmY2luZm8sIGZsaW5mbywKLQkJCQkJCQkgbmFyZ3MsIGlucHV0Y29sbGlkLCBO VUxMLCBOVUxMKTsKKwkJCQkJCQkgbmFyZ3MsIGlucHV0Y29sbGlkLCAoTm9kZSAqKSBzdGF0ZS0+ ZXNjb250ZXh0LCBOVUxMKTsKIAogCS8qIEtlZXAgZXh0cmEgY29waWVzIG9mIHRoaXMgaW5mbyB0 byBzYXZlIGFuIGluZGlyZWN0aW9uIGF0IHJ1bnRpbWUgKi8KIAlzY3JhdGNoLT5kLmZ1bmMuZm5f YWRkciA9IGZsaW5mby0+Zm5fYWRkcjsKQEAgLTQ3NDEsNiArNDc5NCw2MCBAQCBFeGVjQnVpbGRQ YXJhbVNldEVxdWFsKFR1cGxlRGVzYyBkZXNjLAogCXJldHVybiBzdGF0ZTsKIH0KIAorLyoKKyAq IFB1c2ggc3RlcHMgdG8gZXZhbHVhdGUgYSBTYWZlVHlwZUNhc3RFeHByIGFuZCBpdHMgdmFyaW91 cyBzdWJzaWRpYXJ5CisgKiBleHByZXNzaW9ucy4KKyAqLworc3RhdGljIHZvaWQKK0V4ZWNJbml0 U2FmZVR5cGVDYXN0RXhwcihTYWZlVHlwZUNhc3RFeHByICpzdGNleHByICwgRXhwclN0YXRlICpz dGF0ZSwKKwkJCQkJCSBEYXR1bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKKwkJCQkJCSBFeHByRXZh bFN0ZXAgKnNjcmF0Y2gpCit7CisJLyoKKwkgKiBJZiB3ZSBjYW4gbm90IGNvZXJjZSB0byB0aGUg dGFyZ2V0IHR5cGUsIGZhbGxiYWNrIHRvIHRoZSBERUZBVUxUCisJICogZXhwcmVzc2lvbiBzcGVj aWZpZWQgaW4gdGhlIE9OIENPTlZFUlNJT04gRVJST1IgY2xhdXNlLCBhbmQgd2UgYXJlIGRvbmUu CisJICovCisJaWYgKHN0Y2V4cHItPmNhc3RfZXhwciA9PSBOVUxMKQorCXsKKwkJRXhlY0luaXRF eHByUmVjKChFeHByICopIHN0Y2V4cHItPmRlZmF1bHRfZXhwciwKKwkJCQkJCXN0YXRlLCByZXN2 LCByZXNudWxsKTsKKwkJcmV0dXJuOworCX0KKwllbHNlCisJeworCQlTYWZlVHlwZUNhc3RTdGF0 ZSAqc3Rjc3RhdGU7CisKKwkJc3Rjc3RhdGUgPSBwYWxsb2MwKHNpemVvZihTYWZlVHlwZUNhc3RT dGF0ZSkpOworCQlzdGNzdGF0ZS0+c3RjZXhwciA9IHN0Y2V4cHI7CisJCXN0Y3N0YXRlLT5lc2Nv bnRleHQudHlwZSA9IFRfRXJyb3JTYXZlQ29udGV4dDsKKwkJc3RhdGUtPmVzY29udGV4dCA9ICZz dGNzdGF0ZS0+ZXNjb250ZXh0OworCisJCS8qIGV2YWx1YXRlIGFyZ3VtZW50IGV4cHJlc3Npb24g aW50byBzdGVwJ3MgcmVzdWx0IGFyZWEgKi8KKwkJRXhlY0luaXRFeHByUmVjKChFeHByICopIHN0 Y2V4cHItPmNhc3RfZXhwciwKKwkJCQkJCXN0YXRlLCByZXN2LCByZXNudWxsKTsKKwkJc2NyYXRj aC0+b3Bjb2RlID0gRUVPUF9TQUZFVFlQRV9DQVNUOworCQlzY3JhdGNoLT5kLnN0Y2V4cHIuc3Rj c3RhdGUgPSBzdGNzdGF0ZTsKKwkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgc2NyYXRjaCk7CisK KwkJLyoKKwkJICogU3RlcHMgdG8gZXZhbHVhdGUgdGhlIERFRkFVTFQgZXhwcmVzc2lvbi4gIFNr aXAgaXQgaWYgdGhpcyBpcyBhCisJCSAqIGJpbmFyeSBjb2VyY2lvbiBjYXN0LgorCQkgKi8KKwkJ aWYgKCFJc0Eoc3RjZXhwci0+Y2FzdF9leHByLCBSZWxhYmVsVHlwZSkpCisJCXsKKwkJCUVycm9y U2F2ZUNvbnRleHQgKnNhdmVkX2VzY29udGV4dDsKKworCQkJc2F2ZWRfZXNjb250ZXh0ID0gc3Rh dGUtPmVzY29udGV4dDsKKwkJCXN0YXRlLT5lc2NvbnRleHQgPSBOVUxMOworCQkJRXhlY0luaXRF eHByUmVjKChFeHByICopIHN0Y3N0YXRlLT5zdGNleHByLT5kZWZhdWx0X2V4cHIsCisJCQkJCQkJ c3RhdGUsIHJlc3YsIHJlc251bGwpOworCQkJc3RhdGUtPmVzY29udGV4dCA9IHNhdmVkX2VzY29u dGV4dDsKKwkJfQorCisJCXN0Y3N0YXRlLT5qdW1wX2VuZCA9IHN0YXRlLT5zdGVwc19sZW47CisJ fQorfQorCiAvKgogICogUHVzaCBzdGVwcyB0byBldmFsdWF0ZSBhIEpzb25FeHByIGFuZCBpdHMg dmFyaW91cyBzdWJzaWRpYXJ5IGV4cHJlc3Npb25zLgogICovCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0V4cHJJbnRlcnAuYwppbmRleCAxZDg4Y2RkMmNiNC4uY2E2ZTBmZDU2Y2QgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtNTY4LDYgKzU2OCw3IEBAIEV4ZWNJbnRlcnBF eHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxs KQogCQkmJkNBU0VfRUVPUF9YTUxFWFBSLAogCQkmJkNBU0VfRUVPUF9KU09OX0NPTlNUUlVDVE9S LAogCQkmJkNBU0VfRUVPUF9JU19KU09OLAorCQkmJkNBU0VfRUVPUF9TQUZFVFlQRV9DQVNULAog CQkmJkNBU0VfRUVPUF9KU09ORVhQUl9QQVRILAogCQkmJkNBU0VfRUVPUF9KU09ORVhQUl9DT0VS Q0lPTiwKIAkJJiZDQVNFX0VFT1BfSlNPTkVYUFJfQ09FUkNJT05fRklOSVNILApAQCAtMTkyNiw2 ICsxOTI3LDI4IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0 ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQogCisJCUVFT19D QVNFKEVFT1BfU0FGRVRZUEVfQ0FTVCkKKwkJeworCQkJU2FmZVR5cGVDYXN0U3RhdGUgKnN0Y3N0 YXRlID0gb3AtPmQuc3RjZXhwci5zdGNzdGF0ZTsKKworCQkJaWYgKFNPRlRfRVJST1JfT0NDVVJS RUQoJnN0Y3N0YXRlLT5lc2NvbnRleHQpKQorCQkJeworCQkJCSpvcC0+cmVzdmFsdWUgPSAoRGF0 dW0pIDA7CisJCQkJKm9wLT5yZXNudWxsID0gdHJ1ZTsKKworCQkJCS8qCisJCQkJICogUmVzZXQg Zm9yIG5leHQgdXNlIHN1Y2ggYXMgZm9yIGNhdGNoaW5nIGVycm9ycyB3aGVuIGNvZXJjaW5nCisJ CQkJICogYSBleHByZXNzaW9uLgorCQkJCSAqLworCQkJCXN0Y3N0YXRlLT5lc2NvbnRleHQuZXJy b3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwkJCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmRldGFpbHNfd2Fu dGVkID0gZmFsc2U7CisKKwkJCQlFRU9fTkVYVCgpOworCQkJfQorCQkJZWxzZQorCQkJCUVFT19K VU1QKHN0Y3N0YXRlLT5qdW1wX2VuZCk7CisJCX0KKwogCQlFRU9fQ0FTRShFRU9QX0pTT05FWFBS X1BBVEgpCiAJCXsKIAkJCS8qIHRvbyBjb21wbGV4IGZvciBhbiBpbmxpbmUgaW1wbGVtZW50YXRp b24gKi8KQEAgLTM2NDQsNiArMzY2NywxMiBAQCBFeGVjRXZhbEFycmF5Q29lcmNlKEV4cHJTdGF0 ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsIEV4cHJDb250ZXh0ICplY29udGV4dCkKIAkJCQkJ CQkgIGVjb250ZXh0LAogCQkJCQkJCSAgb3AtPmQuYXJyYXljb2VyY2UucmVzdWx0ZWxlbXR5cGUs CiAJCQkJCQkJICBvcC0+ZC5hcnJheWNvZXJjZS5hbXN0YXRlKTsKKworCWlmIChTT0ZUX0VSUk9S X09DQ1VSUkVEKG9wLT5kLmFycmF5Y29lcmNlLmVsZW1leHByc3RhdGUtPmVzY29udGV4dCkpCisJ eworCQkqb3AtPnJlc3ZhbHVlID0gKERhdHVtKSAwOworCQkqb3AtPnJlc251bGwgPSB0cnVlOwor CX0KIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhw ci5jIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXggYWM4ODg4MWU5 OTUuLmJjN2NkMzI4M2E1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0 X2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwpAQCAtMjI1 Niw2ICsyMjU2LDMyIEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJCQkJ TExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbb3BubyArIDFdKTsKIAkJCQlicmVhazsKIAorCQkJY2Fz ZSBFRU9QX1NBRkVUWVBFX0NBU1Q6CisJCQkJeworCQkJCQlTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rj c3RhdGUgPSBvcC0+ZC5zdGNleHByLnN0Y3N0YXRlOworCisJCQkJCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKCZzdGNzdGF0ZS0+ZXNjb250ZXh0KSkKKwkJCQkJeworCQkJCQkJLyoKKwkJCQkJCSAq IFJlc2V0IGZvciBuZXh0IHVzZSBzdWNoIGFzIGZvciBjYXRjaGluZyBlcnJvcnMgd2hlbgorCQkJ CQkJICogY29lcmNpbmcgYSBleHByZXNzaW9uLgorCQkJCQkJICovCisJCQkJCQlzdGNzdGF0ZS0+ ZXNjb250ZXh0LmVycm9yX29jY3VycmVkID0gZmFsc2U7CisJCQkJCQlzdGNzdGF0ZS0+ZXNjb250 ZXh0LmRldGFpbHNfd2FudGVkID0gZmFsc2U7CisKKwkJCQkJCS8qIHNldCByZXNudWxsIHRvIHRy dWUgKi8KKwkJCQkJCUxMVk1CdWlsZFN0b3JlKGIsIGxfc2Jvb2xfY29uc3QoMSksIHZfcmVzbnVs bHApOworCQkJCQkJLyogcmVzZXQgcmVzdmFsdWUgKi8KKwkJCQkJCUxMVk1CdWlsZFN0b3JlKGIs IGxfZGF0dW1fY29uc3QoMCksIHZfcmVzdmFsdWVwKTsKKworCQkJCQkJTExWTUJ1aWxkQnIoYiwg b3BibG9ja3Nbb3BubyArIDFdKTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCQlMTFZNQnVpbGRC cihiLCBvcGJsb2Nrc1tzdGNzdGF0ZS0+anVtcF9lbmRdKTsKKworCQkJCQlicmVhazsKKwkJCQl9 CisKIAkJCWNhc2UgRUVPUF9KU09ORVhQUl9QQVRIOgogCQkJCXsKIAkJCQkJSnNvbkV4cHJTdGF0 ZSAqanNlc3RhdGUgPSBvcC0+ZC5qc29uZXhwci5qc2VzdGF0ZTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMK aW5kZXggZDIyODMxOGRjNzIuLmIzYWU2OTA2OGQwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAt MjA2LDYgKzIwNiw5IEBAIGV4cHJUeXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9Sb3dD b21wYXJlRXhwcjoKIAkJCXR5cGUgPSBCT09MT0lEOwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZl VHlwZUNhc3RFeHByOgorCQkJdHlwZSA9ICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAqKSBleHBy KS0+cmVzdWx0dHlwZTsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJdHlw ZSA9ICgoY29uc3QgQ29hbGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZXR5cGU7CiAJCQlicmVh azsKQEAgLTQ1MCw2ICs0NTMsOCBAQCBleHByVHlwbW9kKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkJ cmV0dXJuIHR5cG1vZDsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhw cjoKKwkJCXJldHVybiAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3VsdHR5 cG1vZDsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXsKIAkJCQkvKgpAQCAtOTY1LDYgKzk3 MCw5IEBAIGV4cHJDb2xsYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJCS8qIFJvd0NvbXBhcmVF eHByJ3MgcmVzdWx0IGlzIGJvb2xlYW4gLi4uICovCiAJCQljb2xsID0gSW52YWxpZE9pZDsJLyog Li4uIHNvIGl0IGhhcyBubyBjb2xsYXRpb24gKi8KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5 cGVDYXN0RXhwcjoKKwkJCWNvbGwgPSAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwcikt PnJlc3VsdGNvbGxpZDsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJY29s bCA9ICgoY29uc3QgQ29hbGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZWNvbGxpZDsKIAkJCWJy ZWFrOwpAQCAtMTIzMiw2ICsxMjQwLDkgQEAgZXhwclNldENvbGxhdGlvbihOb2RlICpleHByLCBP aWQgY29sbGF0aW9uKQogCQkJLyogUm93Q29tcGFyZUV4cHIncyByZXN1bHQgaXMgYm9vbGVhbiAu Li4gKi8KIAkJCUFzc2VydCghT2lkSXNWYWxpZChjb2xsYXRpb24pKTsgLyogLi4uIHNvIG5ldmVy IHNldCBhIGNvbGxhdGlvbiAqLwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHBy OgorCQkJKChTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHRjb2xsaWQgPSBjb2xsYXRp b247CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCSgoQ29hbGVzY2VFeHBy ICopIGV4cHIpLT5jb2FsZXNjZWNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJyZWFrOwpAQCAtMTU1 MCw2ICsxNTYxLDkgQEAgZXhwckxvY2F0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkvKiBqdXN0 IHVzZSBsZWZ0bW9zdCBhcmd1bWVudCdzIGxvY2F0aW9uICovCiAJCQlsb2MgPSBleHByTG9jYXRp b24oKE5vZGUgKikgKChjb25zdCBSb3dDb21wYXJlRXhwciAqKSBleHByKS0+bGFyZ3MpOwogCQkJ YnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJbG9jID0gKChjb25zdCBTYWZl VHlwZUNhc3RFeHByICopIGV4cHIpLT5sb2NhdGlvbjsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29h bGVzY2VFeHByOgogCQkJLyogQ09BTEVTQ0Uga2V5d29yZCBzaG91bGQgYWx3YXlzIGJlIHRoZSBm aXJzdCB0aGluZyAqLwogCQkJbG9jID0gKChjb25zdCBDb2FsZXNjZUV4cHIgKikgZXhwciktPmxv Y2F0aW9uOwpAQCAtMjMyMSw2ICsyMzM1LDE4IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1w bChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNl IFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICAgKnNjZXhw ciA9IChTYWZlVHlwZUNhc3RFeHByICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzY2V4cHItPnNv dXJjZV9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc2NleHByLT5jYXN0 X2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzY2V4cHItPmRlZmF1bHRf ZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2Fs ZXNjZUV4cHI6CiAJCQlyZXR1cm4gV0FMSygoKENvYWxlc2NlRXhwciAqKSBub2RlKS0+YXJncyk7 CiAJCWNhc2UgVF9NaW5NYXhFeHByOgpAQCAtMzMzMCw2ICszMzU2LDE5IEBAIGV4cHJlc3Npb25f dHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9k ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJ CQlTYWZlVHlwZUNhc3RFeHByICAgKnNjZXhwciA9IChTYWZlVHlwZUNhc3RFeHByICopIG5vZGU7 CisJCQkJU2FmZVR5cGVDYXN0RXhwciAgICpuZXdub2RlOworCisJCQkJRkxBVENPUFkobmV3bm9k ZSwgc2NleHByLCBTYWZlVHlwZUNhc3RFeHByKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+c291cmNl X2V4cHIsIHNjZXhwci0+c291cmNlX2V4cHIsIE5vZGUgKik7CisJCQkJTVVUQVRFKG5ld25vZGUt PmNhc3RfZXhwciwgc2NleHByLT5jYXN0X2V4cHIsIE5vZGUgKik7CisJCQkJTVVUQVRFKG5ld25v ZGUtPmRlZmF1bHRfZXhwciwgc2NleHByLT5kZWZhdWx0X2V4cHIsIE5vZGUgKik7CisKKwkJCQly ZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVz Y2VFeHByOgogCQkJewogCQkJCUNvYWxlc2NlRXhwciAqY29hbGVzY2VleHByID0gKENvYWxlc2Nl RXhwciAqKSBub2RlOwpAQCAtNDQ2NCw2ICs0NTAzLDI4IEBAIHJhd19leHByZXNzaW9uX3RyZWVf d2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVh azsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdDoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3QgICAqc2Mg PSAoU2FmZVR5cGVDYXN0ICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzYy0+Y2FzdCkpCisJCQkJ CXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHNjLT5yYXdfZGVmYXVsdCkpCisJCQkJCXJldHVy biB0cnVlOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJ eworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgICAqc3RjID0gKFNhZmVUeXBlQ2FzdEV4cHIgKikgbm9k ZTsKKworCQkJCWlmIChXQUxLKHN0Yy0+c291cmNlX2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsK KwkJCQlpZiAoV0FMSyhzdGMtPmNhc3RfZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlm IChXQUxLKHN0Yy0+ZGVmYXVsdF9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQli cmVhazsKIAkJY2FzZSBUX0NvbGxhdGVDbGF1c2U6CiAJCQlyZXR1cm4gV0FMSygoKENvbGxhdGVD bGF1c2UgKikgbm9kZSktPmFyZyk7CiAJCWNhc2UgVF9Tb3J0Qnk6CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv dXRpbC9jbGF1c2VzLmMKaW5kZXggYmRhNGM0ZWIyOTIuLmU2ZDhiNmM0NjdmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBAIC0yNDQ3LDcgKzI0NDcsOCBAQCBlc3RpbWF0ZV9l eHByZXNzaW9uX3ZhbHVlKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlKQogCSgoTm9kZSAq KSBldmFsdWF0ZV9leHByKChFeHByICopIChub2RlKSwgXAogCQkJCQkJCWV4cHJUeXBlKChOb2Rl ICopIChub2RlKSksIFwKIAkJCQkJCQlleHByVHlwbW9kKChOb2RlICopIChub2RlKSksIFwKLQkJ CQkJCQlleHByQ29sbGF0aW9uKChOb2RlICopIChub2RlKSkpKQorCQkJCQkJCWV4cHJDb2xsYXRp b24oKE5vZGUgKikgKG5vZGUpKSwgXAorCQkJCQkJCWZhbHNlKSkKIAogLyoKICAqIFJlY3Vyc2l2 ZSBndXRzIG9mIGV2YWxfY29uc3RfZXhwcmVzc2lvbnMvZXN0aW1hdGVfZXhwcmVzc2lvbl92YWx1 ZQpAQCAtMjk1OCw2ICsyOTU5LDMyIEBAIGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihO b2RlICpub2RlLAogCQkJCQkJCQkJCQkJICBjb3B5T2JqZWN0KGp2ZS0+Zm9ybWF0KSk7CiAJCQl9 CiAKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhw ciAJKnN0YyA9IChTYWZlVHlwZUNhc3RFeHByICopIG5vZGU7CisJCQkJU2FmZVR5cGVDYXN0RXhw cgkqbmV3ZXhwcjsKKwkJCQlOb2RlCSAgICpzb3VyY2VfZXhwciA9IHN0Yy0+c291cmNlX2V4cHI7 CisJCQkJTm9kZQkgICAqZGVmYXVsdF9leHByID0gc3RjLT5kZWZhdWx0X2V4cHI7CisKKwkJCQlz b3VyY2VfZXhwciA9IGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihzb3VyY2VfZXhwciwg Y29udGV4dCk7CisJCQkJZGVmYXVsdF9leHByID0gZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRh dG9yKGRlZmF1bHRfZXhwciwgY29udGV4dCk7CisKKwkJCQkvKgorCQkJCSAqIFdlIG11c3Qgbm90 IHJlZHVjZSBhbnkgcmVjb2duaXphYmx5IGNvbnN0YW50IHN1YmV4cHJlc3Npb25zCisJCQkJICog aW4gY2FzdF9leHByIGhlcmUsIHNpbmNlIHdlIGRvbuKAmXQgd2FudCBpdCB0byBmYWlsCisJCQkJ ICogcHJlbWF0dXJlbHkuCisJCQkJICovCisJCQkJbmV3ZXhwciA9IG1ha2VOb2RlKFNhZmVUeXBl Q2FzdEV4cHIpOworCQkJCW5ld2V4cHItPnNvdXJjZV9leHByID0gc291cmNlX2V4cHI7CisJCQkJ bmV3ZXhwci0+Y2FzdF9leHByID0gc3RjLT5jYXN0X2V4cHI7CisJCQkJbmV3ZXhwci0+ZGVmYXVs dF9leHByID0gZGVmYXVsdF9leHByOworCQkJCW5ld2V4cHItPnJlc3VsdHR5cGUgPSBzdGMtPnJl c3VsdHR5cGU7CisJCQkJbmV3ZXhwci0+cmVzdWx0dHlwbW9kID0gc3RjLT5yZXN1bHR0eXBtb2Q7 CisJCQkJbmV3ZXhwci0+cmVzdWx0Y29sbGlkID0gc3RjLT5yZXN1bHRjb2xsaWQ7CisKKwkJCQly ZXR1cm4gKE5vZGUgKikgbmV3ZXhwcjsKKwkJCX0KKwogCQljYXNlIFRfU3ViUGxhbjoKIAkJY2Fz ZSBUX0FsdGVybmF0aXZlU3ViUGxhbjoKIApAQCAtMzM4MCw3ICszNDA3LDggQEAgZXZhbF9jb25z dF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiAoTm9kZSAqKSBl dmFsdWF0ZV9leHByKChFeHByICopIHN2ZiwKIAkJCQkJCQkJCQkJCSAgc3ZmLT50eXBlLAogCQkJ CQkJCQkJCQkJICBzdmYtPnR5cG1vZCwKLQkJCQkJCQkJCQkJCSAgSW52YWxpZE9pZCk7CisJCQkJ CQkJCQkJCQkgIEludmFsaWRPaWQsCisJCQkJCQkJCQkJCQkgIGZhbHNlKTsKIAkJCQllbHNlCiAJ CQkJCXJldHVybiBjb3B5T2JqZWN0KChOb2RlICopIHN2Zik7CiAJCQl9CkBAIC00Njk4LDcgKzQ3 MjYsNyBAQCBldmFsdWF0ZV9mdW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIGlu dDMyIHJlc3VsdF90eXBtb2QsCiAJbmV3ZXhwci0+bG9jYXRpb24gPSAtMTsKIAogCXJldHVybiBl dmFsdWF0ZV9leHByKChFeHByICopIG5ld2V4cHIsIHJlc3VsdF90eXBlLCByZXN1bHRfdHlwbW9k LAotCQkJCQkJIHJlc3VsdF9jb2xsaWQpOworCQkJCQkJIHJlc3VsdF9jb2xsaWQsIGZhbHNlKTsK IH0KIAogLyoKQEAgLTUxNTIsMTAgKzUxODAsMTQgQEAgc3FsX2lubGluZV9lcnJvcl9jYWxsYmFj ayh2b2lkICphcmcpCiAgKgogICogV2UgdXNlIHRoZSBleGVjdXRvcidzIHJvdXRpbmUgRXhlY0V2 YWxFeHByKCkgdG8gYXZvaWQgZHVwbGljYXRpb24gb2YKICAqIGNvZGUgYW5kIGVuc3VyZSB3ZSBn ZXQgdGhlIHNhbWUgcmVzdWx0IGFzIHRoZSBleGVjdXRvciB3b3VsZCBnZXQuCisgKgorICogV2hl biBlcnJvcl9zYWZlIHNldCB0byB0cnVlLCB3ZSB3aWxsIGV2YWx1YXRlIHRoZSBjb25zdGFudCBl eHByZXNzaW9uIGluIGEKKyAqIGVycm9yIHNhZmUgd2F5LiBJZiB0aGUgZXZhbHVhdGlvbiBmYWls cywgcmV0dXJuIE5VTEwgaW5zdGVhZCBvZiB0aHJvd2luZworICogZXJyb3IuCiAgKi8KIEV4cHIg KgogZXZhbHVhdGVfZXhwcihFeHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3Vs dF90eXBtb2QsCi0JCQkgIE9pZCByZXN1bHRfY29sbGF0aW9uKQorCQkJICBPaWQgcmVzdWx0X2Nv bGxhdGlvbiwgYm9vbCBlcnJvcl9zYWZlKQogewogCUVTdGF0ZQkgICAqZXN0YXRlOwogCUV4cHJT dGF0ZSAgKmV4cHJzdGF0ZTsKQEAgLTUxODAsNyArNTIxMiwxMCBAQCBldmFsdWF0ZV9leHByKEV4 cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKIAkgKiBQcmVw YXJlIGV4cHIgZm9yIGV4ZWN1dGlvbi4gIChOb3RlOiB3ZSBjYW4ndCB1c2UgRXhlY1ByZXBhcmVF eHByCiAJICogYmVjYXVzZSBpdCdkIHJlc3VsdCBpbiByZWN1cnNpdmVseSBpbnZva2luZyBldmFs X2NvbnN0X2V4cHJlc3Npb25zLikKIAkgKi8KLQlleHByc3RhdGUgPSBFeGVjSW5pdEV4cHIoZXhw ciwgTlVMTCk7CisJaWYgKGVycm9yX3NhZmUpCisJCWV4cHJzdGF0ZSA9IEV4ZWNJbml0RXhwclNh ZmUoZXhwciwgTlVMTCk7CisJZWxzZQorCQlleHByc3RhdGUgPSBFeGVjSW5pdEV4cHIoZXhwciwg TlVMTCk7CiAKIAkvKgogCSAqIEFuZCBldmFsdWF0ZSBpdC4KQEAgLTUyMDAsNiArNTIzNSwxMiBA QCBldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0 X3R5cG1vZCwKIAkvKiBHZXQgYmFjayB0byBvdXRlciBtZW1vcnkgY29udGV4dCAqLwogCU1lbW9y eUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIAorCWlmIChlcnJvcl9zYWZlICYmIFNPRlRf RVJST1JfT0NDVVJSRUQoZXhwcnN0YXRlLT5lc2NvbnRleHQpKQorCXsKKwkJRnJlZUV4ZWN1dG9y U3RhdGUoZXN0YXRlKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCiAJLyoKIAkgKiBNdXN0IGNvcHkg cmVzdWx0IG91dCBvZiBzdWItY29udGV4dCB1c2VkIGJ5IGV4cHJlc3Npb24gZXZhbC4KIAkgKgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggYzNhMGEzNTRhOWMuLjhhMjdlMDQ1YmMwIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAg LTE2MDEzLDYgKzE2MDEzLDI4IEBAIGZ1bmNfZXhwcl9jb21tb25fc3ViZXhwcjoKIAkJCQl9CiAJ CQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSAnKScKIAkJCQl7ICQkID0gbWFrZVR5cGVD YXN0KCQzLCAkNSwgQDEpOyB9CisJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSBFUlJP Ul9QIE9OIENPTlZFUlNJT05fUCBFUlJPUl9QICcpJworCQkJCXsgJCQgPSBtYWtlVHlwZUNhc3Qo JDMsICQ1LCBAMSk7IH0KKwkJCXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5cGVuYW1lIE5VTExfUCBP TiBDT05WRVJTSU9OX1AgRVJST1JfUCAnKScKKwkJCQl7CisJCQkJCVR5cGVDYXN0ICpjYXN0ID0g KFR5cGVDYXN0ICopIG1ha2VUeXBlQ2FzdCgkMywgJDUsIEAxKTsKKworCQkJCQlTYWZlVHlwZUNh c3QgKnNhZmVjYXN0ID0gbWFrZU5vZGUoU2FmZVR5cGVDYXN0KTsKKwkJCQkJc2FmZWNhc3QtPmNh c3QgPSAoTm9kZSAqKSBjYXN0OworCQkJCQlzYWZlY2FzdC0+cmF3X2RlZmF1bHQgPSBtYWtlTnVs bEFDb25zdCgtMSk7OworCisJCQkJCSQkID0gKE5vZGUgKikgc2FmZWNhc3Q7CisJCQkJfQorCQkJ fCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUgREVGQVVMVCBhX2V4cHIgT04gQ09OVkVSU0lP Tl9QIEVSUk9SX1AgJyknCisJCQkJeworCQkJCQlUeXBlQ2FzdCAqY2FzdCA9IChUeXBlQ2FzdCAq KSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7CisKKwkJCQkJU2FmZVR5cGVDYXN0ICpzYWZlY2Fz dCA9IG1ha2VOb2RlKFNhZmVUeXBlQ2FzdCk7CisJCQkJCXNhZmVjYXN0LT5jYXN0ID0gKE5vZGUg KikgY2FzdDsKKwkJCQkJc2FmZWNhc3QtPnJhd19kZWZhdWx0ID0gJDc7CisKKwkJCQkJJCQgPSAo Tm9kZSAqKSBzYWZlY2FzdDsKKwkJCQl9CiAJCQl8IEVYVFJBQ1QgJygnIGV4dHJhY3RfbGlzdCAn KScKIAkJCQl7CiAJCQkJCSQkID0gKE5vZGUgKikgbWFrZUZ1bmNDYWxsKFN5c3RlbUZ1bmNOYW1l KCJleHRyYWN0IiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggYjgzNDA1NTdiMzQuLmRlNzdm NmU5MzAyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC00OTAsNiArNDkwLDEyIEBAIGNoZWNr X2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHBy KQogCQkJCWVyciA9IF8oImdyb3VwaW5nIG9wZXJhdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNo ZWNrIGNvbnN0cmFpbnRzIik7CiAKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9DQVNUX0RF RkFVTFQ6CisJCQlpZiAoaXNBZ2cpCisJCQkJZXJyID0gXygiYWdncmVnYXRlIGZ1bmN0aW9ucyBh cmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zIik7CisJCQllbHNlCisJ CQkJZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBE RUZBVUxUIGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1O X0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAKQEAgLTk4Myw2 ICs5ODksOSBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIFdp bmRvd0Z1bmMgKndmdW5jLAogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQllcnIg PSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBjaGVjayBjb25zdHJhaW50 cyIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0NBU1RfREVGQVVMVDoKKwkJCWVyciA9 IF8oIndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHBy ZXNzaW9ucyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgog CQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygid2luZG93IGZ1 bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2NvZXJjZS5jCmluZGV4IDc4YjFlMzY2YWQ3Li40YWU4N2UyMDMwYiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jCisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9jb2VyY2UuYwpAQCAtODEsNiArODEsMzEgQEAgY29lcmNlX3RvX3Rhcmdl dF90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgT2lkIGV4cHJ0eXBlLAogCQkJ CQkgIENvZXJjaW9uQ29udGV4dCBjY29udGV4dCwKIAkJCQkJICBDb2VyY2lvbkZvcm0gY2Zvcm1h dCwKIAkJCQkJICBpbnQgbG9jYXRpb24pCit7CisJcmV0dXJuIGNvZXJjZV90b190YXJnZXRfdHlw ZV9leHRlbmRlZChwc3RhdGUsCisJCQkJCQkJCQkJICBleHByLAorCQkJCQkJCQkJCSAgZXhwcnR5 cGUsCisJCQkJCQkJCQkJICB0YXJnZXR0eXBlLAorCQkJCQkJCQkJCSAgdGFyZ2V0dHlwbW9kLAor CQkJCQkJCQkJCSAgY2NvbnRleHQsCisJCQkJCQkJCQkJICBjZm9ybWF0LAorCQkJCQkJCQkJCSAg bG9jYXRpb24sCisJCQkJCQkJCQkJICBOVUxMKTsKK30KKworLyoKKyAqIGVzY29udGV4dDogSWYg bm90IE5VTEwsIGV4cHIgKFVua25vd24gQ29uc3Qgbm9kZSB0eXBlKSB3aWxsIGJlIGNvZXJjZWQg dG8gdGhlCisgKiB0YXJnZXQgdHlwZSBpbiBhbiBlcnJvci1zYWZlIHdheS4gSWYgaXQgZmFpbHMs IE5VTEwgaXMgcmV0dXJuZWQuCisgKgorICogRm9yIG90aGVyIHBhcmFtZXRlcnMsIHNlZSBhYm92 ZSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUuCisgKi8KK05vZGUgKgorY29lcmNlX3RvX3RhcmdldF90 eXBlX2V4dGVuZGVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgT2lkIGV4cHJ0eXBl LAorCQkJCQkJCSAgIE9pZCB0YXJnZXR0eXBlLCBpbnQzMiB0YXJnZXR0eXBtb2QsCisJCQkJCQkJ ICAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LAorCQkJCQkJCSAgIENvZXJjaW9uRm9ybSBjZm9y bWF0LAorCQkJCQkJCSAgIGludCBsb2NhdGlvbiwKKwkJCQkJCQkgICBOb2RlICplc2NvbnRleHQp CiB7CiAJTm9kZQkgICAqcmVzdWx0OwogCU5vZGUJICAgKm9yaWdleHByOwpAQCAtMTAyLDkgKzEy NywxMiBAQCBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpl eHByLCBPaWQgZXhwcnR5cGUsCiAJd2hpbGUgKGV4cHIgJiYgSXNBKGV4cHIsIENvbGxhdGVFeHBy KSkKIAkJZXhwciA9IChOb2RlICopICgoQ29sbGF0ZUV4cHIgKikgZXhwciktPmFyZzsKIAotCXJl c3VsdCA9IGNvZXJjZV90eXBlKHBzdGF0ZSwgZXhwciwgZXhwcnR5cGUsCi0JCQkJCQkgdGFyZ2V0 dHlwZSwgdGFyZ2V0dHlwbW9kLAotCQkJCQkJIGNjb250ZXh0LCBjZm9ybWF0LCBsb2NhdGlvbik7 CisJcmVzdWx0ID0gY29lcmNlX3R5cGVfZXh0ZW5kKHBzdGF0ZSwgZXhwciwgZXhwcnR5cGUsCisJ CQkJCQkJCXRhcmdldHR5cGUsIHRhcmdldHR5cG1vZCwKKwkJCQkJCQkJY2NvbnRleHQsIGNmb3Jt YXQsIGxvY2F0aW9uLAorCQkJCQkJCQllc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VS UkVEKGVzY29udGV4dCkpCisJCXJldHVybiBOVUxMOwogCiAJLyoKIAkgKiBJZiB0aGUgdGFyZ2V0 IGlzIGEgZml4ZWQtbGVuZ3RoIHR5cGUsIGl0IG1heSBuZWVkIGEgbGVuZ3RoIGNvZXJjaW9uIGFz CkBAIC0xNTgsNiArMTg2LDE4IEBAIE5vZGUgKgogY29lcmNlX3R5cGUoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBOb2RlICpub2RlLAogCQkJT2lkIGlucHV0VHlwZUlkLCBPaWQgdGFyZ2V0VHlwZUlkLCBp bnQzMiB0YXJnZXRUeXBlTW9kLAogCQkJQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lv bkZvcm0gY2Zvcm1hdCwgaW50IGxvY2F0aW9uKQoreworCXJldHVybiBjb2VyY2VfdHlwZV9leHRl bmQocHN0YXRlLCBub2RlLAorCQkJCQkJCSAgaW5wdXRUeXBlSWQsIHRhcmdldFR5cGVJZCwgdGFy Z2V0VHlwZU1vZCwKKwkJCQkJCQkgIGNjb250ZXh0LCBjZm9ybWF0LCBsb2NhdGlvbiwgTlVMTCk7 Cit9CisKK05vZGUgKgorY29lcmNlX3R5cGVfZXh0ZW5kKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9k ZSAqbm9kZSwKKwkJCQkgICBPaWQgaW5wdXRUeXBlSWQsIE9pZCB0YXJnZXRUeXBlSWQsIGludDMy IHRhcmdldFR5cGVNb2QsCisJCQkJICAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lv bkZvcm0gY2Zvcm1hdCwKKwkJCQkgICBpbnQgbG9jYXRpb24sCisJCQkJICAgTm9kZSAqZXNjb250 ZXh0KQogewogCU5vZGUJICAgKnJlc3VsdDsKIAlDb2VyY2lvblBhdGhUeXBlIHBhdGh0eXBlOwpA QCAtMjU2LDYgKzI5Niw4IEBAIGNvZXJjZV90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq bm9kZSwKIAkJaW50MzIJCWlucHV0VHlwZU1vZDsKIAkJVHlwZQkJYmFzZVR5cGU7CiAJCVBhcnNl Q2FsbGJhY2tTdGF0ZSBwY2JzdGF0ZTsKKwkJY2hhcgkJKnN0cmluZzsKKwkJYm9vbAkJY29lcmNp b25fZmFpbGVkID0gZmFsc2U7CiAKIAkJLyoKIAkJICogSWYgdGhlIHRhcmdldCB0eXBlIGlzIGEg ZG9tYWluLCB3ZSB3YW50IHRvIGNhbGwgaXRzIGJhc2UgdHlwZSdzCkBAIC0zMDgsMjEgKzM1MCwy NyBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCiAJCSAqIFdl IGFzc3VtZSBoZXJlIHRoYXQgVU5LTk9XTidzIGludGVybmFsIHJlcHJlc2VudGF0aW9uIGlzIHRo ZSBzYW1lCiAJCSAqIGFzIENTVFJJTkcuCiAJCSAqLwotCQlpZiAoIWNvbi0+Y29uc3Rpc251bGwp Ci0JCQluZXdjb24tPmNvbnN0dmFsdWUgPSBzdHJpbmdUeXBlRGF0dW0oYmFzZVR5cGUsCi0JCQkJ CQkJCQkJCQkgRGF0dW1HZXRDU3RyaW5nKGNvbi0+Y29uc3R2YWx1ZSksCi0JCQkJCQkJCQkJCQkg aW5wdXRUeXBlTW9kKTsKKwkJaWYgKGNvbi0+Y29uc3Rpc251bGwpCisJCQlzdHJpbmcgPSBOVUxM OwogCQllbHNlCi0JCQluZXdjb24tPmNvbnN0dmFsdWUgPSBzdHJpbmdUeXBlRGF0dW0oYmFzZVR5 cGUsCi0JCQkJCQkJCQkJCQkgTlVMTCwKLQkJCQkJCQkJCQkJCSBpbnB1dFR5cGVNb2QpOworCQkJ c3RyaW5nID0gRGF0dW1HZXRDU3RyaW5nKGNvbi0+Y29uc3R2YWx1ZSk7CisKKwkJaWYgKCFzdHJp bmdUeXBlRGF0dW1TYWZlKGJhc2VUeXBlLAorCQkJCQkJCQkgc3RyaW5nLAorCQkJCQkJCQkgaW5w dXRUeXBlTW9kLAorCQkJCQkJCQkgZXNjb250ZXh0LAorCQkJCQkJCQkgJm5ld2Nvbi0+Y29uc3R2 YWx1ZSkpCisJCXsKKwkJCWNvZXJjaW9uX2ZhaWxlZCA9IHRydWU7CisJCQluZXdjb24tPmNvbnN0 aXNudWxsID0gdHJ1ZTsKKwkJfQogCiAJCS8qCiAJCSAqIElmIGl0J3MgYSB2YXJsZW5hIHZhbHVl LCBmb3JjZSBpdCB0byBiZSBpbiBub24tZXhwYW5kZWQKIAkJICogKG5vbi10b2FzdGVkKSBmb3Jt YXQ7IHRoaXMgYXZvaWRzIGFueSBwb3NzaWJsZSBkZXBlbmRlbmN5IG9uCiAJCSAqIGV4dGVybmFs IHZhbHVlcyBhbmQgaW1wcm92ZXMgY29uc2lzdGVuY3kgb2YgcmVwcmVzZW50YXRpb24uCiAJCSAq LwotCQlpZiAoIWNvbi0+Y29uc3Rpc251bGwgJiYgbmV3Y29uLT5jb25zdGxlbiA9PSAtMSkKKwkJ aWYgKCFjb2VyY2lvbl9mYWlsZWQgJiYgIWNvbi0+Y29uc3Rpc251bGwgJiYgbmV3Y29uLT5jb25z dGxlbiA9PSAtMSkKIAkJCW5ld2Nvbi0+Y29uc3R2YWx1ZSA9CiAJCQkJUG9pbnRlckdldERhdHVt KFBHX0RFVE9BU1RfREFUVU0obmV3Y29uLT5jb25zdHZhbHVlKSk7CiAKQEAgLTMzOSw3ICszODcs NyBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCiAJCSAqIGlk ZW50aWNhbCBtYXkgbm90IGdldCByZWNvZ25pemVkIGFzIHN1Y2guICBTZWUgcGdzcWwtaGFja2Vy cwogCQkgKiBkaXNjdXNzaW9uIG9mIDIwMDgtMDQtMDQuCiAJCSAqLwotCQlpZiAoIWNvbi0+Y29u c3Rpc251bGwgJiYgIW5ld2Nvbi0+Y29uc3RieXZhbCkKKwkJaWYgKCFjb2VyY2lvbl9mYWlsZWQg JiYgIWNvbi0+Y29uc3Rpc251bGwgJiYgIW5ld2Nvbi0+Y29uc3RieXZhbCkKIAkJewogCQkJRGF0 dW0JCXZhbDI7CiAKQEAgLTM1OCw4ICs0MDYsMTAgQEAgY29lcmNlX3R5cGUoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpub2RlLAogCiAJCXJlc3VsdCA9IChOb2RlICopIG5ld2NvbjsKIAotCQkv KiBJZiB0YXJnZXQgaXMgYSBkb21haW4sIGFwcGx5IGNvbnN0cmFpbnRzLiAqLwotCQlpZiAoYmFz ZVR5cGVJZCAhPSB0YXJnZXRUeXBlSWQpCisJCWlmIChjb2VyY2lvbl9mYWlsZWQpCisJCQlyZXN1 bHQgPSBOVUxMOworCQllbHNlIGlmIChiYXNlVHlwZUlkICE9IHRhcmdldFR5cGVJZCkKKwkJCS8q IElmIHRhcmdldCBpcyBhIGRvbWFpbiwgYXBwbHkgY29uc3RyYWludHMuICovCiAJCQlyZXN1bHQg PSBjb2VyY2VfdG9fZG9tYWluKHJlc3VsdCwKIAkJCQkJCQkJCSAgYmFzZVR5cGVJZCwgYmFzZVR5 cGVNb2QsCiAJCQkJCQkJCQkgIHRhcmdldFR5cGVJZCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmlu ZGV4IDQ1MjRlNDljMzI2Li43ZDNlZDBlYjg5MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBA IC0xNyw2ICsxNyw3IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2Nhc3Qu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIK ICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKQEAgLTM3LDYgKzM4LDcgQEAKICNpbmNsdWRl ICJ1dGlscy9kYXRlLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKICNpbmNsdWRlICJ1 dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogI2luY2x1ZGUg InV0aWxzL3RpbWVzdGFtcC5oIgogI2luY2x1ZGUgInV0aWxzL3htbC5oIgogCkBAIC02MCw3ICs2 Miw4IEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1NdWx0aUFzc2lnblJlZihQYXJzZVN0YXRlICpw c3RhdGUsIE11bHRpQXNzaWduUmVmICptYXJlZik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtQ2Fz ZUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDYXNlRXhwciAqYyk7CiBzdGF0aWMgTm9kZSAqdHJh bnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspOwogc3Rh dGljIE5vZGUgKnRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlF eHByICphLAotCQkJCQkJCQlPaWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50MzIg dHlwbW9kKTsKKwkJCQkJCQkJT2lkIGFycmF5X3R5cGUsIE9pZCBlbGVtZW50X3R5cGUsIGludDMy IHR5cG1vZCwKKwkJCQkJCQkJYm9vbCAqY2FuX2NvZXJjZSk7CiBzdGF0aWMgTm9kZSAqdHJhbnNm b3JtUm93RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIFJvd0V4cHIgKnIsIGJvb2wgYWxsb3dEZWZh dWx0KTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Db2FsZXNjZUV4cHIoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBDb2FsZXNjZUV4cHIgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybU1pbk1heEV4cHIo UGFyc2VTdGF0ZSAqcHN0YXRlLCBNaW5NYXhFeHByICptKTsKQEAgLTc2LDYgKzc5LDEwIEBAIHN0 YXRpYyBOb2RlICp0cmFuc2Zvcm1XaG9sZVJvd1JlZihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJ CQkJCSAgaW50IHN1YmxldmVsc191cCwgaW50IGxvY2F0aW9uKTsKIHN0YXRpYyBOb2RlICp0cmFu c2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7 CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBl Q2FzdCAqdGMpOworc3RhdGljIE5vZGUgKnRyYW5zZm9ybVR5cGVTYWZlQ2FzdChQYXJzZVN0YXRl ICpwc3RhdGUsIFNhZmVUeXBlQ2FzdCAqdGMpOworc3RhdGljIHZvaWQgQ29lcmNpb25FcnJvclNh ZmVDaGVjayhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmNhc3RleHByLAorCQkJCQkJCQkgICBO b2RlICpzb3VyY2VleHByLCBPaWQgaW5wdXRUeXBlLAorCQkJCQkJCQkgICBPaWQgdGFyZ2V0VHlw ZSk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtQ29sbGF0ZUNsYXVzZShQYXJzZVN0YXRlICpwc3Rh dGUsIENvbGxhdGVDbGF1c2UgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpzb25PYmplY3RD b25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCUpzb25PYmplY3RDb25z dHJ1Y3RvciAqY3Rvcik7CkBAIC0xNjQsMTMgKzE3MSwxNyBAQCB0cmFuc2Zvcm1FeHByUmVjdXJz ZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAKIAkJY2FzZSBUX0FfQXJyYXlFeHBy OgogCQkJcmVzdWx0ID0gdHJhbnNmb3JtQXJyYXlFeHByKHBzdGF0ZSwgKEFfQXJyYXlFeHByICop IGV4cHIsCi0JCQkJCQkJCQkJSW52YWxpZE9pZCwgSW52YWxpZE9pZCwgLTEpOworCQkJCQkJCQkJ CUludmFsaWRPaWQsIEludmFsaWRPaWQsIC0xLCBOVUxMKTsKIAkJCWJyZWFrOwogCiAJCWNhc2Ug VF9UeXBlQ2FzdDoKIAkJCXJlc3VsdCA9IHRyYW5zZm9ybVR5cGVDYXN0KHBzdGF0ZSwgKFR5cGVD YXN0ICopIGV4cHIpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdDoKKwkJCXJl c3VsdCA9IHRyYW5zZm9ybVR5cGVTYWZlQ2FzdChwc3RhdGUsIChTYWZlVHlwZUNhc3QgKikgZXhw cik7CisJCQlicmVhazsKKwogCQljYXNlIFRfQ29sbGF0ZUNsYXVzZToKIAkJCXJlc3VsdCA9IHRy YW5zZm9ybUNvbGxhdGVDbGF1c2UocHN0YXRlLCAoQ29sbGF0ZUNsYXVzZSAqKSBleHByKTsKIAkJ CWJyZWFrOwpAQCAtNTY0LDYgKzU3NSw3IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRl ICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTX1NJTkdM RToKIAkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKIAkJY2FzZSBFWFBSX0tJTkRf RE9NQUlOX0NIRUNLOgorCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CiAJCWNhc2UgRVhQ Ul9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJ T046CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX1BSRURJQ0FURToKQEAgLTE4MjQsNiArMTgzNiw5 IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5r KQogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQllcnIgPSBfKCJjYW5ub3QgdXNl IHN1YnF1ZXJ5IGluIGNoZWNrIGNvbnN0cmFpbnQiKTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJf S0lORF9DQVNUX0RFRkFVTFQ6CisJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIENB U1QgREVGQVVMVCBleHByZXNzaW9uIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09M VU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCQllcnIg PSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIERFRkFVTFQgZXhwcmVzc2lvbiIpOwpAQCAtMjAx MSwxNyArMjAyNiwyNCBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3Vi TGluayAqc3VibGluaykKICAqIElmIHRoZSBjYWxsZXIgc3BlY2lmaWVzIHRoZSB0YXJnZXQgdHlw ZSwgdGhlIHJlc3VsdGluZyBhcnJheSB3aWxsCiAgKiBiZSBvZiBleGFjdGx5IHRoYXQgdHlwZS4g IE90aGVyd2lzZSB3ZSB0cnkgdG8gaW5mZXIgYSBjb21tb24gdHlwZQogICogZm9yIHRoZSBlbGVt ZW50cyB1c2luZyBzZWxlY3RfY29tbW9uX3R5cGUoKS4KKyAqCisgKiBNb3N0IG9mIHRoZSB0aW1l LCBjYW5fY29lcmNlIHdpbGwgYmUgTlVMTC4gIEl0IGlzIG5vdCBOVUxMIG9ubHkgd2hlbgorICog cGVyZm9ybWluZyBwYXJzZSBhbmFseXNpcyBmb3IgQ0FTVChERUZBVUxUIC4uLiBPTiBDT05WRVJT SU9OIEVSUk9SKQorICogZXhwcmVzc2lvbi4gSXQncyBkZWZhdWx0IHRvIHRydWUuIElmIGNvZXJj aW5nIGFycmF5IGVsZW1lbnRzIGZhaWxzLCBpdCB3aWxsCisgKiBiZSBzZXQgdG8gZmFsc2UuCiAg Ki8KIHN0YXRpYyBOb2RlICoKIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUs IEFfQXJyYXlFeHByICphLAotCQkJCSAgIE9pZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBl LCBpbnQzMiB0eXBtb2QpCisJCQkJICAgT2lkIGFycmF5X3R5cGUsIE9pZCBlbGVtZW50X3R5cGUs IGludDMyIHR5cG1vZCwgYm9vbCAqY2FuX2NvZXJjZSkKIHsKIAlBcnJheUV4cHIgICpuZXdhID0g bWFrZU5vZGUoQXJyYXlFeHByKTsKIAlMaXN0CSAgICpuZXdlbGVtcyA9IE5JTDsKIAlMaXN0CSAg ICpuZXdjb2VyY2VkZWxlbXMgPSBOSUw7CiAJTGlzdENlbGwgICAqZWxlbWVudDsKIAlPaWQJCQlj b2VyY2VfdHlwZTsKKwlPaWQJCQljb2VyY2VfdHlwZV9jb2xsOwogCWJvb2wJCWNvZXJjZV9oYXJk OworCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0ID0ge1RfRXJyb3JTYXZlQ29udGV4dH07CiAK IAkvKgogCSAqIFRyYW5zZm9ybSB0aGUgZWxlbWVudCBleHByZXNzaW9ucwpAQCAtMjA0NSw5ICsy MDY3LDEwIEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlF eHByICphLAogCQkJCQkJCQkJICAoQV9BcnJheUV4cHIgKikgZSwKIAkJCQkJCQkJCSAgYXJyYXlf dHlwZSwKIAkJCQkJCQkJCSAgZWxlbWVudF90eXBlLAotCQkJCQkJCQkJICB0eXBtb2QpOworCQkJ CQkJCQkJICB0eXBtb2QsCisJCQkJCQkJCQkgIGNhbl9jb2VyY2UpOwogCQkJLyogd2UgY2VydGFp bmx5IGhhdmUgYW4gYXJyYXkgaGVyZSAqLwotCQkJQXNzZXJ0KGFycmF5X3R5cGUgPT0gSW52YWxp ZE9pZCB8fCBhcnJheV90eXBlID09IGV4cHJUeXBlKG5ld2UpKTsKKwkJCUFzc2VydChjYW5fY29l cmNlIHx8IGFycmF5X3R5cGUgPT0gSW52YWxpZE9pZCB8fCBhcnJheV90eXBlID09IGV4cHJUeXBl KG5ld2UpKTsKIAkJCW5ld2EtPm11bHRpZGltcyA9IHRydWU7CiAJCX0KIAkJZWxzZQpAQCAtMjA4 OCw2ICsyMTExLDkgQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9B cnJheUV4cHIgKmEsCiAJfQogCWVsc2UKIAl7CisJCS8qIFRhcmdldCB0eXBlIG11c3QgdmFsaWQg Zm9yIENBU1QgREVGQVVMVCAqLworCQlBc3NlcnQoY2FuX2NvZXJjZSA9PSBOVUxMKTsKKwogCQkv KiBDYW4ndCBoYW5kbGUgYW4gZW1wdHkgYXJyYXkgd2l0aG91dCBhIHRhcmdldCB0eXBlICovCiAJ CWlmIChuZXdlbGVtcyA9PSBOSUwpCiAJCQllcmVwb3J0KEVSUk9SLApAQCAtMjEyNSw2ICsyMTUx LDggQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIg KmEsCiAJCWNvZXJjZV9oYXJkID0gZmFsc2U7CiAJfQogCisJY29lcmNlX3R5cGVfY29sbCA9IGdl dF90eXBjb2xsYXRpb24oY29lcmNlX3R5cGUpOworCiAJLyoKIAkgKiBDb2VyY2UgZWxlbWVudHMg dG8gdGFyZ2V0IHR5cGUKIAkgKgpAQCAtMjEzNCwyOCArMjE2Miw4MiBAQCB0cmFuc2Zvcm1BcnJh eUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKIAkgKiBJZiB0aGUgYXJy YXkncyB0eXBlIHdhcyBtZXJlbHkgZGVyaXZlZCBmcm9tIHRoZSBjb21tb24gdHlwZSBvZiBpdHMK IAkgKiBlbGVtZW50cywgdGhlbiB0aGUgZWxlbWVudHMgYXJlIGltcGxpY2l0bHkgY29lcmNlZCB0 byB0aGUgY29tbW9uIHR5cGUuCiAJICogVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggb3RoZXIgdXNl cyBvZiBzZWxlY3RfY29tbW9uX3R5cGUoKS4KKwkgKgorCSAqIElmIGNhbl9jb2VyY2UgaXMgbm90 IE5VTEwsIHdlIG5lZWQgdG8gc2FmZWx5IHRlc3Qgd2hldGhlciBlYWNoIGVsZW1lbnQKKwkgKiBj YW4gYmUgY29lcmNlZCB0byB0aGUgdGFyZ2V0IHR5cGUsIHNpbWlsYXIgdG8gd2hhdCBpcyBkb25l IGluCisJICogdHJhbnNmb3JtVHlwZVNhZmVDYXN0LgogCSAqLwogCWZvcmVhY2goZWxlbWVudCwg bmV3ZWxlbXMpCiAJewogCQlOb2RlCSAgICplID0gKE5vZGUgKikgbGZpcnN0KGVsZW1lbnQpOwot CQlOb2RlCSAgICpuZXdlOworCQlOb2RlCSAgICpuZXdlID0gTlVMTDsKIAogCQlpZiAoY29lcmNl X2hhcmQpCiAJCXsKLQkJCW5ld2UgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBlLAot CQkJCQkJCQkJCSBleHByVHlwZShlKSwKLQkJCQkJCQkJCQkgY29lcmNlX3R5cGUsCi0JCQkJCQkJ CQkJIHR5cG1vZCwKLQkJCQkJCQkJCQkgQ09FUkNJT05fRVhQTElDSVQsCi0JCQkJCQkJCQkJIENP RVJDRV9FWFBMSUNJVF9DQVNULAotCQkJCQkJCQkJCSAtMSk7Ci0JCQlpZiAobmV3ZSA9PSBOVUxM KQotCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VS Q0UpLAotCQkJCQkJIGVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyIsCi0JCQkJCQkJ CWZvcm1hdF90eXBlX2JlKGV4cHJUeXBlKGUpKSwKLQkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29l cmNlX3R5cGUpKSwKLQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRp b24oZSkpKSk7CisJCQkvKgorCQkJICogQ2FuIG5vdCBjb2VyY2UsIGp1c3QgYXBwZW5kIHRoZSB0 cmFuc2Zvcm1lZCBlbGVtZW50IGV4cHJlc3Npb24gdG8KKwkJCSAqIHRoZSBsaXN0LgorCQkJICov CisJCQlpZiAoY2FuX2NvZXJjZSAmJiAoISpjYW5fY29lcmNlKSkKKwkJCQluZXdlID0gZTsKKwkJ CWVsc2UKKwkJCXsKKwkJCQlOb2RlCSAgICplY29weSA9IE5VTEw7CisKKwkJCQlpZiAoY2FuX2Nv ZXJjZSkKKwkJCQkJZWNvcHkgPSBjb3B5T2JqZWN0KGUpOworCisJCQkJbmV3ZSA9IGNvZXJjZV90 b190YXJnZXRfdHlwZV9leHRlbmRlZChwc3RhdGUsIGUsCisJCQkJCQkJCQkJCQkJICBleHByVHlw ZShlKSwKKwkJCQkJCQkJCQkJCQkgIGNvZXJjZV90eXBlLAorCQkJCQkJCQkJCQkJCSAgdHlwbW9k LAorCQkJCQkJCQkJCQkJCSAgQ09FUkNJT05fRVhQTElDSVQsCisJCQkJCQkJCQkJCQkJICBDT0VS Q0VfRVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCQkJCQkgIC0xLAorCQkJCQkJCQkJCQkJCSAgKE5v ZGUgKikgJmVzY29udGV4dCk7CisJCQkJaWYgKG5ld2UgPT0gTlVMTCkKKwkJCQl7CisJCQkJCWlm ICghY2FuX2NvZXJjZSkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJjb2RlKEVS UkNPREVfQ0FOTk9UX0NPRVJDRSksCisJCQkJCQkJCWVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAl cyB0byAlcyIsCisJCQkJCQkJCQkgICBmb3JtYXRfdHlwZV9iZShleHByVHlwZShlKSksCisJCQkJ CQkJCQkgICBmb3JtYXRfdHlwZV9iZShjb2VyY2VfdHlwZSkpLAorCQkJCQkJCQlwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oZSkpKSk7CisJCQkJCWVsc2UKKwkJCQkJewor CQkJCQkJLyoKKwkJCQkJCSAqIENhbiBub3QgY29lcmNlLCBqdXN0IGFwcGVuZCB0aGUgdHJhbnNm b3JtZWQgZWxlbWVudAorCQkJCQkJICogZXhwcmVzc2lvbiB0byB0aGUgbGlzdC4KKwkJCQkJCSAq LworCQkJCQkJbmV3ZSA9IGVjb3B5OworCQkJCQkJKmNhbl9jb2VyY2UgPSBmYWxzZTsKKwkJCQkJ fQorCQkJCX0KKwkJCQllbHNlIGlmIChjYW5fY29lcmNlICYmIElzQShlY29weSwgQ29uc3QpICYm IElzQShuZXdlLCBGdW5jRXhwcikpCisJCQkJeworCQkJCQlOb2RlCSAgICpyZXN1bHQ7CisKKwkJ CQkJLyoKKwkJCQkJICogcHJlLWV2YWx1YXRlIHNpbXBsZSBjb25zdGFudCBjYXN0IGV4cHJlc3Np b25zIGluIGEgd2F5CisJCQkJCSAqIHRoYXQgdG9sZXJhdGUgZXJyb3JzLgorCQkJCQkgKi8KKwkJ CQkJRnVuY0V4cHIgKm5ld2V4cHIgPSAoRnVuY0V4cHIgKikgY29weU9iamVjdChuZXdlKTsKKwor CQkJCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgKE5vZGUgKikgbmV3ZXhwcik7CisK KwkJCQkJcmVzdWx0ID0gKE5vZGUgKikgZXZhbHVhdGVfZXhwcigoRXhwciAqKSBuZXdleHByLAor CQkJCQkJCQkJCQkJCWNvZXJjZV90eXBlLAorCQkJCQkJCQkJCQkJCXR5cG1vZCwKKwkJCQkJCQkJ CQkJCQljb2VyY2VfdHlwZV9jb2xsLAorCQkJCQkJCQkJCQkJCXRydWUpOworCQkJCQlpZiAocmVz dWx0ID09IE5VTEwpCisJCQkJCXsKKwkJCQkJCW5ld2UgPSBlY29weTsKKwkJCQkJCSpjYW5fY29l cmNlID0gZmFsc2U7CisJCQkJCX0KKwkJCQl9CisJCQl9CiAJCX0KIAkJZWxzZQogCQkJbmV3ZSA9 IGNvZXJjZV90b19jb21tb25fdHlwZShwc3RhdGUsIGUsCkBAIC0yNzQzLDcgKzI4MjUsOCBAQCB0 cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0YykKIAkJCQkJ CQkJCSAgKEFfQXJyYXlFeHByICopIGFyZywKIAkJCQkJCQkJCSAgdGFyZ2V0QmFzZVR5cGUsCiAJ CQkJCQkJCQkgIGVsZW1lbnRUeXBlLAotCQkJCQkJCQkJICB0YXJnZXRCYXNlVHlwbW9kKTsKKwkJ CQkJCQkJCSAgdGFyZ2V0QmFzZVR5cG1vZCwKKwkJCQkJCQkJCSAgTlVMTCk7CiAJCX0KIAkJZWxz ZQogCQkJZXhwciA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwgYXJnKTsKQEAgLTI3ODAs NiArMjg2MywyOTEgQEAgdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBl Q2FzdCAqdGMpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIEhhbmRsZSBhbiBleHBsaWNp dCBDQVNUKC4uLiBERUZBVUxUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SKSBjb25zdHJ1Y3QuCisg KgorICogVHJhbnNmb3JtIFNhZmVUeXBlQ2FzdCBub2RlLCBsb29rIHVwIHRoZSB0eXBlIG5hbWUs IGFuZCBhcHBseSBhbnkgbmVjZXNzYXJ5CisgKiBjb2VyY2lvbiBmdW5jdGlvbihzKS4KKyAqLwor c3RhdGljIE5vZGUgKgordHJhbnNmb3JtVHlwZVNhZmVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwg U2FmZVR5cGVDYXN0ICp0YykKK3sKKwlTYWZlVHlwZUNhc3RFeHByICAgKnJlc3VsdDsKKwlUeXBl Q2FzdCAgICp0Y2FzdCA9IChUeXBlQ2FzdCAqKSB0Yy0+Y2FzdDsKKwlOb2RlCSAgICpzb3VyY2Vf ZXhwcjsKKwlOb2RlCSAgICpzcmNleHByOworCU5vZGUJICAgKmRlZmV4cHI7CisJTm9kZQkgICAq Y2FzdF9leHByID0gTlVMTDsKKwlPaWQJCQlpbnB1dFR5cGU7CisJT2lkCQkJdGFyZ2V0VHlwZTsK KwlpbnQzMgkJdGFyZ2V0VHlwbW9kOworCU9pZAkJCXRhcmdldFR5cGVjb2xsOworCU9pZAkJCXRh cmdldEJhc2VUeXBlOworCWludDMyCQl0YXJnZXRCYXNlVHlwbW9kOworCWJvb2wJCWNhbl9jb2Vy Y2UgPSB0cnVlOworCisJLyogTG9vayB1cCB0aGUgdHlwZSBuYW1lIGZpcnN0ICovCisJdHlwZW5h bWVUeXBlSWRBbmRNb2QocHN0YXRlLCB0Y2FzdC0+dHlwZU5hbWUsICZ0YXJnZXRUeXBlLCAmdGFy Z2V0VHlwbW9kKTsKKwl0YXJnZXRCYXNlVHlwbW9kID0gdGFyZ2V0VHlwbW9kOworCisJdGFyZ2V0 VHlwZWNvbGwgPSBnZXRfdHlwY29sbGF0aW9uKHRhcmdldFR5cGUpOworCisJdGFyZ2V0QmFzZVR5 cGUgPSBnZXRCYXNlVHlwZUFuZFR5cG1vZCh0YXJnZXRUeXBlLCAmdGFyZ2V0QmFzZVR5cG1vZCk7 CisKKwkvKiBub3cgbG9va2luZyBhdCBERUZBVUxUIGV4cHJlc3Npb24gKi8KKwlkZWZleHByID0g dHJhbnNmb3JtRXhwcihwc3RhdGUsIHRjLT5yYXdfZGVmYXVsdCwgRVhQUl9LSU5EX0NBU1RfREVG QVVMVCk7CisKKwlkZWZleHByID0gY29lcmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwgZGVmZXhw ciwgZXhwclR5cGUoZGVmZXhwciksCisJCQkJCQkJCQl0YXJnZXRUeXBlLCB0YXJnZXRUeXBtb2Qs CisJCQkJCQkJCQlDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJCQkJCQkJCUNPRVJDRV9FWFBMSUNJVF9D QVNULAorCQkJCQkJCQkJZXhwckxvY2F0aW9uKGRlZmV4cHIpKTsKKwlpZiAoZGVmZXhwciA9PSBO VUxMKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9DQU5OT1RfQ09FUkNF KSwKKwkJCQllcnJtc2coImNhbm5vdCBjb2VyY2UgJXMgZXhwcmVzc2lvbiB0byB0eXBlICVzIiwK KwkJCQkJICAgIkNBU1QgREVGQVVMVCIsCisJCQkJCSAgIGZvcm1hdF90eXBlX2JlKHRhcmdldFR5 cGUpKSwKKwkJCQlwYXJzZXJfY29lcmNpb25fZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRp b24odGMtPnJhd19kZWZhdWx0KSwgZGVmZXhwcikpOworCisJYXNzaWduX2V4cHJfY29sbGF0aW9u cyhwc3RhdGUsIGRlZmV4cHIpOworCisJLyoKKwkgKiBUaGUgY29sbGF0aW9uIG9mIERFRkFVTFQg ZXhwcmVzc2lvbiBtdXN0IG1hdGNoIHRoZSBjb2xsYXRpb24gb2YgdGhlCisJICogdGFyZ2V0IHR5 cGUuCisJICovCisJaWYgKE9pZElzVmFsaWQodGFyZ2V0VHlwZWNvbGwpKQorCXsKKwkJT2lkCQlk ZWZDb2xsID0gZXhwckNvbGxhdGlvbihkZWZleHByKTsKKworCQlpZiAoT2lkSXNWYWxpZChkZWZD b2xsKSAmJiB0YXJnZXRUeXBlY29sbCAhPSBkZWZDb2xsKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJZXJybXNnKCJ0aGUg Y29sbGF0aW9uIG9mIENBU1QgREVGQVVMVCBleHByZXNzaW9uIGNvbmZsaWN0cyB3aXRoIHRhcmdl dCB0eXBlIGNvbGxhdGlvbiIpLAorCQkJCQllcnJkZXRhaWwoIlwiJXNcIiB2ZXJzdXMgXCIlc1wi IiwKKwkJCQkJCQkgIGdldF9jb2xsYXRpb25fbmFtZSh0YXJnZXRUeXBlY29sbCksCisJCQkJCQkJ ICBnZXRfY29sbGF0aW9uX25hbWUoZGVmQ29sbCkpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCBleHByTG9jYXRpb24oZGVmZXhwcikpKTsKKwl9CisKKwkvKgorCSAqIElmIHRoZSB0 eXBlIGNhc3QgdGFyZ2V0IHR5cGUgaXMgYW4gYXJyYXkgdHlwZSwgd2UgaW52b2tlCisJICogdHJh bnNmb3JtQXJyYXlFeHByKCkgZGlyZWN0bHkgc28gdGhhdCB3ZSBjYW4gcGFzcyBkb3duIHRoZSB0 eXBlCisJICogaW5mb3JtYXRpb24uICBUaGlzIGF2b2lkcyBzb21lIGNhc2VzIHdoZXJlIHRyYW5z Zm9ybUFycmF5RXhwcigpIG1pZ2h0IG5vdAorCSAqIGluZmVyIHRoZSBjb3JyZWN0IHR5cGUuICBP dGhlcndpc2UsIGp1c3QgdHJhbnNmb3JtIHRoZSBhcmd1bWVudCBub3JtYWxseS4KKwkgKi8KKwlp ZiAoSXNBKHRjYXN0LT5hcmcsIEFfQXJyYXlFeHByKSkKKwl7CisJCU9pZAkJCWVsZW1lbnRUeXBl OworCisJCS8qCisJCSAqIElmIHRhcmdldCBpcyBhIGRvbWFpbiBvdmVyIGFycmF5LCB3b3JrIHdp dGggdGhlIGJhc2UgYXJyYXkgdHlwZQorCQkgKiBoZXJlLiAgQmVsb3csIHdlJ2xsIGNhc3QgdGhl IGFycmF5IHR5cGUgdG8gdGhlIGRvbWFpbi4gIEluIHRoZQorCQkgKiB1c3VhbCBjYXNlIHRoYXQg dGhlIHRhcmdldCBpcyBub3QgYSBkb21haW4sIHRoZSByZW1haW5pbmcgc3RlcHMKKwkJICogd2ls bCBiZSBhIG5vLW9wLgorCQkgKi8KKwkJZWxlbWVudFR5cGUgPSBnZXRfZWxlbWVudF90eXBlKHRh cmdldEJhc2VUeXBlKTsKKworCQlpZiAoT2lkSXNWYWxpZChlbGVtZW50VHlwZSkpCisJCXsKKwkJ CXNvdXJjZV9leHByID0gdHJhbnNmb3JtQXJyYXlFeHByKHBzdGF0ZSwKKwkJCQkJCQkJCQkJIChB X0FycmF5RXhwciAqKSB0Y2FzdC0+YXJnLAorCQkJCQkJCQkJCQkgdGFyZ2V0QmFzZVR5cGUsCisJ CQkJCQkJCQkJCSBlbGVtZW50VHlwZSwKKwkJCQkJCQkJCQkJIHRhcmdldEJhc2VUeXBtb2QsCisJ CQkJCQkJCQkJCSAmY2FuX2NvZXJjZSk7CisJCX0KKwkJZWxzZQorCQkJc291cmNlX2V4cHIgPSB0 cmFuc2Zvcm1FeHByUmVjdXJzZShwc3RhdGUsIHRjYXN0LT5hcmcpOworCX0KKwllbHNlCisJCXNv dXJjZV9leHByID0gdHJhbnNmb3JtRXhwclJlY3Vyc2UocHN0YXRlLCB0Y2FzdC0+YXJnKTsKKwor CS8qCisJICogU2luY2Ugd2UgY2FuJ3QgYmUgY2VydGFpbiB0aGF0IGNvZXJjZV90b190YXJnZXRf dHlwZV9leHRlbmRlZCB3b24ndAorCSAqIG1vZGlmeSB0aGUgc291cmNlIGV4cHJlc3Npb24sIHdl IGNyZWF0ZSBhIGNvcHkgb2YgaXQgZmlyc3QuIFRoaXMgZW5zdXJlcworCSAqIHRoZSB0cmFuc2Zv cm1lZCBzb3VyY2UgZXhwcmVzc2lvbiBpcyBjb3JyZWN0bHkgcGFzc2VkIHRvIFNhZmVUeXBlQ2Fz dEV4cHIKKwkgKi8KKwlzcmNleHByID0gY29weU9iamVjdChzb3VyY2VfZXhwcik7CisKKwlpbnB1 dFR5cGUgPSBleHByVHlwZShzb3VyY2VfZXhwcik7CisJaWYgKGlucHV0VHlwZSA9PSBJbnZhbGlk T2lkKQorCQlyZXR1cm4gKE5vZGUgKikgTlVMTDsJCQkvKiByZXR1cm4gTlVMTCBpZiBOVUxMIGlu cHV0ICovCisKKwlpZiAoY2FuX2NvZXJjZSkKKwl7CisJCUVycm9yU2F2ZUNvbnRleHQgZXNjb250 ZXh0ID0ge1RfRXJyb3JTYXZlQ29udGV4dH07CisKKwkJY2FzdF9leHByID0gY29lcmNlX3RvX3Rh cmdldF90eXBlX2V4dGVuZGVkKHBzdGF0ZSwgc291cmNlX2V4cHIsIGlucHV0VHlwZSwKKwkJCQkJ CQkJCQkJCSAgIHRhcmdldFR5cGUsIHRhcmdldFR5cG1vZCwKKwkJCQkJCQkJCQkJCSAgIENPRVJD SU9OX0VYUExJQ0lULAorCQkJCQkJCQkJCQkJICAgQ09FUkNFX0VYUExJQ0lUX0NBU1QsCisJCQkJ CQkJCQkJCQkgICB0Y2FzdC0+bG9jYXRpb24sCisJCQkJCQkJCQkJCQkgICAoTm9kZSAqKSAmZXNj b250ZXh0KTsKKwkJaWYgKGNhc3RfZXhwciA9PSBOVUxMKQorCQkJY2FuX2NvZXJjZSA9IGZhbHNl OworCisJCUNvZXJjaW9uRXJyb3JTYWZlQ2hlY2socHN0YXRlLCBjYXN0X2V4cHIsIHNvdXJjZV9l eHByLCBpbnB1dFR5cGUsCisJCQkJCQkJICAgdGFyZ2V0VHlwZSk7CisJfQorCisJaWYgKElzQShz cmNleHByLCBDb25zdCkgJiYgY2FzdF9leHByICYmIElzQShjYXN0X2V4cHIsIEZ1bmNFeHByKSkK Kwl7CisJCU5vZGUJICAgKnJlc3VsdDsKKworCQkvKgorCQkgKiBwcmUtZXZhbHVhdGUgc2ltcGxl IGNvbnN0YW50IGNhc3QgZXhwcmVzc2lvbnMgaW4gYSBlcnJvciBzYWZlIHdheQorCQkgKgorCQkg KiBSYXRpb25hbGU6CisJCSAqIDEuIFdoZW4gZGVwYXJzaW5nIHNhZmUgY2FzdCBleHByZXNzaW9u cyAob3IgaW4gb3RoZXIgY2FzZXMpLAorCQkgKiAgICBldmFsX2NvbnN0X2V4cHJlc3Npb25zIG1p Z2h0IGJlIGludm9rZWQsIGJ1dCBpdCBjYW5ub3QKKwkJICogICAgaGFuZGxlIGVycm9ycyBncmFj ZWZ1bGx5LgorCQkgKiAyLiBJZiB0aGUgY2FzdCBleHByZXNzaW9uIGludm9sdmVzIG9ubHkgc2lt cGxlIGNvbnN0YW50cywgd2UKKwkJICogICAgY2FuIHNhZmVseSBldmFsdWF0ZSBpdCBhaGVhZCBv ZiB0aW1lLiBJZiB0aGUgZXZhbHVhdGlvbgorCQkgKiAgICBmYWlscywgaXQgaW5kaWNhdGVzIHRo YXQgc3VjaCBhIGNhc3QgaXMgbm90IHBvc3NpYmxlLCBhbmQKKwkJICogICAgd2UgY2FuIHRoZW4g ZmFsbCBiYWNrIHRvIHRoZSBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbi4KKwkJICogMy4gRXZlbiBp ZiBGdW5jRXhwciAoZm9yIGNhc3RmdW5jKSBub2RlIGhhcyB0aHJlZSBhcmd1bWVudHMsCisJCSAq ICAgIHRoZSBzZWNvbmQgYW5kIHRoaXJkIGFyZ3VtZW50cyB3aWxsIGFsc28gYmUgY29uc3RhbnRz IHBlcgorCQkgKiAgICBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUuIEV2YWx1YXRpbmcgYSBGdW5jRXhw ciB3aG9zZQorCQkgKiAgICBhcmd1bWVudHMgYXJlIGFsbCBDb25zdCBpcyBzYWZlLgorCQkgKi8K KwkJRnVuY0V4cHIgKm5ld2V4cHIgPSAoRnVuY0V4cHIgKikgY29weU9iamVjdChjYXN0X2V4cHIp OworCisJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCAoTm9kZSAqKSBuZXdleHByKTsK KworCQlyZXN1bHQgPSAoTm9kZSAqKSBldmFsdWF0ZV9leHByKChFeHByICopIG5ld2V4cHIsCisJ CQkJCQkJCQkJdGFyZ2V0VHlwZSwKKwkJCQkJCQkJCQl0YXJnZXRUeXBtb2QsCisJCQkJCQkJCQkJ dGFyZ2V0VHlwZWNvbGwsCisJCQkJCQkJCQkJdHJ1ZSk7CisJCWlmIChyZXN1bHQgPT0gTlVMTCkK KwkJeworCQkJLyogY2FuIG5vdCBjb2VyY2UsIHNldCBjYW5fY29lcmNlIHRvIGZhbHNlICovCisJ CQljYW5fY29lcmNlID0gZmFsc2U7CisJCQljYXN0X2V4cHIgPSBOVUxMOworCQl9CisJfQorCisJ QXNzZXJ0KGNhbl9jb2VyY2UgfHwgY2FzdF9leHByID09IE5VTEwpOworCisJcmVzdWx0ID0gbWFr ZU5vZGUoU2FmZVR5cGVDYXN0RXhwcik7CisJcmVzdWx0LT5zb3VyY2VfZXhwciA9IHNyY2V4cHI7 CisJcmVzdWx0LT5jYXN0X2V4cHIgPSBjYXN0X2V4cHI7CisJcmVzdWx0LT5kZWZhdWx0X2V4cHIg PSBkZWZleHByOworCXJlc3VsdC0+cmVzdWx0dHlwZSA9IHRhcmdldFR5cGU7CisJcmVzdWx0LT5y ZXN1bHR0eXBtb2QgPSB0YXJnZXRUeXBtb2Q7CisJcmVzdWx0LT5yZXN1bHRjb2xsaWQgPSB0YXJn ZXRUeXBlY29sbDsKKwlyZXN1bHQtPmxvY2F0aW9uID0gdGNhc3QtPmxvY2F0aW9uOworCisJcmV0 dXJuIChOb2RlICopIHJlc3VsdDsKK30KKworLyoKKyAqIENoZWNrIGNvZXJjaW9uIGlzIGVycm9y IHNhZmUgb3Igbm90LiAgSWYgbm90IHRoZW4gcmVwb3J0IGVycm9yCisgKi8KK3N0YXRpYyB2b2lk CitDb2VyY2lvbkVycm9yU2FmZUNoZWNrKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4 cHIsIE5vZGUgKnNvdXJjZWV4cHIsIE9pZCBpbnB1dFR5cGUsCisJCQkJCSAgIE9pZCB0YXJnZXRU eXBlKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlib29sIAllcnJvcnNhZmUgPSB0cnVlOworCWJv b2wJdXNlcmRlZmluZWQgPSBmYWxzZTsKKwlPaWQJCWlucHV0QmFzZVR5cGU7CisJT2lkCQl0YXJn ZXRCYXNlVHlwZTsKKwlPaWQgCWlucHV0RWxlbWVudFR5cGU7CisJT2lkCQlpbnB1dEVsZW1lbnRC YXNlVHlwZTsKKwlPaWQgCXRhcmdldEVsZW1lbnRUeXBlOworCU9pZAkJdGFyZ2V0RWxlbWVudEJh c2VUeXBlOworCisJLyoKKwkgKiBCaW5hcnkgY29lcmNpb24gY2FzdCBpcyBlcXVpdmFsZW50IHRv IG5vIGNhc3QgYXQgYWxsLiAgQ29lcmNlVmlhSU8gY2FuCisJICogYWxzbyBiZSBldmFsdWF0ZWQg aW4gYW4gZXJyb3Itc2FmZSBtYW5uZXIuIFNvIHNraXAgdGhlc2UgdHdvIGNhc2VzLgorCSAqLwor CWlmICghY2FzdGV4cHIgfHwgSXNBKGNhc3RleHByLCBSZWxhYmVsVHlwZSkgfHwKKwkJSXNBKGNh c3RleHByLCBDb2VyY2VWaWFJTykpCisJCXJldHVybjsKKworCS8qCisJICogVHlwZSBjYXN0IGlu dm9sdmluZyB3aXRoIHNvbWUgdHlwZXMgaXMgbm90IGVycm9yIHNhZmUsIGRvIHRoZSBjaGVjayBu b3cuCisJICogV2UgbmVlZCBjb25zaWRlciBkb21haW4gb3ZlciBhcnJheSBhbmQgYXJyYXkgb3Zl ciBkb21haW4gc2NhcmVuaW8uIFdlCisJICogYWxyZWFkeSBjaGVja2VkIHVzZXItZGVmaW5lZCB0 eXBlIGNhc3QgYWJvdmUuCisJICovCisJaW5wdXRFbGVtZW50VHlwZSA9IGdldF9lbGVtZW50X3R5 cGUoaW5wdXRUeXBlKTsKKworCWlmIChPaWRJc1ZhbGlkKGlucHV0RWxlbWVudFR5cGUpKQorCQlp bnB1dEVsZW1lbnRCYXNlVHlwZSA9IGdldEJhc2VUeXBlKGlucHV0RWxlbWVudFR5cGUpOworCWVs c2UKKwl7CisJCWlucHV0QmFzZVR5cGUgPSBnZXRCYXNlVHlwZShpbnB1dFR5cGUpOworCisJCWlu cHV0RWxlbWVudEJhc2VUeXBlID0gZ2V0X2VsZW1lbnRfdHlwZShpbnB1dEJhc2VUeXBlKTsKKwkJ aWYgKCFPaWRJc1ZhbGlkKGlucHV0RWxlbWVudEJhc2VUeXBlKSkKKwkJCWlucHV0RWxlbWVudEJh c2VUeXBlID0gaW5wdXRCYXNlVHlwZTsKKwl9CisKKwl0YXJnZXRFbGVtZW50VHlwZSA9IGdldF9l bGVtZW50X3R5cGUodGFyZ2V0VHlwZSk7CisKKwlpZiAoT2lkSXNWYWxpZCh0YXJnZXRFbGVtZW50 VHlwZSkpCisJCXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9IGdldEJhc2VUeXBlKHRhcmdldEVsZW1l bnRUeXBlKTsKKwllbHNlCisJeworCQl0YXJnZXRCYXNlVHlwZSA9IGdldEJhc2VUeXBlKHRhcmdl dFR5cGUpOworCisJCXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9IGdldF9lbGVtZW50X3R5cGUodGFy Z2V0QmFzZVR5cGUpOworCQlpZiAoIU9pZElzVmFsaWQodGFyZ2V0RWxlbWVudEJhc2VUeXBlKSkK KwkJCXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9IHRhcmdldEJhc2VUeXBlOworCX0KKworCWlmIChp bnB1dEVsZW1lbnRCYXNlVHlwZSA9PSBNT05FWU9JRCB8fAorCQl0YXJnZXRFbGVtZW50QmFzZVR5 cGUgPT0gTU9ORVlPSUQgfHwKKwkJKGlucHV0RWxlbWVudEJhc2VUeXBlID09IENJUkNMRU9JRCAm JgorCQl0YXJnZXRFbGVtZW50QmFzZVR5cGUgPT0gUE9MWUdPTk9JRCkpCisJeworCQkvKgorCQkg KiBDYXN0cyBpbnZvbHZpbmcgTU9ORVkgdHlwZSBhcmUgbm90IGVycm9yIHNhZmUuIFRoZSBDSVJD TEUgdG8gUE9MWUdPTgorCQkgKiBjYXN0IGlzIGFsc28gdW5zYWZlIGJlY2F1c2UgaXQgcmVsaWVz IG9uIGEgU1FMLWxhbmd1YWdlIGZ1bmN0aW9uOworCQkgKiBvbmx5IEMtbGFuZ3VhZ2UgZnVuY3Rp b25zIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZvciBlcnJvciBzYWZlCisJCSAqIGNhc3RzLgor CQkgKi8KKwkJZXJyb3JzYWZlID0gZmFsc2U7CisJfQorCisJaWYgKGVycm9yc2FmZSkKKwl7CisJ CS8qIExvb2sgaW4gcGdfY2FzdCAqLworCQl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMihDQVNUU09V UkNFVEFSR0VULAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKGlucHV0RWxlbWVudEJhc2VUeXBl KSwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh0YXJnZXRFbGVtZW50QmFzZVR5cGUpKTsKKwor CQlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCXsKKwkJCUZvcm1fcGdfY2FzdCBjYXN0 Rm9ybSA9IChGb3JtX3BnX2Nhc3QpIEdFVFNUUlVDVCh0dXBsZSk7CisKKwkJCWlmIChjYXN0Rm9y bS0+b2lkID4gRmlyc3RVbnBpbm5lZE9iamVjdElkKQorCQkJeworCQkJCWVycm9yc2FmZSA9IGZh bHNlOworCQkJCXVzZXJkZWZpbmVkID0gdHJ1ZTsKKwkJCX0KKworCQkJUmVsZWFzZVN5c0NhY2hl KHR1cGxlKTsKKwkJfQorCX0KKworCWlmICghZXJyb3JzYWZlKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCWVycm1zZygi Y2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyB3aGVuICVzIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVk IGluICVzIiwKKwkJCQkJICAgZm9ybWF0X3R5cGVfYmUoaW5wdXRUeXBlKSwKKwkJCQkJICAgZm9y bWF0X3R5cGVfYmUodGFyZ2V0VHlwZSksCisJCQkJCSAgICJERUZBVUxUIiwKKwkJCQkJICAgIkNB U1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IiKSwKKwkJCQl1c2VyZGVmaW5lZAorCQkJCT8gZXJy aGludCgiU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90IHlldCBz dXBwb3J0ZWQiKQorCQkJCTogZXJyaGludCgiRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBk ZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZlIiksCisJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgZXhwckxvY2F0aW9uKHNvdXJjZWV4cHIpKSk7Cit9CisKKwogLyoKICAqIEhhbmRsZSBh biBleHBsaWNpdCBDT0xMQVRFIGNsYXVzZS4KICAqCkBAIC0zMTkzLDYgKzM1NjEsOCBAQCBQYXJz ZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQljYXNlIEVYUFJfS0lORF9D SEVDS19DT05TVFJBSU5UOgogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQlyZXR1 cm4gIkNIRUNLIjsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJcmV0dXJuICJD QVNUIERFRkFVTFQiOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBF WFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIAkJCXJldHVybiAiREVGQVVMVCI7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2Z1bmMuYwppbmRleCA3NzhkNjljNmYzYy4uYTkwNzA1Yjk4NDcgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2Z1bmMuYwpAQCAtMjc0Myw2ICsyNzQzLDkgQEAgY2hlY2tfc3JmX2NhbGxfcGxhY2Vt ZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9zcmYsIGludCBsb2NhdGlvbikKIAkJ Y2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBm dW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNoZWNrIGNvbnN0cmFpbnRzIik7CiAJCQlicmVh azsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJZXJyID0gXygic2V0LXJldHVy bmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9u cyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNl IEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBm dW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA5MDVjOTc1ZDgzYi4uZGMwM2NmNGNlNzQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTE4MjIsNiArMTgyMiwyMCBAQCBGaWd1cmVDb2xu YW1lSW50ZXJuYWwoTm9kZSAqbm9kZSwgY2hhciAqKm5hbWUpCiAJCQkJfQogCQkJfQogCQkJYnJl YWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3Q6CisJCQlzdHJlbmd0aCA9IEZpZ3VyZUNvbG5hbWVJ bnRlcm5hbCgoKFNhZmVUeXBlQ2FzdCAqKSBub2RlKS0+Y2FzdCwKKwkJCQkJCQkJCQkJIG5hbWUp OworCQkJaWYgKHN0cmVuZ3RoIDw9IDEpCisJCQl7CisJCQkJVHlwZUNhc3QgCSpub2RlX2Nhc3Q7 CisJCQkJbm9kZV9jYXN0ID0gKFR5cGVDYXN0ICopKChTYWZlVHlwZUNhc3QgKikgbm9kZSktPmNh c3Q7CisJCQkJaWYgKG5vZGVfY2FzdC0+dHlwZU5hbWUgIT0gTlVMTCkKKwkJCQl7CisJCQkJCSpu YW1lID0gc3RyVmFsKGxsYXN0KG5vZGVfY2FzdC0+dHlwZU5hbWUtPm5hbWVzKSk7CisJCQkJCXJl dHVybiAxOworCQkJCX0KKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfQ29sbGF0ZUNsYXVzZToK IAkJCXJldHVybiBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoKChDb2xsYXRlQ2xhdXNlICopIG5vZGUp LT5hcmcsIG5hbWUpOwogCQljYXNlIFRfR3JvdXBpbmdGdW5jOgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBl LmMKaW5kZXggNzcxM2JkYzZhZjAuLmZlZjgzY2U3M2I0IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfdHlwZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBl LmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNs dWRlICJsaWIvc3RyaW5naW5mby5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgorI2lu Y2x1ZGUgIm5vZGVzL21pc2Nub2Rlcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlci5oIgogI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCkBA IC02NjAsNiArNjYxLDE5IEBAIHN0cmluZ1R5cGVEYXR1bShUeXBlIHRwLCBjaGFyICpzdHJpbmcs IGludDMyIGF0dHR5cG1vZCkKIAlyZXR1cm4gT2lkSW5wdXRGdW5jdGlvbkNhbGwodHlwaW5wdXQs IHN0cmluZywgdHlwaW9wYXJhbSwgYXR0dHlwbW9kKTsKIH0KIAorLyogZXJyb3Itc2FmZSB2ZXJz aW9uIG9mIHN0cmluZ1R5cGVEYXR1bSAqLworYm9vbAorc3RyaW5nVHlwZURhdHVtU2FmZShUeXBl IHRwLCBjaGFyICpzdHJpbmcsIGludDMyIGF0dHR5cG1vZCwKKwkJCQkJTm9kZSAqZXNjb250ZXh0 LCBEYXR1bSAqcmVzdWx0KQoreworCUZvcm1fcGdfdHlwZSB0eXBmb3JtID0gKEZvcm1fcGdfdHlw ZSkgR0VUU1RSVUNUKHRwKTsKKwlPaWQJCQl0eXBpbnB1dCA9IHR5cGZvcm0tPnR5cGlucHV0Owor CU9pZAkJCXR5cGlvcGFyYW0gPSBnZXRUeXBlSU9QYXJhbSh0cCk7CisKKwlyZXR1cm4gT2lkSW5w dXRGdW5jdGlvbkNhbGxTYWZlKHR5cGlucHV0LCBzdHJpbmcsIHR5cGlvcGFyYW0sIGF0dHR5cG1v ZCwKKwkJCQkJCQkJCWVzY29udGV4dCwgcmVzdWx0KTsKK30KKwogLyoKICAqIEdpdmVuIGEgdHlw ZWlkLCByZXR1cm4gdGhlIHR5cGUncyB0eXByZWxpZCAoYXNzb2NpYXRlZCByZWxhdGlvbiksIGlm IGFueS4KICAqIFJldHVybnMgSW52YWxpZE9pZCBpZiB0eXBlIGlzIG5vdCBhIGNvbXBvc2l0ZSB0 eXBlLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKaW5kZXggZTk2YjM4YTU5ZDUuLjZkZjBi OTc1YTg4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTQ2MzAsNyArNDYzMCw3 IEBAIHRyYW5zZm9ybVBhcnRpdGlvbkJvdW5kVmFsdWUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2Rl ICp2YWwsCiAJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCB2YWx1ZSk7CiAJCXZhbHVl ID0gKE5vZGUgKikgZXhwcmVzc2lvbl9wbGFubmVyKChFeHByICopIHZhbHVlKTsKIAkJdmFsdWUg PSAoTm9kZSAqKSBldmFsdWF0ZV9leHByKChFeHByICopIHZhbHVlLCBjb2xUeXBlLCBjb2xUeXBt b2QsCi0JCQkJCQkJCQkgICBwYXJ0Q29sbGF0aW9uKTsKKwkJCQkJCQkJCSAgIHBhcnRDb2xsYXRp b24sIGZhbHNlKTsKIAkJaWYgKCFJc0EodmFsdWUsIENvbnN0KSkKIAkJCWVsb2coRVJST1IsICJj b3VsZCBub3QgZXZhbHVhdGUgcGFydGl0aW9uIGJvdW5kIGV4cHJlc3Npb24iKTsKIAl9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2FycmF5ZnVuY3MuYwppbmRleCBjYzc2YmRkZTcyMy4uMmEzYjQ2NDkxMjMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYwpAQCAtMzI4OSw2ICszMjg5LDE0IEBAIGFycmF5 X21hcChEYXR1bSBhcnJheWQsCiAJCS8qIEFwcGx5IHRoZSBnaXZlbiBleHByZXNzaW9uIHRvIHNv dXJjZSBlbGVtZW50ICovCiAJCXZhbHVlc1tpXSA9IEV4ZWNFdmFsRXhwcihleHByc3RhdGUsIGVj b250ZXh0LCAmbnVsbHNbaV0pOwogCisJCS8qIEV4aXQgZWFybHkgaWYgdGhlIGV2YWx1YXRpb24g ZmFpbHMgKi8KKwkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXhwcnN0YXRlLT5lc2NvbnRleHQp KQorCQl7CisJCQlwZnJlZSh2YWx1ZXMpOworCQkJcGZyZWUobnVsbHMpOworCQkJcmV0dXJuIChE YXR1bSkgMDsKKwkJfQorCiAJCWlmIChudWxsc1tpXSkKIAkJCWhhc251bGxzID0gdHJ1ZTsKIAkJ ZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDZjZjkwYmU0MGJiLi41MGFlNDE4 MzdiYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMTA1NjIsNiArMTA1NjIsMjcg QEAgZ2V0X3J1bGVfZXhwcihOb2RlICpub2RlLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAJ CQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlT YWZlVHlwZUNhc3RFeHByICAgKnN0Y2V4cHIgPSBjYXN0Tm9kZShTYWZlVHlwZUNhc3RFeHByLCBu b2RlKTsKKworCQkJCS8qCisJCQkJICogSGVyZSwgd2UgY2Fubm90IGRlcGFyc2luZyBjYXN0X2V4 cHIgZGlyZWN0bHksIHNpbmNlCisJCQkJICogdHJhbnNmb3JtVHlwZVNhZmVDYXN0IG1heSBoYXZl IGZvbGRlZCBpdCBpbnRvIGEgc2ltcGxlCisJCQkJICogY29uc3RhbnQgb3IgTlVMTC4gSW5zdGVh ZCwgd2UgdXNlIHNvdXJjZV9leHByIGFuZAorCQkJCSAqIGRlZmF1bHRfZXhwciB0byByZWNvbnN0 cnVjdCB0aGUgQ0FTVCBERUZBVUxUIGNsYXVzZS4KKwkJCQkgKi8KKwkJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKGJ1ZiwgIkNBU1QoIik7CisJCQkJZ2V0X3J1bGVfZXhwcihzdGNleHByLT5zb3Vy Y2VfZXhwciwgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8o YnVmLCAiIEFTICVzICIsCisJCQkJCQkJCSBmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2Qoc3RjZXhw ci0+cmVzdWx0dHlwZSwKKwkJCQkJCQkJCQkJCQkJICBzdGNleHByLT5yZXN1bHR0eXBtb2QpKTsK KwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIkRFRkFVTFQgIik7CisJCQkJZ2V0X3J1 bGVfZXhwcihzdGNleHByLT5kZWZhdWx0X2V4cHIsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CisJ CQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIgT04gQ09OVkVSU0lPTiBFUlJPUikiKTsK KwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfSnNvbkV4cHI6CiAJCQl7CiAJCQkJSnNvbkV4cHIg ICAqamV4cHIgPSAoSnNvbkV4cHIgKikgbm9kZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2ZtZ3IvZm1nci5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKaW5kZXggMGZl NjNjNmJiODMuLmM5ZTVkMGRlOGVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9mbWdy L2ZtZ3IuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwpAQCAtMTc1OSw2ICsx NzU5LDIwIEBAIE9pZElucHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlvbklkLCBjaGFyICpzdHIs IE9pZCB0eXBpb3BhcmFtLCBpbnQzMiB0eXBtb2QpCiAJcmV0dXJuIElucHV0RnVuY3Rpb25DYWxs KCZmbGluZm8sIHN0ciwgdHlwaW9wYXJhbSwgdHlwbW9kKTsKIH0KIAorLyogZXJyb3Itc2FmZSB2 ZXJzaW9uIG9mIE9pZElucHV0RnVuY3Rpb25DYWxsICovCitib29sCitPaWRJbnB1dEZ1bmN0aW9u Q2FsbFNhZmUoT2lkIGZ1bmN0aW9uSWQsIGNoYXIgKnN0ciwgT2lkIHR5cGlvcGFyYW0sCisJCQkJ CQkgaW50MzIgdHlwbW9kLCBOb2RlICplc2NvbnRleHQsCisJCQkJCQkgRGF0dW0gKnJlc3VsdCkK K3sKKwlGbWdySW5mbwkJCWZsaW5mbzsKKworCWZtZ3JfaW5mbyhmdW5jdGlvbklkLCAmZmxpbmZv KTsKKworCXJldHVybiBJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoJmZsaW5mbywgc3RyLCB0eXBpb3Bh cmFtLCB0eXBtb2QsCisJCQkJCQkJCSBlc2NvbnRleHQsIHJlc3VsdCk7Cit9CisKIGNoYXIgKgog T2lkT3V0cHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlvbklkLCBEYXR1bSB2YWwpCiB7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oIGIvc3JjL2luY2x1ZGUvZXhl Y3V0b3IvZXhlY0V4cHIuaAppbmRleCA3NTM2NjIwMzcwNi4uOTM3Y2JmM2JjOWIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhl Y3V0b3IvZXhlY0V4cHIuaApAQCAtMjY1LDYgKzI2NSw3IEBAIHR5cGVkZWYgZW51bSBFeHByRXZh bE9wCiAJRUVPUF9YTUxFWFBSLAogCUVFT1BfSlNPTl9DT05TVFJVQ1RPUiwKIAlFRU9QX0lTX0pT T04sCisJRUVPUF9TQUZFVFlQRV9DQVNULAogCUVFT1BfSlNPTkVYUFJfUEFUSCwKIAlFRU9QX0pT T05FWFBSX0NPRVJDSU9OLAogCUVFT1BfSlNPTkVYUFJfQ09FUkNJT05fRklOSVNILApAQCAtNzUw LDYgKzc1MSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAKIAkJCUpzb25Jc1ByZWRp Y2F0ZSAqcHJlZDsJLyogb3JpZ2luYWwgZXhwcmVzc2lvbiBub2RlICovCiAJCX0JCQlpc19qc29u OwogCisJCS8qIGZvciBFRU9QX1NBRkVUWVBFX0NBU1QgKi8KKwkJc3RydWN0CisJCXsKKwkJCXN0 cnVjdCBTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGU7CisJCX0JCQlzdGNleHByOworCiAJCS8q IGZvciBFRU9QX0pTT05FWFBSX1BBVEggKi8KIAkJc3RydWN0CiAJCXsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVj dXRvci5oCmluZGV4IGZhMmI2NTdmYjJmLi5mOTlmYzI2ZWIxZiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVj dXRvci5oCkBAIC0zMjQsNiArMzI0LDcgQEAgRXhlY1Byb2NOb2RlKFBsYW5TdGF0ZSAqbm9kZSkK ICAqIHByb3RvdHlwZXMgZnJvbSBmdW5jdGlvbnMgaW4gZXhlY0V4cHIuYwogICovCiBleHRlcm4g RXhwclN0YXRlICpFeGVjSW5pdEV4cHIoRXhwciAqbm9kZSwgUGxhblN0YXRlICpwYXJlbnQpOwor ZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY0luaXRFeHByU2FmZShFeHByICpub2RlLCBQbGFuU3RhdGUg KnBhcmVudCk7CiBleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdEV4cHJXaXRoUGFyYW1zKEV4cHIg Km5vZGUsIFBhcmFtTGlzdEluZm8gZXh0X3BhcmFtcyk7CiBleHRlcm4gRXhwclN0YXRlICpFeGVj SW5pdFF1YWwoTGlzdCAqcXVhbCwgUGxhblN0YXRlICpwYXJlbnQpOwogZXh0ZXJuIEV4cHJTdGF0 ZSAqRXhlY0luaXRDaGVjayhMaXN0ICpxdWFsLCBQbGFuU3RhdGUgKnBhcmVudCk7CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9mbWdyLmggYi9zcmMvaW5jbHVkZS9mbWdyLmgKaW5kZXggYzBkYmU4 NWVkMWMuLmE5MzU3Yjk4ZDcwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9mbWdyLmgKKysrIGIv c3JjL2luY2x1ZGUvZm1nci5oCkBAIC03NTAsNiArNzUwLDkgQEAgZXh0ZXJuIGJvb2wgRGlyZWN0 SW5wdXRGdW5jdGlvbkNhbGxTYWZlKFBHRnVuY3Rpb24gZnVuYywgY2hhciAqc3RyLAogCQkJCQkJ CQkJCURhdHVtICpyZXN1bHQpOwogZXh0ZXJuIERhdHVtIE9pZElucHV0RnVuY3Rpb25DYWxsKE9p ZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsCiAJCQkJCQkJCSAgT2lkIHR5cGlvcGFyYW0sIGludDMy IHR5cG1vZCk7CitleHRlcm4gYm9vbCBPaWRJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoT2lkIGZ1bmN0 aW9uSWQsIGNoYXIgKnN0ciwgT2lkIHR5cGlvcGFyYW0sCisJCQkJCQkJCQkgaW50MzIgdHlwbW9k LCBOb2RlICplc2NvbnRleHQsCisJCQkJCQkJCQkgRGF0dW0gKnJlc3VsdCk7CiBleHRlcm4gY2hh ciAqT3V0cHV0RnVuY3Rpb25DYWxsKEZtZ3JJbmZvICpmbGluZm8sIERhdHVtIHZhbCk7CiBleHRl cm4gY2hhciAqT2lkT3V0cHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlvbklkLCBEYXR1bSB2YWwp OwogZXh0ZXJuIERhdHVtIFJlY2VpdmVGdW5jdGlvbkNhbGwoRm1nckluZm8gKmZsaW5mbywgU3Ry aW5nSW5mbyBidWYsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IDY0ZmY2OTk2NDMxLi45MDE4ZTE5 MGNjNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTEwNTksNiArMTA1OSwyNyBAQCB0eXBlZGVm IHN0cnVjdCBEb21haW5Db25zdHJhaW50U3RhdGUKIAlFeHByU3RhdGUgICpjaGVja19leHByc3Rh dGU7CS8qIGNoZWNrX2V4cHIncyBldmFsIHN0YXRlLCBvciBOVUxMICovCiB9IERvbWFpbkNvbnN0 cmFpbnRTdGF0ZTsKIAordHlwZWRlZiBzdHJ1Y3QgU2FmZVR5cGVDYXN0U3RhdGUKK3sKKwlTYWZl VHlwZUNhc3RFeHByICpzdGNleHByOworCisJLyoKKwkgKiBBZGRyZXNzIHRvIGp1bXAgdG8gd2hl biBza2lwcGluZyBhbGwgdGhlIHN0ZXBzIHRvIGV2YXVsYXRlIHRoZSBkZWZhdWx0CisJICogZXhw cmVzc2lvbi4KKwkgKi8KKwlpbnQgCQlqdW1wX2VuZDsKKworCS8qCisJICogRm9yIGVycm9yLXNh ZmUgZXZhbHVhdGlvbiBvZiBjb2VyY2lvbnMuIEEgcG9pbnRlciB0byB0aGlzIGlzIHBhc3NlZCB0 bworCSAqIEV4ZWNJbml0RXhwclJlYygpIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBjb2VyY2lvbiBl eHByZXNzaW9ucywgc2VlCisJICogRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByLgorCSAqCisJICog UmVzZXQgZm9yIGVhY2ggZXZhbHVhdGlvbiBvZiBFRU9QX1NBRkVUWVBFX0NBU1QuCisJICovCisJ RXJyb3JTYXZlQ29udGV4dCBlc2NvbnRleHQ7CisKK30gU2FmZVR5cGVDYXN0U3RhdGU7CisKIC8q CiAgKiBTdGF0ZSBmb3IgSnNvbkV4cHIgZXZhbHVhdGlvbiwgdG9vIGJpZyB0byBpbmxpbmUuCiAg KgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGQxNDI5NGE0ZWNlLi44MmIwZmI4M2I0YiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDAwLDYgKzQwMCwxNyBAQCB0eXBlZGVmIHN0cnVjdCBU eXBlQ2FzdAogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlm IHVua25vd24gKi8KIH0gVHlwZUNhc3Q7CiAKKy8qCisgKiBTYWZlVHlwZUNhc3QgLSBhIENBU1Qo c291cmNlX2V4cHIgQVMgdGFyZ2V0X3R5cGUpIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUgor ICogY29uc3RydWN0CisgKi8KK3R5cGVkZWYgc3RydWN0IFNhZmVUeXBlQ2FzdAoreworCU5vZGVU YWcJCXR5cGU7CisJTm9kZQkJKmNhc3Q7CQkJLyogVHlwZUNhc3QgZXhwcmVzc2lvbiAqLworCU5v ZGUJICAgCSpyYXdfZGVmYXVsdDsJLyogdW50cmFuc2Zvcm1lZCBERUZBVUxUIGV4cHJlc3Npb24g Ki8KK30gU2FmZVR5cGVDYXN0OworCiAvKgogICogQ29sbGF0ZUNsYXVzZSAtIGEgQ09MTEFURSBl eHByZXNzaW9uCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggMWI0NDM2ZjJmZjYuLjE0MDEx MDlmYjNjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtNzY5LDYgKzc2OSw0MiBAQCB0eXBlZGVm IGVudW0gQ29lcmNpb25Gb3JtCiAJQ09FUkNFX1NRTF9TWU5UQVgsCQkJLyogZGlzcGxheSB3aXRo IFNRTC1tYW5kYXRlZCBzcGVjaWFsIHN5bnRheCAqLwogfSBDb2VyY2lvbkZvcm07CiAKKy8qCisg KiBTYWZlVHlwZUNhc3RFeHByIC0KKyAqCQlUcmFuc2Zvcm1lZCByZXByZXNlbnRhdGlvbiBvZgor ICogCQlDQVNUKGV4cHIgQVMgdHlwZW5hbWUgREVGQVVMVCBleHByMiBPTiBFUlJPUikKKyAqIAkJ Q0FTVChleHByIEFTIHR5cGVuYW1lIE5VTEwgT04gRVJST1IpCisgKi8KK3R5cGVkZWYgc3RydWN0 IFNhZmVUeXBlQ2FzdEV4cHIKK3sKKwlFeHByCQl4cHI7CisKKwkvKiB0cmFuc2Zvcm1lZCBzb3Vy Y2UgZXhwcmVzc2lvbiAqLworCU5vZGUJICAgKnNvdXJjZV9leHByOworCisJLyoKKwkgKiBUaGUg dHJhbnNmb3JtZWQgY2FzdCBleHByZXNzaW9uOyBOVUxMIGlmIHdlIGNhbiBub3QgY29jZXJjZSBz b3VyY2UKKwkgKiBleHByZXNzaW9uIHRvIHRoZSB0YXJnZXQgdHlwZQorCSAqLworCU5vZGUJICAg KmNhc3RfZXhwciAJcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCisJLyogRmFs bCBiYWNrIHRvIHRoZSBkZWZhdWx0IGV4cHJlc3Npb24gaWYgY2FzdCBldmFsdWF0aW9uIGZhaWxz ICovCisJTm9kZQkgICAqZGVmYXVsdF9leHByOworCisJLyogY2FzdCByZXN1bHQgZGF0YSB0eXBl ICovCisJT2lkCQkJcmVzdWx0dHlwZTsKKworCS8qIGNhc3QgcmVzdWx0IGRhdGEgdHlwZSB0eXBt b2QgKHVzdWFsbHkgLTEpICovCisJaW50MzIJCXJlc3VsdHR5cG1vZDsKKworCS8qIGNhc3QgcmVz dWx0IGRhdGEgdHlwZSBjb2xsYXRpb24gKi8KKwlPaWQJCQlyZXN1bHRjb2xsaWQ7CisKKwkvKiBP cmlnaW5hbCBTYWZlVHlwZUNhc3RFeHByJ3MgbG9jYXRpb24gKi8KKwlQYXJzZUxvYwlsb2NhdGlv bjsKKworfSBTYWZlVHlwZUNhc3RFeHByOworCiAvKgogICogRnVuY0V4cHIgLSBleHByZXNzaW9u IG5vZGUgZm9yIGEgZnVuY3Rpb24gY2FsbAogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29w dGltaXplci9vcHRpbWl6ZXIuaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaApp bmRleCA0NGVjNTI5NmExOC4uNTg3ZTcxMTU5NmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29w dGltaXplci9vcHRpbWl6ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVy LmgKQEAgLTE0Myw3ICsxNDMsNyBAQCBleHRlcm4gdm9pZCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVk X3Nhb3AoTm9kZSAqbm9kZSk7CiBleHRlcm4gTm9kZSAqZXN0aW1hdGVfZXhwcmVzc2lvbl92YWx1 ZShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSk7CiAKIGV4dGVybiBFeHByICpldmFsdWF0 ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwK LQkJCQkJCSAgIE9pZCByZXN1bHRfY29sbGF0aW9uKTsKKwkJCQkJCSAgIE9pZCByZXN1bHRfY29s bGF0aW9uLCBib29sIGVycm9yX3NhZmUpOwogCiBleHRlcm4gYm9vbCB2YXJfaXNfbm9ubnVsbGFi bGUoUGxhbm5lckluZm8gKnJvb3QsIFZhciAqdmFyLCBib29sIHVzZV9yZWxfaW5mbyk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jb2VyY2UuaCBiL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9jb2VyY2UuaAppbmRleCA4ZDc3NWM3MmM1OS4uMWVjYTFjZTcyN2QgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jb2VyY2UuaAorKysgYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VfY29lcmNlLmgKQEAgLTQzLDExICs0MywyNiBAQCBleHRlcm4gTm9k ZSAqY29lcmNlX3RvX3RhcmdldF90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJICAg Q29lcmNpb25Db250ZXh0IGNjb250ZXh0LAogCQkJCQkJCQkgICBDb2VyY2lvbkZvcm0gY2Zvcm1h dCwKIAkJCQkJCQkJICAgaW50IGxvY2F0aW9uKTsKK2V4dGVybiBOb2RlICpjb2VyY2VfdG9fdGFy Z2V0X3R5cGVfZXh0ZW5kZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJCQlOb2RlICpl eHByLAorCQkJCQkJCQkJCQlPaWQgZXhwcnR5cGUsCisJCQkJCQkJCQkJCU9pZCB0YXJnZXR0eXBl LAorCQkJCQkJCQkJCQlpbnQzMiB0YXJnZXR0eXBtb2QsCisJCQkJCQkJCQkJCUNvZXJjaW9uQ29u dGV4dCBjY29udGV4dCwKKwkJCQkJCQkJCQkJQ29lcmNpb25Gb3JtIGNmb3JtYXQsCisJCQkJCQkJ CQkJCWludCBsb2NhdGlvbiwKKwkJCQkJCQkJCQkJTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBi b29sIGNhbl9jb2VyY2VfdHlwZShpbnQgbmFyZ3MsIGNvbnN0IE9pZCAqaW5wdXRfdHlwZWlkcywg Y29uc3QgT2lkICp0YXJnZXRfdHlwZWlkcywKIAkJCQkJCQlDb2VyY2lvbkNvbnRleHQgY2NvbnRl eHQpOwogZXh0ZXJuIE5vZGUgKmNvZXJjZV90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq bm9kZSwKIAkJCQkJCSBPaWQgaW5wdXRUeXBlSWQsIE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRh cmdldFR5cGVNb2QsCiAJCQkJCQkgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZv cm0gY2Zvcm1hdCwgaW50IGxvY2F0aW9uKTsKK2V4dGVybiBOb2RlICpjb2VyY2VfdHlwZV9leHRl bmQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAorCQkJCQkJCQlPaWQgaW5wdXRUeXBl SWQsCisJCQkJCQkJCU9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCisJCQkJ CQkJCUNvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsCisJCQkJ CQkJCWludCBsb2NhdGlvbiwKKwkJCQkJCQkJTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBOb2Rl ICpjb2VyY2VfdG9fZG9tYWluKE5vZGUgKmFyZywgT2lkIGJhc2VUeXBlSWQsIGludDMyIGJhc2VU eXBlTW9kLAogCQkJCQkJCSAgT2lkIHR5cGVJZCwKIAkJCQkJCQkgIENvZXJjaW9uQ29udGV4dCBj Y29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsIGludCBsb2NhdGlvbiwKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oCmluZGV4IGY3ZDA3Yzg0NTQyLi45ZjViMzJlMDM2MCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oCkBAIC02Nyw2ICs2Nyw4IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4cHJLaW5kCiAJ RVhQUl9LSU5EX1ZBTFVFU19TSU5HTEUsCS8qIHNpbmdsZS1yb3cgVkFMVUVTIChpbiBJTlNFUlQg b25seSkgKi8KIAlFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVCwgLyogQ0hFQ0sgY29uc3RyYWlu dCBmb3IgYSB0YWJsZSAqLwogCUVYUFJfS0lORF9ET01BSU5fQ0hFQ0ssCQkvKiBDSEVDSyBjb25z dHJhaW50IGZvciBhIGRvbWFpbiAqLworCUVYUFJfS0lORF9DQVNUX0RFRkFVTFQsCQkvKiBkZWZh dWx0IGV4cHJlc3Npb24gaW4KKwkJCQkJCQkJICAgQ0FTVCBERUZBVUxUIE9OIENPTlZFUlNJT04g RVJST1IgKi8KIAlFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQsCS8qIGRlZmF1bHQgdmFsdWUgZm9y IGEgdGFibGUgY29sdW1uICovCiAJRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQsIC8qIGRlZmF1 bHQgcGFyYW1ldGVyIHZhbHVlIGZvciBmdW5jdGlvbiAqLwogCUVYUFJfS0lORF9JTkRFWF9FWFBS RVNTSU9OLCAvKiBpbmRleCBleHByZXNzaW9uICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfdHlwZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaAppbmRl eCAwZDkxOWQ4YmZhMi4uNDBhY2EyYjMxYzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV90eXBlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaApAQCAt NDcsNiArNDcsOCBAQCBleHRlcm4gY2hhciAqdHlwZVR5cGVOYW1lKFR5cGUgdCk7CiBleHRlcm4g T2lkCXR5cGVUeXBlUmVsaWQoVHlwZSB0eXApOwogZXh0ZXJuIE9pZAl0eXBlVHlwZUNvbGxhdGlv bihUeXBlIHR5cCk7CiBleHRlcm4gRGF0dW0gc3RyaW5nVHlwZURhdHVtKFR5cGUgdHAsIGNoYXIg KnN0cmluZywgaW50MzIgYXR0dHlwbW9kKTsKK2V4dGVybiBib29sIHN0cmluZ1R5cGVEYXR1bVNh ZmUoVHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0eXBtb2QsCisJCQkJCQkJCU5vZGUg KmVzY29udGV4dCwgRGF0dW0gKnJlc3VsdCk7CiAKIGV4dGVybiBPaWQJdHlwZWlkVHlwZVJlbGlk KE9pZCB0eXBlX2lkKTsKIGV4dGVybiBPaWQJdHlwZU9yRG9tYWluVHlwZVJlbGlkKE9pZCB0eXBl X2lkKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5iMGRjN2I4ZmFlYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKQEAgLTAsMCArMSw4MTAgQEAKK1NFVCBleHRyYV9m bG9hdF9kaWdpdHMgPSAwOworLS0gQ0FTVCBERUZBVUxUIE9OIENPTlZFUlNJT04gRVJST1IKK1NF TEVDVCBDQVNUKEInMDEnIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworIGRhdGUgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoQklUJzAxJyBBUyBk YXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkYXRlIAorLS0tLS0tCisg CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKFRSVUUgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgxLjEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZGF0ZSAK Ky0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxIEFTIGRhdGUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworIGRhdGUgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VM RUNUIENBU1QoMTExMSBBUyAiY2hhciIgREVGQVVMVCAnQScgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgY2hhciAKKy0tLS0tLQorIEEKKygxIHJvdykKKworLS10ZXN0IHNvdXJjZSBleHByZXNzaW9u IGlzIGEgdW5rbm93biBjb25zdAorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBFUlJP UiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBz eW50YXggZm9yIHR5cGUgaW50ZWdlcjogImVycm9yIgorTElORSAxOiBWQUxVRVMgKENBU1QoJ2Vy cm9yJyBBUyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyAgICAgICAgICAg ICAgICAgICAgIF4KK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0tLQorICAgICAgICAKKygxIHJvdykK KworVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBERUZBVUxUIDQyIE9OIENPTlZFUlNJ T04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgICAgICA0MgorKDEgcm93KQorCitT RUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgMTggT04gQ09OVkVSU0lPTiBFUlJPUik7Cisg aW50NCAKKy0tLS0tLQorICAgMTgKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBE RUZBVUxUIHN1bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBhZ2dy ZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lv bnMKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K K1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3ZlcigpIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHdpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxv d2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucworTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScg YXMgaW50IERFRkFVTFQgc3VtKDEpIG92ZXIoKSBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQg REVGQVVMVCAoU0VMRUNUIE5VTEwpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJP UjogIGNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb24KK0xJTkUg MTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIChTRUxFQ1QgTlVMTCkgT04gQ09OVkVS U0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxF Q1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVy cm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJiIgor TElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9OIENPTlZFUlNJT04g RVJST1IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNU IENBU1QoJ2EnOjppbnQgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsg LS1lcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSBpbnRlZ2VyOiAi YSIKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnOjppbnQgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SLi4uCisgICAgICAgICAgICAgICAgICAgIF4KKy0tdGhlIGRlZmF1bHQg ZXhwcmVzc2lvbuKAmXMgY29sbGF0aW9uIHNob3VsZCBtYXRjaCB0aGUgY29sbGF0aW9uIG9mIHRo ZSBjYXN0CistLXRhcmdldCB0eXBlCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyB0ZXh0IERFRkFV TFQgJzEnIENPTExBVEUgIkMiIE9OIENPTlZFUlNJT04gRVJST1IpKTsKK0VSUk9SOiAgdGhlIGNv bGxhdGlvbiBvZiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbiBjb25mbGljdHMgd2l0aCB0YXJnZXQg dHlwZSBjb2xsYXRpb24KK0xJTkUgMTogVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgdGV4dCBERUZB VUxUICcxJyBDT0xMQVRFICJDIiBPTiBDT05WLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCitERVRBSUw6ICAiZGVmYXVsdCIgdmVyc3VzICJDIgorVkFM VUVTIChDQVNUKCdlcnJvcicgQVMgaW50MnZlY3RvciBERUZBVUxUICcxIDMnICBPTiBDT05WRVJT SU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0tLQorIDEgMworKDEgcm93KQorCitWQUxV RVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yW10gREVGQVVMVCAnezEgM30nICBPTiBDT05W RVJTSU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0tLQorIHsiMSAzIn0KKygxIHJvdykK KworLS0gdGVzdCBzb3VyY2UgZXhwcmVzc2lvbiBjb250YWluIHN1YnF1ZXJ5CitTRUxFQ1QgQ0FT VCgoU0VMRUNUIGIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSksIChWQUxVRVMoJ0gnKSkgcyhi KSkKKyAgICAgICAgICAgIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7MSAzfScgIE9OIENPTlZF UlNJT04gRVJST1IpOworICAgIGIgICAgCistLS0tLS0tLS0KKyB7IjEgMyJ9CisoMSByb3cpCisK K1NFTEVDVCBDQVNUKChTRUxFQ1QgQVJSQVkoKFNFTEVDVCBiIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDIpIGcsIChWQUxVRVMoJ0gnKSkgcyhiKSkpKQorICAgICAgICAgICAgQVMgSU5UW10KKyAg ICAgICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0t LS0tLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIEZVTkNUSU9OIHJldF9pbnQ4KCkgUkVUVVJOUyBC SUdJTlQgQVMKKyQkCitCRUdJTiBSRVRVUk4gMjE0NzQ4MzY0ODsgRU5EOworJCQKK0xBTkdVQUdF IHBscGdzcWwgSU1NVVRBQkxFOworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHJldF9p bnQ4KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgaW50ZWdlciBvdXQg b2YgcmFuZ2UKK1NFTEVDVCBDQVNUKCdhJyBhcyBkYXRlIERFRkFVTFQgcmV0X2ludDgoKSBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3QgY29lcmNlIENBU1QgREVG QVVMVCBleHByZXNzaW9uIHRvIHR5cGUgZGF0ZQorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMg ZGF0ZSBERUZBVUxUIHJldF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBFUlIuLi4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBERUZBVUxUIGV4cHJlc3Npb24gY2Fu IG5vdCBiZSBzZXQtcmV0dXJuaW5nCitDUkVBVEUgRlVOQ1RJT04gcmV0X3NldGludCgpIFJFVFVS TlMgU0VUT0YgaW50ZWdlciBBUworJCQKK0JFR0lOIFJFVFVSTiBRVUVSWSBFWEVDVVRFICdzZWxl Y3QgMSB1bmlvbiBhbGwgc2VsZWN0IDEnOyBFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJTU1V VEFCTEU7CitDUkVBVEUgVEFCTEUgdGNhc3QoYSB0ZXh0W10sIGIgaW50IEdFTkVSQVRFRCBCWSBE RUZBVUxUIEFTIElERU5USVRZKTsKK0lOU0VSVCBJTlRPIHRjYXN0IFZBTFVFUyAoJ3sxMn0nKSwg KCd7MSxhLCBifScpLCAoJ3t7MSwyfSwge2MsZH19JyksICgnezEzfScpOworU0VMRUNUIENBU1Qo J2EnIGFzIGludCBERUZBVUxUIHJldF9zZXRpbnQoKSBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9N IHRjYXN0OyAtLWVycm9yCitFUlJPUjogIHNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3Qg YWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMKK0xJTkUgMTogU0VMRUNUIENBU1Qo J2EnIGFzIGludCBERUZBVUxUIHJldF9zZXRpbnQoKSBPTiBDT05WRVJTSU9OIEVSLi4uCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVCh0IEFTIHRl eHRbXSBERUZBVUxUICd7MjEsMjIsICcgfHwgYiB8fCAnfScgT04gQ09OVkVSU0lPTiBFUlJPUikg RlJPTSB0Y2FzdCBhcyB0OworICAgICB0ICAgICAKKy0tLS0tLS0tLS0tCisgezIxLDIyLDF9Cisg ezIxLDIyLDJ9CisgezIxLDIyLDN9CisgezIxLDIyLDR9CisoNCByb3dzKQorCitTRUxFQ1QgQ0FT VCh0LmEgQVMgaW50W10gREVGQVVMVCAnezIxLDIyfSc6OmludFtdIHx8IGIgT04gQ09OVkVSU0lP TiBFUlJPUikgRlJPTSB0Y2FzdCBhcyB0OworICAgICBhICAgICAKKy0tLS0tLS0tLS0tCisgezEy fQorIHsyMSwyMiwyfQorIHsyMSwyMiwzfQorIHsxM30KKyg0IHJvd3MpCisKKy0tIHRlc3Qgd2l0 aCB1c2VyLWRlZmluZWQgdHlwZSwgZG9tYWluLCBhcnJheSBvdmVyIGRvbWFpbiwgZG9tYWluIG92 ZXIgYXJyYXkKK0NSRUFURSBET01BSU4gZF9pbnQ0MiBhcyBpbnQgY2hlY2sgKHZhbHVlID0gNDIp IE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX2NoYXIzX25vdF9udWxsIGFzIGNoYXIoMykgTk9U IE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfdmFyY2hhciBhcyB2YXJjaGFyKDMpIE5PVCBOVUxMOwor Q1JFQVRFIERPTUFJTiBkX2ludF9hcnIgYXMgaW50W10gY2hlY2sgKHZhbHVlID0gJ3s0MSwgNDN9 JykgTk9UIE5VTEw7CitDUkVBVEUgVFlQRSBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBBUyAoYSBk X2NoYXIzX25vdF9udWxsLCBiIGludCk7CitDUkVBVEUgVFlQRSBjb21wMiBBUyAoYSBkX3ZhcmNo YXIpOworU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMzIpJyBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICB2YWx1ZSB0b28gbG9uZyBmb3IgdHlw ZSBjaGFyYWN0ZXIgdmFyeWluZygzKQorTElORSAxOiBTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBBUyBj b21wMiBERUZBVUxUICcoMTIzMiknIE9OIENPTlZFUlNJT04uLi4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBBUyBj b21wMiBERUZBVUxUICcoMTIzKScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY29tcDIgCistLS0t LS0tCisgKDEyMykKKygxIHJvdykKKworU0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxU IDQxIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHZhbHVlIGZvciBkb21h aW4gZF9pbnQ0MiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJkX2ludDQyX2NoZWNrIgorU0VM RUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpOwor IGRfaW50NDIgCistLS0tLS0tLS0KKyAgICAgIDQyCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKE5V TEwgQVMgZF9pbnQ0MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IK K0VSUk9SOiAgZG9tYWluIGRfaW50NDIgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKK1NFTEVD VCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpOwor IGRfaW50NDIgCistLS0tLS0tLS0KKyAgICAgIDQyCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCco LDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKE5VTEwsNDIpJyBBUyBjb21wX2Rv bWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMSwyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7Cisg Y29tcF9kb21haW5fd2l0aF90eXBtb2QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKCIx ICAiLDIpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWlu X3dpdGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1l cnJvcgorRVJST1I6ICB2YWx1ZSB0b28gbG9uZyBmb3IgdHlwZSBjaGFyYWN0ZXIoMykKK0xJTkUg MTogLi4uU1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCAn KDEyMzQsMiknLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1QoQVJSQVlbNDIsNDFdIEFTIGRfaW50NDJb XSBERUZBVUxUICd7NDIsIDQyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgIGFycmF5ICAKKy0t LS0tLS0tLQorIHs0Miw0Mn0KKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlbNDIsNDFdIEFT IGRfaW50X2FyciBERUZBVUxUICd7NDEsIDQzfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgIGFy cmF5ICAKKy0tLS0tLS0tLQorIHs0MSw0M30KKygxIHJvdykKKworLS0gdGVzdCBhcnJheSBjb2Vy Y2UKK1NFTEVDVCBDQVNUKGFycmF5WydhJzo6dGV4dF0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4 IGZvciB0eXBlIGludGVnZXI6ICJhIgorU0VMRUNUIENBU1QoYXJyYXlbJ2EnXSBBUyBpbnRbXSBE RUZBVUxUIEFSUkFZWzFdIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQor IHsxfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChhcnJheVsxMS4xMl0gQVMgZGF0ZVtdIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJv dykKKworU0VMRUNUIENBU1QoYXJyYXlbMTExMTExMTExMTExMTExMTFdIEFTIGludFtdIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJv dykKKworU0VMRUNUIENBU1QoYXJyYXlbWydhYmMnXSxbNDU2XV0gQVMgaW50W10gREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQor CitTRUxFQ1QgQ0FTVCgnezEyMyxhYmMsNDU2fScgQVMgaW50W10gREVGQVVMVCAney03ODl9JyBP TiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgaW50NCAgCistLS0tLS0tLQorIHstNzg5fQorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnezIzNCxkZWYsNTY3fSc6OnRleHRbXSBBUyBpbnRlZ2VyW10gREVG QVVMVCAney0xMDExfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgIGludDQgICAKKy0tLS0tLS0t LQorIHstMTAxMX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUn XSxbJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOwor IGFycmF5IAorLS0tLS0tLQorIHsxLDJ9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKEFSUkFZW1sn MScsICcyJ10sIFsndGhyZWUnLCAnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9JyBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS1vaworICBhcnJheSAgCistLS0tLS0tLS0KKyB7MjEsMjJ9Ciso MSByb3cpCisKK1NFTEVDVCBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnOjppbnQsICdh J11dIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVy cm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJ0aHJl ZSIKK0xJTkUgMTogU0VMRUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZSc6OmludCwg J2EnXV0gQVMgaW50W10gLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCitTRUxFQ1QgQ0FTVChBUlJBWVsxLCAndGhyZWUnOjppbnRdIEFTIGludFtdIERFRkFVTFQg J3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGludmFsaWQg aW5wdXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJ0aHJlZSIKK0xJTkUgMTogU0VMRUNUIENB U1QoQVJSQVlbMSwgJ3RocmVlJzo6aW50XSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9Li4uCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tLS0tc2FmZSBjYXN0IHdpdGggZ2VvbWV0 cnkgZGF0YSB0eXBlCitTRUxFQ1QgQ0FTVCgnKDEsMiknOjpwb2ludCBBUyBib3ggREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBib3ggICAgIAorLS0tLS0tLS0tLS0tLQor ICgxLDIpLCgxLDIpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbKE5hTiwxKSwoTmFOLGluZmlu aXR5KV0nOjpsc2VnIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyAgICAgcG9pbnQgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAoTmFOLEluZmluaXR5KQorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCgnWygxZSszMDAsSW5maW5pdHkpLCgxZSszMDAsSW5maW5pdHkp XSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAg ICAgIHBvaW50ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxZSszMDAsSW5maW5pdHkp CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbKDEsMiksKDMsNCldJzo6cGF0aCBhcyBwb2x5Z29u IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBwb2x5Z29uIAorLS0tLS0tLS0t CisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTmFOLDEuMCxOYU4saW5maW5pdHkpJzo6Ym94 IEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgcG9pbnQg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAoTmFOLEluZmluaXR5KQorKDEgcm93KQorCitTRUxF Q1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgbHNlZyBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgICAgIGxzZWcgICAgICAKKy0tLS0tLS0tLS0tLS0tLQorIFso MiwyKSwoMCwwKV0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6 Ym94IEFTIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAg ICAgIHBvbHlnb24gICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoKDAs MCksKDAsMiksKDIsMiksKDIsMCkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCww LjAsMC4wKSc6OmJveCBBUyBwYXRoIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyBwYXRoIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLGluZmluaXR5 LE5hTixpbmZpbml0eSknOjpib3ggQVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyAgICAgICAgY2lyY2xlICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyA8KE5hTixJbmZpbml0eSksTmFOPgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKE5hTiwwLjAp LCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgcG9pbnQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0tLS0tLS0t LQorIChOYU4sSW5maW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDAuMCksKDIu MCw0LjApLCgwLjAsMC4wKSc6OnBvbHlnb24gQVMgcGF0aCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgICAgICAgIHBhdGggICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICgoMiwwKSwoMiw0KSwoMCwwKSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJygyLjAsMC4w KSwoMi4wLDQuMCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBib3ggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworICAgICBib3ggICAgIAorLS0tLS0tLS0tLS0tLQorICgyLDQpLCgw LDApCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTmFOLGluZmluaXR5KSwoMi4wLDQuMCksKDAu MCxpbmZpbml0eSknOjpwb2x5Z29uIEFTIGNpcmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgICAgICAgIGNpcmNsZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgPChOYU4sSW5maW5pdHkpLE5hTj4KKygxIHJvdykKKworU0VMRUNUIENBU1QoJzwoNSwxKSwz Pic6OmNpcmNsZSBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7Cisg cG9pbnQgCistLS0tLS0tCisgKDUsMSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJzwoMyw1KSww Pic6OmNpcmNsZSBhcyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAg ICBib3ggICAgIAorLS0tLS0tLS0tLS0tLQorICgzLDUpLCgzLDUpCisoMSByb3cpCisKKy0tIG5v dCBzdXBwb3J0ZWQgYmVjYXVzZSB0aGUgY2FzdCBmcm9tIGNpcmNsZSB0byBwb2x5Z29uIGlzIGlt cGxlbWVudGVkIGFzIGEgU1FMCistLSBmdW5jdGlvbiwgd2hpY2ggY2Fubm90IGJlIGVycm9yLXNh ZmUuCitTRUxFQ1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIHBvbHlnb24gREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNpcmNs ZSB0byBwb2x5Z29uIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNU IC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKCc8KDMsNSksMD4n OjpjaXJjbGUgYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQy4uLgorICAgICAgICAgICAgICAg ICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlz IG5vdCBlcnJvciBzYWZlCistLS0tLXNhZmUgY2FzdCBmcm9tL3RvIG1vbmV5IHR5cGUgaXMgbm90 IHN1cHBvcnRlZCwgYWxsIHRoZSBmb2xsb3dpbmcgd291bGQgcmVzdWx0IGVycm9yCitTRUxFQ1Qg Q0FTVChOVUxMOjppbnQ4IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBiaWdpbnQgdG8gbW9uZXkgd2hlbiBERUZBVUxU IGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IK K0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6aW50OCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBj YXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUKK1NFTEVDVCBD QVNUKE5VTEw6OmludDQgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGludGVnZXIgdG8gbW9uZXkgd2hlbiBERUZBVUxU IGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IK K0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6aW50NCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBj YXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUKK1NFTEVDVCBD QVNUKE5VTEw6Om51bWVyaWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIG51bWVyaWMgdG8gbW9uZXkgd2hlbiBERUZB VUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJS T1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNp dCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUKK1NFTEVD VCBDQVNUKE5VTEw6Om1vbmV5IEFTIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIG1vbmV5IHRvIG51bWVyaWMgd2hlbiBE RUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04g RVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMgbnVtZXJpYyBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBs aWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUKK1NF TEVDVCBDQVNUKE5VTEw6Om1vbmV5W10gQVMgbnVtZXJpY1tdIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBtb25leVtdIHRvIG51bWVy aWNbXSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04g Q09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjptb25leVtdIEFTIG51 bWVyaWNbXSBERUZBVUxUIE5VTEwgT04gQ09OVkUuLi4KKyAgICAgICAgICAgICAgICAgICAgXgor SElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJy b3Igc2FmZQorLS0tLS1zYWZlIGNhc3QgZnJvbSBieXRlYSB0eXBlIHRvIG90aGVyIGRhdGEgdHlw ZXMKK1NFTEVDVCBDQVNUICgnXHgxMTIyMzM0NDU1NjY3Nzg4OTknOjpieXRlYSBBUyBpbnQ4IERF RkFVTFQgMTkgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50OCAKKy0tLS0tLQorICAgMTkKKygx IHJvdykKKworU0VMRUNUIENBU1QoJ1x4MTIzNDU2Nzg5QSc6OmJ5dGVhIEFTIGludDQgREVGQVVM VCAyMCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAyMAorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTYnOjpieXRlYSBBUyBpbnQyIERFRkFVTFQgMjEgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgaW50MiAKKy0tLS0tLQorICAgMjEKKygxIHJvdykKKworLS0t LS1zYWZlIGNhc3QgZnJvbSBiaXQgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FT VCgnMTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UIERFRkFVTFQgMjIgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgaW50NCAKKy0tLS0tLQorICAgMjIKKygxIHJvdykKKworU0VMRUNUIENB U1QgKCcxMTExMTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJTlQ4IERFRkFVTFQgMjMgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgaW50OCAKKy0tLS0tLQorICAgMjMKKygxIHJvdykKKworLS0tLS1z YWZlIGNhc3QgZnJvbSB0ZXh0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworc2VsZWN0IENBU1Qo J2EuYi5jLmQnOjp0ZXh0IGFzIHJlZ2NsYXNzIGRlZmF1bHQgTlVMTCBvbiBjb252ZXJzaW9uIGVy cm9yKTsKKyByZWdjbGFzcyAKKy0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIFRBQkxF IHRlc3Rfc2FmZWNhc3QoY29sMCB0ZXh0KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QoY29s MCkgVkFMVUVTICgnPHZhbHVlPm9uZTwvdmFsdWUnKTsKK1NFTEVDVCBjb2wwIGFzIHRleHQsCisg ICAgICAgQ0FTVChjb2wwIEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19yZWdjbGFzcywKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5VTEwgYXMgZXhwZWN0X3RydWUsCisgICAg ICAgQ0FTVChjb2wwIEFTICJjaGFyIiAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2NoYXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG5hbWUgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX25hbWUsCisgICAgICAgQ0FTVChjb2wwIEFTIHhtbCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9feG1sCitGUk9NIHRlc3Rfc2FmZWNh c3Q7CisgICAgICAgdGV4dCAgICAgICAgfCB0b19yZWdjbGFzcyB8IGV4cGVjdF90cnVlIHwgdG9f Y2hhciB8ICAgICAgdG9fbmFtZSAgICAgIHwgdG9feG1sIAorLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0KKyA8dmFsdWU+b25lPC92YWx1ZSB8ICAgICAgICAgICAgIHwgdCAgICAgICAgICAg fCA8ICAgICAgIHwgPHZhbHVlPm9uZTwvdmFsdWUgfCAKKygxIHJvdykKKworU0VMRUNUIENBU1Qo JzE5Mi4xNjguMS54JyBhcyBpbmV0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyBpbmV0IAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEuMi8z MCcgYXMgY2lkciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY2lkciAKKy0t LS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnMjI6MDA6NWM6MDg6NTU6MDg6MDE6MDIn OjptYWNhZGRyOCBhcyBtYWNhZGRyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyBtYWNhZGRyIAorLS0tLS0tLS0tCisgCisoMSByb3cpCisKKy0tLS0tc2FmZSBjYXN0IGJldHdl ZWVuIHJhbmdlIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCdbMSwyXSc6OmludDRyYW5nZSBBUyBp bnQ0bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50NG11 bHRpcmFuZ2UgCistLS0tLS0tLS0tLS0tLS0tCisge1sxLDMpfQorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnWzEsMl0nOjppbnQ4cmFuZ2UgQVMgaW50OG11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworIGludDhtdWx0aXJhbmdlIAorLS0tLS0tLS0tLS0tLS0tLQor IHtbMSwzKX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1sxLDJdJzo6bnVtcmFuZ2UgIEFTIG51 bW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIG51bW11bHRp cmFuZ2UgCistLS0tLS0tLS0tLS0tLS0KKyB7WzEsMl19CisoMSByb3cpCisKK1NFTEVDVCBDQVNU KCdbLWluZmluaXR5LGluZmluaXR5XSc6OmRhdGVyYW5nZSBBUyBkYXRlbXVsdGlyYW5nZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGRhdGVtdWx0aXJhbmdlICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbLWluZmluaXR5LGluZmluaXR5XX0KKygxIHJv dykKKworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6dHNyYW5nZSBBUyB0c211 bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgdHNtdWx0 aXJhbmdlICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7Wy1pbmZpbml0eSxpbmZp bml0eV19CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OnRz dHpyYW5nZSBBUyB0c3R6bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisgICAgIHRzdHptdWx0aXJhbmdlICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHtbLWluZmluaXR5LGluZmluaXR5XX0KKygxIHJvdykKKworLS0tLS1zYWZlIGNhc3QgYmV0d2Vl ZW4gbnVtZXJpYyBkYXRhIHR5cGVzCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDEoCisgIGNv bDEgZmxvYXQ0LCBjb2wyIGZsb2F0OCwgY29sMyBudW1lcmljLCBjb2w0IG51bWVyaWNbXSwKKyAg Y29sNSBpbnQyIGRlZmF1bHQgMzI3NjcsCisgIGNvbDYgaW50NCBkZWZhdWx0IDMyNzY4LAorICBj b2w3IGludDggZGVmYXVsdCA0Mjk0OTY3Mjk2KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3Qx IFZBTFVFUygnMTEuMTIzNCcsICcxMS4xMjM0JywgJzkyMjMzNzIwMzY4NTQ3NzU4MDgnLCAnezEx LjEyMzR9Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygn aW5mJywgJ2luZicsICdpbmYnLCAnezExLjEyMzQsIDEyLCBpbmYsIE5hTn0nOjpudW1lcmljW10p OworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCctaW5mJywgJy1pbmYnLCAnLWlu ZicsICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8g dGVzdF9zYWZlY2FzdDEgVkFMVUVTKCdOYU4nLCAnTmFOJywgJ05hTicsICd7MTEuMTIzNCwgMTIs IC1pbmYsIE5hTn0nOjpudW1lcmljW10pOworU0VMRUNUIGNvbDUgYXMgaW50MiwKKyAgICAgICBD QVNUKGNvbDUgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDUgQVMgb2lkIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w1IGFzIGlu dDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAg Q0FTVChjb2w1IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJp YyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAg ICBDQVNUKGNvbDUgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyBpbnQyICB8 IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zs b2F0OCB8IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8 ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3IHwg ICAgICAgICAgMzI3NjcuMAorIDMyNzY3IHwgICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAg IDMyNzY3IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgICAzMjc2NyB8ICAgICAgICAgIDMy NzY3LjAKKyAzMjc2NyB8ICAgMzI3NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAg ICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAgMzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCisgMzI3 NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAg ICAgMzI3NjcgfCAgICAgIDMyNzY3IHwgICAgICAgICAgMzI3NjcuMAorKDQgcm93cykKKworU0VM RUNUIGNvbDYgYXMgaW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50MiBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50 NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBD QVNUKGNvbDYgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19v aWQsCisgICAgICAgQ0FTVChjb2w2IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0NCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNiBh cyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwK KyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYygxMCwxKSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJP TSB0ZXN0X3NhZmVjYXN0MTsKKyBpbnQ0ICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwg dG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX251bWVyaWMgfCB0b19udW1lcmlj X3NjYWxlIAorLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisg MzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3Njgg fCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorIDMyNzY4IHwgICAg ICAgICB8ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgIDMyNzY4 IHwgICAgICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAKKyAzMjc2OCB8ICAgICAgICAgfCAgIDMy NzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3 NjggfCAgICAgICAgICAzMjc2OC4wCisgMzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2 OCB8ICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAg ICAgMzI3NjguMAorKDQgcm93cykKKworU0VMRUNUIGNvbDcgYXMgaW50OCwKKyAgICAgICBDQVNU KGNvbDcgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 MiwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDcgQVMgb2lkIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w3IGFzIGludDgg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FT VChjb2w3IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f ZmxvYXQ0LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVtZXJpYyBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBD QVNUKGNvbDcgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAgICBpbnQ4ICAg IHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCAgdG9faW50OCAgIHwgIHRvX2Zsb2F0NCAg fCB0b19mbG9hdDggIHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIDQyOTQ5Njcy OTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSsw OSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5Njcy OTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSsw OSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5Njcy OTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSsw OSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5Njcy OTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSsw OSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorKDQgcm93cykK KworU0VMRUNUIGNvbDMgYXMgbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50MiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNv bDMgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwK KyAgICAgICBDQVNUKGNvbDMgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wzIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0NCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENB U1QoY29sMyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJp YygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19z Y2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAgICAgICBudW1lcmljICAgICAgIHwgdG9faW50 MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgIHRvX2Zsb2F0NCAgfCAgICAgIHRvX2Zs b2F0OCAgICAgICB8ICAgICB0b19udW1lcmljICAgICAgfCB0b19udW1lcmljX3NjYWxlIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgOTIyMzM3MjAzNjg1NDc3NTgwOCB8ICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgIHwgICAgICAgICB8IDkuMjIzMzdlKzE4IHwgOS4yMjMzNzIwMzY4NTQ3 OGUrMTggfCA5MjIzMzcyMDM2ODU0Nzc1ODA4IHwgICAgICAgICAgICAgICAgIAorICAgICAgICAg ICAgSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICBJ bmZpbml0eSB8ICAgICAgICAgICAgIEluZmluaXR5IHwgICAgICAgICAgICBJbmZpbml0eSB8ICAg ICAgICAgICAgICAgICAKKyAgICAgICAgICAgLUluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgfCAgICAgICAgIHwgICAtSW5maW5pdHkgfCAgICAgICAgICAgIC1JbmZpbml0eSB8 ICAgICAgICAgICAtSW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg IE5hTiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgTmFO IHwgICAgICAgICAgICAgICAgICBOYU4gfCAgICAgICAgICAgICAgICAgTmFOIHwgICAgICAgICAg ICAgIE5hTgorKDQgcm93cykKKworU0VMRUNUIGNvbDQgYXMgbnVtX2FyciwKKyAgICAgICBDQVNU KGNvbDQgQVMgaW50MltdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQy YXJyLAorICAgICAgIENBU1QoY29sNCBBUyBpbnQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIGludDRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGludDhbXSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50OGFyciwKKyAgICAgICBDQVNUKGNvbDQg YXMgZmxvYXQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY0YXJyLAor ICAgICAgIENBU1QoY29sNCBhcyBmbG9hdDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgZjhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIG51bWVyaWMoMTAsMSlbXSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgbnVtYXJyCitGUk9NIHRlc3Rfc2FmZWNh c3QxOworICAgICAgICAgIG51bV9hcnIgICAgICAgICAgIHwgaW50MmFyciB8IGludDRhcnIgfCBp bnQ4YXJyIHwgICAgICAgICAgIGY0YXJyICAgICAgICAgICAgfCAgICAgICAgICAgZjhhcnIgICAg ICAgICAgICB8IG51bWFyciAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tCisgezExLjEyMzR9ICAgICAgICAgICAgICAg ICAgfCB7MTF9ICAgIHwgezExfSAgICB8IHsxMX0gICAgfCB7MTEuMTIzNH0gICAgICAgICAgICAg ICAgICB8IHsxMS4xMjM0fSAgICAgICAgICAgICAgICAgIHwgezExLjF9CisgezExLjEyMzQsMTIs SW5maW5pdHksTmFOfSAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB7MTEuMTIzNCwx MixJbmZpbml0eSxOYU59ICB8IHsxMS4xMjM0LDEyLEluZmluaXR5LE5hTn0gIHwgCisgezExLjEy MzQsMTIsLUluZmluaXR5LE5hTn0gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB7MTEu MTIzNCwxMiwtSW5maW5pdHksTmFOfSB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgCisg ezExLjEyMzQsMTIsLUluZmluaXR5LE5hTn0gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAg fCB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59 IHwgCisoNCByb3dzKQorCitTRUxFQ1QgY29sMSBhcyBmbG9hdDQsCisgICAgICAgQ0FTVChjb2wx IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisg ICAgICAgQ0FTVChjb2wxIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wxIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMSBhcyBpbnQ4IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29s MSBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0 NCwKKyAgICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChj b2wxIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisgIGZsb2F0NCAgIHwgdG9f aW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgICAgdG9fZmxv YXQ4ICAgICB8IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDExLjEyMzQgfCAg ICAgIDExIHwgICAgICAxMSB8ICAgICAgICB8ICAgICAgMTEgfCAgIDExLjEyMzQgfCAxMS4xMjMz OTk3MzQ0OTcxIHwgICAgMTEuMTIzNCB8ICAgICAgICAgICAgIDExLjEKKyAgSW5maW5pdHkgfCAg ICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgSW5maW5pdHkgfCAgICAgICAg IEluZmluaXR5IHwgICBJbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAtSW5maW5pdHkgfCAg ICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAtSW5maW5pdHkgfCAgICAgICAg LUluZmluaXR5IHwgIC1JbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAgICAgICBOYU4gfCAg ICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICAgICBOYU4gfCAgICAgICAg ICAgICAgTmFOIHwgICAgICAgIE5hTiB8ICAgICAgICAgICAgICBOYU4KKyg0IHJvd3MpCisKK1NF TEVDVCBjb2wyIGFzIGZsb2F0OCwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50MiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDIgQVMg aW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAg ICBDQVNUKGNvbDIgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19vaWQsCisgICAgICAgQ0FTVChjb2wyIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0NCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29s MiBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0 OCwKKyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJpYygxMCwx KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQor RlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAgZmxvYXQ4ICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRv X29pZCB8IHRvX2ludDggfCB0b19mbG9hdDQgfCB0b19mbG9hdDggfCB0b19udW1lcmljIHwgdG9f bnVtZXJpY19zY2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0KKyAgIDExLjEyMzQgfCAgICAgIDExIHwgICAgICAxMSB8ICAgICAgICB8ICAgICAg MTEgfCAgIDExLjEyMzQgfCAgIDExLjEyMzQgfCAgICAxMS4xMjM0IHwgICAgICAgICAgICAgMTEu MQorICBJbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICBJ bmZpbml0eSB8ICBJbmZpbml0eSB8ICAgSW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisgLUlu ZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgLUluZmluaXR5 IHwgLUluZmluaXR5IHwgIC1JbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAgICAgICBOYU4g fCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICAgICBOYU4gfCAgICAg ICBOYU4gfCAgICAgICAgTmFOIHwgICAgICAgICAgICAgIE5hTgorKDQgcm93cykKKworLS0gZGF0 ZS90aW1lc3RhbXAvaW50ZXJ2YWwgcmVsYXRlZCBzYWZlIHR5cGUgY2FzdAorQ1JFQVRFIFRBQkxF IHRlc3Rfc2FmZWNhc3QyKAorICBjb2wwIGRhdGUsIGNvbDEgdGltZXN0YW1wLCBjb2wyIHRpbWVz dGFtcHR6LAorICBjb2wzIGludGVydmFsLCBjb2w0IHRpbWUsIGNvbDUgdGltZXR6KTsKK0lOU0VS VCBJTlRPIHRlc3Rfc2FmZWNhc3QyIFZBTFVFUworKCctaW5maW5pdHknLCAnLWluZmluaXR5Jywg Jy1pbmZpbml0eScsICctaW5maW5pdHknLAorICAnMjAwMy0wMy0wNyAxNTozNjozOSBBbWVyaWNh L05ld19Zb3JrJywgJzIwMDMtMDctMDcgMTU6MzY6MzkgQW1lcmljYS9OZXdfWW9yaycpLAorKCct aW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5pdHknLAorICAnMTE6NTk6 NTkuOTkgUE0nLCAnMTE6NTk6NTkuOTkgUE0gUERUJyk7CitTRUxFQ1QgY29sMCBhcyBkYXRlLAor ICAgICAgIENBU1QoY29sMCBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wwIEFTIGRhdGUgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChj b2wwIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVz LAorICAgICAgIENBU1QoY29sMCBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wKDIpIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZS T00gdGVzdF9zYWZlY2FzdDI7CisgICBkYXRlICAgIHwgdG9fdGltZXN0YW1wdHogfCAgdG9fZGF0 ZSAgfCB0b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSB8IC1pbmZpbml0eSAgICAgIHwgLWluZmlu aXR5IHwgICAgICAgICAgfCAgICAgICAgICAgfCAtaW5maW5pdHkKKyAtaW5maW5pdHkgfCAtaW5m aW5pdHkgICAgICB8IC1pbmZpbml0eSB8ICAgICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5 CisoMiByb3dzKQorCitTRUxFQ1QgY29sMSBhcyB0aW1lc3RhbXAsCisgICAgICAgQ0FTVChjb2wx IEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190 aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChj b2wxIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXR6LAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0 MjsKKyB0aW1lc3RhbXAgfCB0b190aW1lc3RhbXB0eiB8ICB0b19kYXRlICB8IHRvX3RpbWVzIHwg dG9fdGltZXR6IHwgdG9fdGltZXN0YW1wX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tCisgLWluZmluaXR5IHwgLWluZmluaXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8 ICAgICAgICAgICB8IC1pbmZpbml0eQorIGluZmluaXR5ICB8IGluZmluaXR5ICAgICAgIHwgaW5m aW5pdHkgIHwgICAgICAgICAgfCAgICAgICAgICAgfCBpbmZpbml0eQorKDIgcm93cykKKworU0VM RUNUIGNvbDIgYXMgdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcHR6 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAg ICAgICBDQVNUKGNvbDIgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWV0eiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENB U1QoY29sMiBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyB0aW1lc3RhbXB0 eiB8IHRvX3RpbWVzdGFtcHR6IHwgIHRvX2RhdGUgIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0 b190aW1lc3RhbXBfc2NhbGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZp bml0eSAgIHwgLWluZmluaXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAgICAg ICB8IC1pbmZpbml0eQorIGluZmluaXR5ICAgIHwgaW5maW5pdHkgICAgICAgfCBpbmZpbml0eSAg fCAgICAgICAgICB8ICAgICAgICAgICB8IGluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29s MyBhcyBpbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wdHogREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1Qo Y29sMyBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRl LAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXR6IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wzIEFT IHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXN0YW1wX3NjYWxlLAorICAgICAgIENBU1QoY29sMyBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9z YWZlY2FzdDI7CisgaW50ZXJ2YWwgIHwgdG9fdGltZXN0YW1wdHogfCB0b19kYXRlIHwgdG9fdGlt ZXMgfCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUgfCB0b19pbnRlcnZhbF9zY2FsZSAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0 eSB8ICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgLWluZmluaXR5CisgaW5maW5pdHkgIHwgICAgICAgICAgICAgICAg fCAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBp bmZpbml0eQorKDIgcm93cykKKworU0VMRUNUIGNvbDQgYXMgdGltZSwKKyAgICAgICBDQVNUKGNv bDQgQVMgdGltZSgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXMsCisgICAgICAgQ0FTVChjb2w0IEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgSVMgTk9UIE5VTEwgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sNCBBUyBp bnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2 YWwsCisgICAgICAgQ0FTVChjb2w0IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsK KyAgICB0aW1lICAgICB8ICB0b190aW1lcyAgIHwgdG9fdGltZXR6IHwgICAgICAgICAgdG9faW50 ZXJ2YWwgICAgICAgICAgfCAgICAgICB0b19pbnRlcnZhbF9zY2FsZSAgICAgICAKKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxNTozNjozOSAgICB8IDE1 OjM2OjM5ICAgIHwgdCAgICAgICAgIHwgQCAxNSBob3VycyAzNiBtaW5zIDM5IHNlY3MgICAgfCBA IDE1IGhvdXJzIDM2IG1pbnMgMzkgc2VjcworIDIzOjU5OjU5Ljk5IHwgMjM6NTk6NTkuOTkgfCB0 ICAgICAgICAgfCBAIDIzIGhvdXJzIDU5IG1pbnMgNTkuOTkgc2VjcyB8IEAgMjMgaG91cnMgNTkg bWlucyA1OS45OSBzZWNzCisoMiByb3dzKQorCitTRUxFQ1QgY29sNSBhcyB0aW1ldHosCisgICAg ICAgQ0FTVChjb2w1IEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX3RpbWUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUoMikgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRp bWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAg ICAgIENBU1QoY29sNSBBUyB0aW1ldHooNikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWV0el9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2YWwgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENB U1QoY29sNSBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisgICAgIHRpbWV0eiAg ICAgfCAgIHRvX3RpbWUgICB8IHRvX3RpbWVfc2NhbGUgfCAgIHRvX3RpbWV0eiAgICB8IHRvX3Rp bWV0el9zY2FsZSB8IHRvX2ludGVydmFsIHwgdG9faW50ZXJ2YWxfc2NhbGUgCistLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgMTU6MzY6 MzktMDQgICAgfCAxNTozNjozOSAgICB8IDE1OjM2OjM5ICAgICAgfCAxNTozNjozOS0wNCAgICB8 IDE1OjM2OjM5LTA0ICAgICB8ICAgICAgICAgICAgIHwgCisgMjM6NTk6NTkuOTktMDcgfCAyMzo1 OTo1OS45OSB8IDIzOjU5OjU5Ljk5ICAgfCAyMzo1OTo1OS45OS0wNyB8IDIzOjU5OjU5Ljk5LTA3 ICB8ICAgICAgICAgICAgIHwgCisoMiByb3dzKQorCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2Fz dDMoY29sMCBqc29uYik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0Myhjb2wwKSBWQUxVRVMg KCcidGVzdCInKTsKK1NFTEVDVCBjb2wwIGFzIGpzb25iLAorICAgICAgIENBU1QoY29sMCBBUyBp bnRlZ2VyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlZ2VyLAor ICAgICAgIENBU1QoY29sMCBBUyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMCBBUyBiaWdpbnQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wwIEFT IGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAor ICAgICAgIENBU1QoY29sMCBBUyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDAgQVMgYm9vbGVhbiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fYm9vbCwKKyAgICAgICBDQVNUKGNvbDAgQVMg c21hbGxpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3NtYWxsaW50 CitGUk9NIHRlc3Rfc2FmZWNhc3QzOworIGpzb25iICB8IHRvX2ludGVnZXIgfCB0b19udW1lcmlj IHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX2Jvb2wgfCB0b19zbWFsbGlu dCAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgInRlc3QiIHwgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgICAgCisoMSByb3cpCisKKy0tIHRlc3QgZGVwYXJzZQorU0VUIGRhdGVz dHlsZSBUTyBJU08sIFlNRDsKK0NSRUFURSBWSUVXIHNhZmVjYXN0dmlldyBBUworU0VMRUNUIENB U1QoJzEyMzQnIGFzIGNoYXIoMykgREVGQVVMVCAtMTExMSBPTiBDT05WRVJTSU9OIEVSUk9SKSwK KyAgICAgICBDQVNUKDEgYXMgZGF0ZSBERUZBVUxUICgoJzIwMjUtRGVjLTA2Jzo6ZGF0ZSArIHJh bmRvbShtaW49PjEsIG1heD0+MTo6aW50KSkpIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3Qw LAorICAgICAgIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgaW50W10gREVG QVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1Qo QVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGRhdGVbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDIsCisgICAgICAgQ0FTVChBUlJBWVsndGhyZWUn XSBBUyBJTlRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDM7 Citcc3Ygc2FmZWNhc3R2aWV3CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy5zYWZlY2Fz dHZpZXcgQVMKKyBTRUxFQ1QgQ0FTVCgnMTIzNCcgQVMgY2hhcmFjdGVyKDMpIERFRkFVTFQgJy0x MTExJzo6aW50ZWdlcjo6Y2hhcmFjdGVyKDMpIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGJwY2hh ciwKKyAgICBDQVNUKDEgQVMgZGF0ZSBERUZBVUxUICcyMDI1LTEyLTA2Jzo6ZGF0ZSArIHJhbmRv bShtaW4gPT4gMSwgbWF4ID0+IDEpIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QwLAorICAg IENBU1QoQVJSQVlbQVJSQVlbMV0sIEFSUkFZWyd0aHJlZSddLCBBUlJBWVsnYSddXSBBUyBpbnRl Z2VyW10gREVGQVVMVCAnezEsMn0nOjppbnRlZ2VyW10gT04gQ09OVkVSU0lPTiBFUlJPUikgQVMg Y2FzdDEsCisgICAgQ0FTVChBUlJBWVtBUlJBWVsnMScsICcyJ10sIEFSUkFZWyd0aHJlZScsICdh J11dIEFTIGRhdGVbXSBERUZBVUxUIE5VTEw6OmRhdGVbXSBPTiBDT05WRVJTSU9OIEVSUk9SKSBB UyBjYXN0MiwKKyAgICBDQVNUKEFSUkFZWyd0aHJlZSddIEFTIGludGVnZXJbXSBERUZBVUxUICd7 MSwyfSc6OmludGVnZXJbXSBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBjYXN0MworU0VMRUNUICog RlJPTSBzYWZlY2FzdHZpZXc7CisgYnBjaGFyIHwgICBjYXN0MCAgICB8IGNhc3QxIHwgY2FzdDIg fCBjYXN0MyAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLQor IDEyMyAgICB8IDIwMjUtMTItMDcgfCB7MSwyfSB8ICAgICAgIHwgezEsMn0KKygxIHJvdykKKwor Q1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3MSBBUworU0VMRUNUIENBU1QoQVJSQVlbWycxJ10sIFsn dGhyZWUnXSxbJ2EnXV0gQVMgZF9pbnRfYXJyCisgICAgICAgICAgICBERUZBVUxUICd7NDEsNDN9 JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwKKyAgICAgICBDQVNUKEFSUkFZW1snMScs ICcyJywgMS4xXSwgWyd0aHJlZScsIHRydWUsIEInMDEnXV0gQVMgZF9pbnRfYXJyCisgICAgICAg ICAgICBERUZBVUxUICd7NDEsNDN9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MjsKK1xz diBzYWZlY2FzdHZpZXcxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy5zYWZlY2FzdHZp ZXcxIEFTCisgU0VMRUNUIENBU1QoQVJSQVlbQVJSQVlbMV0sIEFSUkFZWyd0aHJlZSddLCBBUlJB WVsnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezQxLDQzfSc6OmludGVnZXJbXTo6ZF9pbnRf YXJyIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QxLAorICAgIENBU1QoQVJSQVlbQVJSQVlb MSwgMiwgMS4xOjppbnRlZ2VyXSwgQVJSQVlbJ3RocmVlJywgdHJ1ZSwgJzAxJzo6ImJpdCJdXSBB UyBkX2ludF9hcnIgREVGQVVMVCAnezQxLDQzfSc6OmludGVnZXJbXTo6ZF9pbnRfYXJyIE9OIENP TlZFUlNJT04gRVJST1IpIEFTIGNhc3QyCitTRUxFQ1QgKiBGUk9NIHNhZmVjYXN0dmlldzE7Cisg IGNhc3QxICB8ICBjYXN0MiAgCistLS0tLS0tLS0rLS0tLS0tLS0tCisgezQxLDQzfSB8IHs0MSw0 M30KKygxIHJvdykKKworUkVTRVQgZGF0ZXN0eWxlOworLS10ZXN0IENBU1QgREVGQVVMVCBleHBy ZXNzaW9uIG11dGFiaWxpdHkKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3Nh ZmVjYXN0MygoQ0FTVChjb2wwIGFzIGludCBERUZBVUxUIHJhbmRvbShtaW49PjEsIG1heD0+MSkg T04gQ09OVkVSU0lPTiBFUlJPUikpKTsKK0VSUk9SOiAgZnVuY3Rpb25zIGluIGluZGV4IGV4cHJl c3Npb24gbXVzdCBiZSBtYXJrZWQgSU1NVVRBQkxFCitDUkVBVEUgSU5ERVggY2FzdF9lcnJvcl9p ZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyB4aWQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpKSk7CitFUlJPUjogIGRhdGEgdHlwZSB4aWQgaGFzIG5vIGRlZmF1bHQg b3BlcmF0b3IgY2xhc3MgZm9yIGFjY2VzcyBtZXRob2QgImJ0cmVlIgorSElOVDogIFlvdSBtdXN0 IHNwZWNpZnkgYW4gb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBpbmRleCBvciBkZWZpbmUgYSBkZWZh dWx0IG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgZGF0YSB0eXBlLgorQ1JFQVRFIElOREVYIHRlc3Rf c2FmZWNhc3QzX2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIGludCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsgLS1vaworU0VMRUNUIHBnX2dldF9pbmRleGRl ZigndGVzdF9zYWZlY2FzdDNfaWR4Jzo6cmVnY2xhc3MpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgSU5ERVggdGVzdF9zYWZlY2Fz dDNfaWR4IE9OIHB1YmxpYy50ZXN0X3NhZmVjYXN0MyBVU0lORyBidHJlZSAoKENBU1QoY29sMCBB UyBpbnRlZ2VyIERFRkFVTFQgTlVMTDo6aW50ZWdlciBPTiBDT05WRVJTSU9OIEVSUk9SKSkpCiso MSByb3cpCisKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDsKK0RST1AgVEFCTEUgdGVzdF9zYWZl Y2FzdDE7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QyOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVj YXN0MzsKK0RST1AgVEFCTEUgdGNhc3Q7CitEUk9QIEZVTkNUSU9OIHJldF9pbnQ4OworRFJPUCBG VU5DVElPTiByZXRfc2V0aW50OworRFJPUCBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kOwor RFJPUCBUWVBFIGNvbXAyOworRFJPUCBET01BSU4gZF92YXJjaGFyOworRFJPUCBET01BSU4gZF9p bnQ0MjsKK0RST1AgRE9NQUlOIGRfY2hhcjNfbm90X251bGw7CitSRVNFVCBleHRyYV9mbG9hdF9k aWdpdHM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0 Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0CmluZGV4IDBl Njk2NDRiY2EyLi4wMDU0ZWQwZWY2NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9jcmVhdGVfY2FzdC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVh dGVfY2FzdC5vdXQKQEAgLTg4LDYgKzg4LDExIEBAIFNFTEVDVCAxMjM0OjppbnQ0OjpjYXN0dGVz dHR5cGU7IC0tIFNob3VsZCB3b3JrIG5vdwogIGJhcjEyMzQKICgxIHJvdykKIAorU0VMRUNUIENB U1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGludGVnZXIgdG8gY2Fz dHRlc3R0eXBlIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4u LiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMg Y2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRS4uLgorICAgICAgICAgICAgICAgICAg ICBeCitISU5UOiAgU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90 IHlldCBzdXBwb3J0ZWQKIC0tIGNoZWNrIGRlcGVuZGVuY2llcyBnZW5lcmF0ZWQgZm9yIHRoYXQK IFNFTEVDVCBwZ19kZXNjcmliZV9vYmplY3QoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKSBhcyBv YmosCiAgICAgICAgcGdfZGVzY3JpYmVfb2JqZWN0KHJlZmNsYXNzaWQsIHJlZm9iamlkLCByZWZv YmpzdWJpZCkgYXMgb2JqcmVmLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9lcXVpdmNsYXNzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5v dXQKaW5kZXggYWQ4YWIyOTRmZjYuLjVhZWUyYzdhOWZiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZXF1aXZjbGFzcy5vdXQKQEAgLTk1LDYgKzk1LDEzIEBAIGNyZWF0ZSBmdW5jdGlvbiBp bnQ4YWxpYXMxY21wKGludDgsIGludDhhbGlhczEpIHJldHVybnMgaW50CiAgIHN0cmljdCBpbW11 dGFibGUgbGFuZ3VhZ2UgaW50ZXJuYWwgYXMgJ2J0aW50OGNtcCc7CiBhbHRlciBvcGVyYXRvciBm YW1pbHkgaW50ZWdlcl9vcHMgdXNpbmcgYnRyZWUgYWRkCiAgIGZ1bmN0aW9uIDEgaW50OGFsaWFz MWNtcCAoaW50OCwgaW50OGFsaWFzMSk7CistLSBpbnQ4YWxpYXMyIGJpbmFyeS1jb2VyY2libGUg dG8gaW50OC4gc28gdGhpcyBpcyBvaworc2VsZWN0IGNhc3QoJzEnOjppbnQ4IGFzIGludDhhbGlh czIgZGVmYXVsdCBudWxsIG9uIGNvbnZlcnNpb24gZXJyb3IpOworIGludDhhbGlhczIgCistLS0t LS0tLS0tLS0KKyAxCisoMSByb3cpCisKIGNyZWF0ZSB0YWJsZSBlYzAgKGZmIGludDggcHJpbWFy eSBrZXksIGYxIGludDgsIGYyIGludDgpOwogY3JlYXRlIHRhYmxlIGVjMSAoZmYgaW50OCBwcmlt YXJ5IGtleSwgZjEgaW50OGFsaWFzMSwgZjIgaW50OGFsaWFzMik7CiBjcmVhdGUgdGFibGUgZWMy ICh4ZiBpbnQ4IHByaW1hcnkga2V5LCB4MSBpbnQ4YWxpYXMxLCB4MiBpbnQ4YWxpYXMyKTsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9y ZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IGNjNmQ3OTliY2VhLi4wYjAzMWEzN2MzNiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC04MSw3ICs4MSw3IEBAIHRlc3Q6IGNy ZWF0ZV90YWJsZV9saWtlIGFsdGVyX2dlbmVyaWMgYWx0ZXJfb3BlcmF0b3IgbWlzYyBhc3luYyBk YnNpemUgbWVyZ2UgbWlzCiAjIGNvbGxhdGUubGludXgudXRmOCBhbmQgY29sbGF0ZS5pY3UudXRm OCB0ZXN0cyBjYW5ub3QgYmUgcnVuIGluIHBhcmFsbGVsIHdpdGggZWFjaCBvdGhlcgogIyBwc3Fs IGRlcGVuZHMgb24gY3JlYXRlX2FtCiAjIGFtdXRpbHMgZGVwZW5kcyBvbiBnZW9tZXRyeSwgY3Jl YXRlX2luZGV4X3NwZ2lzdCwgaGFzaF9pbmRleCwgYnJpbgotdGVzdDogcnVsZXMgcHNxbCBwc3Fs X2Nyb3NzdGFiIHBzcWxfcGlwZWxpbmUgYW11dGlscyBzdGF0c19leHQgY29sbGF0ZS5saW51eC51 dGY4IGNvbGxhdGUud2luZG93cy53aW4xMjUyCit0ZXN0OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0 YWIgcHNxbF9waXBlbGluZSBhbXV0aWxzIHN0YXRzX2V4dCBjb2xsYXRlLmxpbnV4LnV0ZjggY29s bGF0ZS53aW5kb3dzLndpbjEyNTIgY2FzdAogCiAjIC0tLS0tLS0tLS0KICMgUnVuIHRoZXNlIGFs b25lIHNvIHRoZXkgZG9uJ3QgcnVuIG91dCBvZiBwYXJhbGxlbCB3b3JrZXJzCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jYXN0LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nh c3Quc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45YjZmM2NjMDY0 OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsCkBAIC0w LDAgKzEsMzUwIEBACitTRVQgZXh0cmFfZmxvYXRfZGlnaXRzID0gMDsKKworLS0gQ0FTVCBERUZB VUxUIE9OIENPTlZFUlNJT04gRVJST1IKK1NFTEVDVCBDQVNUKEInMDEnIEFTIGRhdGUgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoQklUJzAxJyBBUyBkYXRl IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKFRSVUUgQVMg ZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgxLjEg QVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgx IEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1Qo MTExMSBBUyAiY2hhciIgREVGQVVMVCAnQScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tdGVz dCBzb3VyY2UgZXhwcmVzc2lvbiBpcyBhIHVua25vd24gY29uc3QKK1ZBTFVFUyAoQ0FTVCgnZXJy b3InIEFTIGludGVnZXIgRVJST1IgT04gQ09OVkVSU0lPTiBFUlJPUikpOyAtLWVycm9yCitWQUxV RVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikpOwor VkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04g RVJST1IpKTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAxOCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0o MSkgb3ZlcigpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYScg YXMgaW50IERFRkFVTFQgKFNFTEVDVCBOVUxMKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJv cgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUICdiJyBPTiBDT05WRVJTSU9OIEVSUk9S KTsgLS1lcnJvcgorU0VMRUNUIENBU1QoJ2EnOjppbnQgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorCistLXRoZSBkZWZhdWx0IGV4cHJlc3Npb27igJlz IGNvbGxhdGlvbiBzaG91bGQgbWF0Y2ggdGhlIGNvbGxhdGlvbiBvZiB0aGUgY2FzdAorLS10YXJn ZXQgdHlwZQorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgdGV4dCBERUZBVUxUICcxJyBDT0xMQVRF ICJDIiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGlu dDJ2ZWN0b3IgREVGQVVMVCAnMSAzJyAgT04gQ09OVkVSU0lPTiBFUlJPUikpOworVkFMVUVTIChD QVNUKCdlcnJvcicgQVMgaW50MnZlY3RvcltdIERFRkFVTFQgJ3sxIDN9JyAgT04gQ09OVkVSU0lP TiBFUlJPUikpOworCistLSB0ZXN0IHNvdXJjZSBleHByZXNzaW9uIGNvbnRhaW4gc3VicXVlcnkK K1NFTEVDVCBDQVNUKChTRUxFQ1QgYiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxKSwgKFZBTFVF UygnSCcpKSBzKGIpKQorICAgICAgICAgICAgQVMgaW50MnZlY3RvcltdIERFRkFVTFQgJ3sxIDN9 JyAgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgoU0VMRUNUIEFSUkFZKChTRUxF Q1QgYiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyKSBnLCAoVkFMVUVTKCdIJykpIHMoYikpKSkK KyAgICAgICAgICAgIEFTIElOVFtdCisgICAgICAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CisKK0NSRUFURSBGVU5DVElPTiByZXRfaW50OCgpIFJFVFVSTlMgQklHSU5U IEFTCiskJAorQkVHSU4gUkVUVVJOIDIxNDc0ODM2NDg7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBn c3FsIElNTVVUQUJMRTsKKworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHJldF9pbnQ4 KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBkYXRl IERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorCistLSBE RUZBVUxUIGV4cHJlc3Npb24gY2FuIG5vdCBiZSBzZXQtcmV0dXJuaW5nCitDUkVBVEUgRlVOQ1RJ T04gcmV0X3NldGludCgpIFJFVFVSTlMgU0VUT0YgaW50ZWdlciBBUworJCQKK0JFR0lOIFJFVFVS TiBRVUVSWSBFWEVDVVRFICdzZWxlY3QgMSB1bmlvbiBhbGwgc2VsZWN0IDEnOyBFTkQ7CiskJAor TEFOR1VBR0UgcGxwZ3NxbCBJTU1VVEFCTEU7CisKK0NSRUFURSBUQUJMRSB0Y2FzdChhIHRleHRb XSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgSURFTlRJVFkpOworSU5TRVJUIElOVE8g dGNhc3QgVkFMVUVTICgnezEyfScpLCAoJ3sxLGEsIGJ9JyksICgne3sxLDJ9LCB7YyxkfX0nKSwg KCd7MTN9Jyk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGludCgpIE9O IENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3Q7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKHQgQVMg dGV4dFtdIERFRkFVTFQgJ3syMSwyMiwgJyB8fCBiIHx8ICd9JyBPTiBDT05WRVJTSU9OIEVSUk9S KSBGUk9NIHRjYXN0IGFzIHQ7CitTRUxFQ1QgQ0FTVCh0LmEgQVMgaW50W10gREVGQVVMVCAnezIx LDIyfSc6OmludFtdIHx8IGIgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdCBhcyB0Owor CistLSB0ZXN0IHdpdGggdXNlci1kZWZpbmVkIHR5cGUsIGRvbWFpbiwgYXJyYXkgb3ZlciBkb21h aW4sIGRvbWFpbiBvdmVyIGFycmF5CitDUkVBVEUgRE9NQUlOIGRfaW50NDIgYXMgaW50IGNoZWNr ICh2YWx1ZSA9IDQyKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF9jaGFyM19ub3RfbnVsbCBh cyBjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX3ZhcmNoYXIgYXMgdmFyY2hhcigz KSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF9pbnRfYXJyIGFzIGludFtdIGNoZWNrICh2YWx1 ZSA9ICd7NDEsIDQzfScpIE5PVCBOVUxMOworQ1JFQVRFIFRZUEUgY29tcF9kb21haW5fd2l0aF90 eXBtb2QgQVMgKGEgZF9jaGFyM19ub3RfbnVsbCwgYiBpbnQpOworQ1JFQVRFIFRZUEUgY29tcDIg QVMgKGEgZF92YXJjaGFyKTsKK1NFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQg JygxMjMyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCcoTlVM TCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKDExIEFTIGRfaW50NDIgREVGQVVMVCA0MSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1l cnJvcgorU0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04g RVJST1IpOworU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFV TFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKCw0MiknIEFTIGNvbXBf ZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NF TEVDVCBDQVNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQg JygxLDIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTlVMTCw0MiknIEFT IGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIpJyBPTiBDT05WRVJTSU9O IEVSUk9SKTsgLS1lcnJvcgorCitTRUxFQ1QgQ0FTVChBUlJBWVs0Miw0MV0gQVMgZF9pbnQ0Mltd IERFRkFVTFQgJ3s0MiwgNDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKEFS UkFZWzQyLDQxXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezQxLCA0M30nIE9OIENPTlZFUlNJT04g RVJST1IpOworCistLSB0ZXN0IGFycmF5IGNvZXJjZQorU0VMRUNUIENBU1QoYXJyYXlbJ2EnOjp0 ZXh0XSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IK K1NFTEVDVCBDQVNUKGFycmF5WydhJ10gQVMgaW50W10gREVGQVVMVCBBUlJBWVsxXSBPTiBDT05W RVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKGFycmF5WzExLjEyXSBBUyBkYXRlW10gREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoYXJyYXlbMTExMTExMTEx MTExMTExMTFdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NF TEVDVCBDQVNUKGFycmF5W1snYWJjJ10sWzQ1Nl1dIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCd7MTIzLGFiYyw0NTZ9JyBBUyBpbnRbXSBE RUZBVUxUICd7LTc4OX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ3syMzQs ZGVmLDU2N30nOjp0ZXh0W10gQVMgaW50ZWdlcltdIERFRkFVTFQgJ3stMTAxMX0nIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0g QVMgaW50W10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGludFtdIERFRkFVTFQgJ3sy MSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEn LCAnMiddLCBbJ3RocmVlJzo6aW50LCAnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9JyBP TiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoQVJSQVlbMSwgJ3RocmVl Jzo6aW50XSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsg LS1lcnJvcgorCistLS0tLXNhZmUgY2FzdCB3aXRoIGdlb21ldHJ5IGRhdGEgdHlwZQorU0VMRUNU IENBU1QoJygxLDIpJzo6cG9pbnQgQVMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCdbKE5hTiwxKSwoTmFOLGluZmluaXR5KV0nOjpsc2VnIEFTIHBv aW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbKDFl KzMwMCxJbmZpbml0eSksKDFlKzMwMCxJbmZpbml0eSldJzo6bHNlZyBBUyBwb2ludCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWygxLDIpLCgzLDQpXSc6 OnBhdGggYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVCgnKE5hTiwxLjAsTmFOLGluZmluaXR5KSc6OmJveCBBUyBwb2ludCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCkn Ojpib3ggQVMgbHNlZyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3gg QVMgcGF0aCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgn KDIuMCxpbmZpbml0eSxOYU4saW5maW5pdHkpJzo6Ym94IEFTIGNpcmNsZSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5hTiwwLjApLCgyLjAsNC4wKSwo MC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMC4wKSwoMi4wLDQuMCksKDAuMCwwLjApJzo6 cG9seWdvbiBBUyBwYXRoIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKCcoMi4wLDAuMCksKDIuMCw0LjApLCgwLjAsMC4wKSc6OnBvbHlnb24gQVMgYm94IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTmFOLGluZmlu aXR5KSwoMi4wLDQuMCksKDAuMCxpbmZpbml0eSknOjpwb2x5Z29uIEFTIGNpcmNsZSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnPCg1LDEpLDM+Jzo6Y2ly Y2xlIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKworLS0gbm90IHN1cHBvcnRlZCBiZWNhdXNlIHRoZSBjYXN0IGZyb20gY2lyY2xl IHRvIHBvbHlnb24gaXMgaW1wbGVtZW50ZWQgYXMgYSBTUUwKKy0tIGZ1bmN0aW9uLCB3aGljaCBj YW5ub3QgYmUgZXJyb3Itc2FmZS4KK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMg cG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0tc2FmZSBj YXN0IGZyb20vdG8gbW9uZXkgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLCBhbGwgdGhlIGZvbGxvd2lu ZyB3b3VsZCByZXN1bHQgZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEw6OmludDggQVMgbW9uZXkgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoTlVMTDo6aW50NCBB UyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChO VUxMOjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKE5VTEw6Om1vbmV5IEFTIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoTlVMTDo6bW9uZXlbXSBBUyBudW1lcmljW10gREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLS0tLXNhZmUgY2FzdCBmcm9tIGJ5 dGVhIHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1QgKCdceDExMjIzMzQ0NTU2 Njc3ODg5OSc6OmJ5dGVhIEFTIGludDggREVGQVVMVCAxOSBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKCdceDEyMzQ1Njc4OUEnOjpieXRlYSBBUyBpbnQ0IERFRkFVTFQgMjAgT04g Q09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTYnOjpieXRlYSBBUyBpbnQy IERFRkFVTFQgMjEgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0tc2FmZSBjYXN0IGZyb20g Yml0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1QoJzExMTExMTExMTEwMDAw MSc6OmJpdCgxMDApIEFTIElOVCBERUZBVUxUIDIyIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VM RUNUIENBU1QgKCcxMTExMTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJTlQ4IERFRkFVTFQgMjMg T04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0tc2FmZSBjYXN0IGZyb20gdGV4dCB0eXBlIHRv IG90aGVyIGRhdGEgdHlwZXMKK3NlbGVjdCBDQVNUKCdhLmIuYy5kJzo6dGV4dCBhcyByZWdjbGFz cyBkZWZhdWx0IE5VTEwgb24gY29udmVyc2lvbiBlcnJvcik7CisKK0NSRUFURSBUQUJMRSB0ZXN0 X3NhZmVjYXN0KGNvbDAgdGV4dCk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0KGNvbDApIFZB TFVFUyAoJzx2YWx1ZT5vbmU8L3ZhbHVlJyk7CisKK1NFTEVDVCBjb2wwIGFzIHRleHQsCisgICAg ICAgQ0FTVChjb2wwIEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19yZWdjbGFzcywKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5VTEwgYXMgZXhwZWN0X3RydWUsCisgICAgICAg Q0FTVChjb2wwIEFTICJjaGFyIiAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2NoYXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG5hbWUgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX25hbWUsCisgICAgICAgQ0FTVChjb2wwIEFTIHhtbCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9feG1sCitGUk9NIHRlc3Rfc2FmZWNhc3Q7 CisKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEueCcgYXMgaW5ldCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLjIvMzAnIGFzIGNpZHIgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzIyOjAwOjVjOjA4 OjU1OjA4OjAxOjAyJzo6bWFjYWRkcjggYXMgbWFjYWRkciBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CisKKy0tLS0tc2FmZSBjYXN0IGJldHdlZWVuIHJhbmdlIGRhdGEgdHlwZXMK K1NFTEVDVCBDQVNUKCdbMSwyXSc6OmludDRyYW5nZSBBUyBpbnQ0bXVsdGlyYW5nZSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjppbnQ4cmFu Z2UgQVMgaW50OG11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor U0VMRUNUIENBU1QoJ1sxLDJdJzo6bnVtcmFuZ2UgIEFTIG51bW11bHRpcmFuZ2UgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5p dHldJzo6ZGF0ZXJhbmdlIEFTIGRhdGVtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OnRzcmFuZ2Ug QVMgdHNtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OnRzdHpyYW5nZSBBUyB0c3R6bXVsdGlyYW5n ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0tc2FmZSBjYXN0IGJl dHdlZWVuIG51bWVyaWMgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QxKAor ICBjb2wxIGZsb2F0NCwgY29sMiBmbG9hdDgsIGNvbDMgbnVtZXJpYywgY29sNCBudW1lcmljW10s CisgIGNvbDUgaW50MiBkZWZhdWx0IDMyNzY3LAorICBjb2w2IGludDQgZGVmYXVsdCAzMjc2OCwK KyAgY29sNyBpbnQ4IGRlZmF1bHQgNDI5NDk2NzI5Nik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVj YXN0MSBWQUxVRVMoJzExLjEyMzQnLCAnMTEuMTIzNCcsICc5MjIzMzcyMDM2ODU0Nzc1ODA4Jywg J3sxMS4xMjM0fSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxV RVMoJ2luZicsICdpbmYnLCAnaW5mJywgJ3sxMS4xMjM0LCAxMiwgaW5mLCBOYU59Jzo6bnVtZXJp Y1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnLWluZicsICctaW5mJywg Jy1pbmYnLCAnezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJ TlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnTmFOJywgJ05hTicsICdOYU4nLCAnezExLjEyMzQs IDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKKworU0VMRUNUIGNvbDUgYXMgaW50MiwKKyAg ICAgICBDQVNUKGNvbDUgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDUgQVMgb2lkIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w1 IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisg ICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDUgYXMg bnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywK KyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKwor U0VMRUNUIGNvbDYgYXMgaW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50MiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDYgQVMg aW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAg ICBDQVNUKGNvbDYgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19vaWQsCisgICAgICAgQ0FTVChjb2w2IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0NCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29s NiBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0 OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYygxMCwx KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQor RlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDcgYXMgaW50OCwKKyAgICAgICBDQVNU KGNvbDcgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 MiwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDcgQVMgb2lkIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w3IGFzIGludDgg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FT VChjb2w3IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f ZmxvYXQ0LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVtZXJpYyBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBD QVNUKGNvbDcgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNv bDMgYXMgbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50MiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50NCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNU KGNvbDMgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQs CisgICAgICAgQ0FTVChjb2wzIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMyBhcyBm bG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAg ICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYygxMCwxKSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0 ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDQgYXMgbnVtX2FyciwKKyAgICAgICBDQVNUKGNv bDQgQVMgaW50MltdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQyYXJy LAorICAgICAgIENBU1QoY29sNCBBUyBpbnQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIGludDRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGludDhbXSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50OGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMg ZmxvYXQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY0YXJyLAorICAg ICAgIENBU1QoY29sNCBhcyBmbG9hdDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgZjhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIG51bWVyaWMoMTAsMSlbXSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgbnVtYXJyCitGUk9NIHRlc3Rfc2FmZWNhc3Qx OworCitTRUxFQ1QgY29sMSBhcyBmbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIEFTIGludDIgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChj b2wxIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQs CisgICAgICAgQ0FTVChjb2wxIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBD QVNUKGNvbDEgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVy aWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNf c2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2wyIGFzIGZsb2F0OCwKKyAg ICAgICBDQVNUKGNvbDIgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDIgQVMgb2lkIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wy IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisg ICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDIgYXMg bnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywK KyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKwor LS0gZGF0ZS90aW1lc3RhbXAvaW50ZXJ2YWwgcmVsYXRlZCBzYWZlIHR5cGUgY2FzdAorQ1JFQVRF IFRBQkxFIHRlc3Rfc2FmZWNhc3QyKAorICBjb2wwIGRhdGUsIGNvbDEgdGltZXN0YW1wLCBjb2wy IHRpbWVzdGFtcHR6LAorICBjb2wzIGludGVydmFsLCBjb2w0IHRpbWUsIGNvbDUgdGltZXR6KTsK K0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QyIFZBTFVFUworKCctaW5maW5pdHknLCAnLWluZmlu aXR5JywgJy1pbmZpbml0eScsICctaW5maW5pdHknLAorICAnMjAwMy0wMy0wNyAxNTozNjozOSBB bWVyaWNhL05ld19Zb3JrJywgJzIwMDMtMDctMDcgMTU6MzY6MzkgQW1lcmljYS9OZXdfWW9yaycp LAorKCctaW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5pdHknLAorICAn MTE6NTk6NTkuOTkgUE0nLCAnMTE6NTk6NTkuOTkgUE0gUERUJyk7CisKK1NFTEVDVCBjb2wwIGFz IGRhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDAgQVMg ZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAg ICBDQVNUKGNvbDAgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lc3Rh bXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9z Y2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNvbDEgYXMgdGltZXN0YW1wLAor ICAgICAgIENBU1QoY29sMSBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wxIEFTIGRhdGUgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChj b2wxIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVz LAorICAgICAgIENBU1QoY29sMSBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wKDIpIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZS T00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2wyIGFzIHRpbWVzdGFtcHR6LAorICAgICAg IENBU1QoY29sMiBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFTIGRhdGUgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wyIEFT IHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAg ICAgIENBU1QoY29sMiBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gdGVz dF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2wzIGFzIGludGVydmFsLAorICAgICAgIENBU1QoY29s MyBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f dGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wzIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWUgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1Qo Y29sMyBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWV0eiwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUsCisgICAgICAgQ0FTVChjb2wz IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19p bnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNvbDQgYXMgdGlt ZSwKKyAgICAgICBDQVNUKGNvbDQgQVMgdGltZSgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2w0IEFTIHRpbWV0eiBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTk9UIE5VTEwgYXMgdG9fdGltZXR6LAorICAg ICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2w0IEFTIGludGVydmFsKDIpIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJP TSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNvbDUgYXMgdGltZXR6LAorICAgICAgIENBU1Qo Y29sNSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l LAorICAgICAgIENBU1QoY29sNSBBUyB0aW1lKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1lX3NjYWxlLAorICAgICAgIENBU1QoY29sNSBBUyB0aW1ldHogREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNU KGNvbDUgQVMgdGltZXR6KDYpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1ldHpfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1IEFTIGludGVydmFsIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDUg QVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dGVydmFsX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitDUkVBVEUgVEFCTEUgdGVzdF9z YWZlY2FzdDMoY29sMCBqc29uYik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0Myhjb2wwKSBW QUxVRVMgKCcidGVzdCInKTsKK1NFTEVDVCBjb2wwIGFzIGpzb25iLAorICAgICAgIENBU1QoY29s MCBBUyBpbnRlZ2VyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRl Z2VyLAorICAgICAgIENBU1QoY29sMCBBUyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMCBBUyBiaWdpbnQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChj b2wwIEFTIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxv YXQ0LAorICAgICAgIENBU1QoY29sMCBBUyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDAgQVMgYm9vbGVhbiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fYm9vbCwKKyAgICAgICBDQVNUKGNv bDAgQVMgc21hbGxpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Nt YWxsaW50CitGUk9NIHRlc3Rfc2FmZWNhc3QzOworCistLSB0ZXN0IGRlcGFyc2UKK1NFVCBkYXRl c3R5bGUgVE8gSVNPLCBZTUQ7CitDUkVBVEUgVklFVyBzYWZlY2FzdHZpZXcgQVMKK1NFTEVDVCBD QVNUKCcxMjM0JyBhcyBjaGFyKDMpIERFRkFVTFQgLTExMTEgT04gQ09OVkVSU0lPTiBFUlJPUiks CisgICAgICAgQ0FTVCgxIGFzIGRhdGUgREVGQVVMVCAoKCcyMDI1LURlYy0wNic6OmRhdGUgKyBy YW5kb20obWluPT4xLCBtYXg9PjE6OmludCkpKSBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0 MCwKKyAgICAgICBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydhJ11dIEFTIGludFtdIERF RkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwKKyAgICAgICBDQVNU KEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnLCAnYSddXSBBUyBkYXRlW10gREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QyLAorICAgICAgIENBU1QoQVJSQVlbJ3RocmVl J10gQVMgSU5UW10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3Qz OworXHN2IHNhZmVjYXN0dmlldworU0VMRUNUICogRlJPTSBzYWZlY2FzdHZpZXc7CisKK0NSRUFU RSBWSUVXIHNhZmVjYXN0dmlldzEgQVMKK1NFTEVDVCBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVl J10sWydhJ11dIEFTIGRfaW50X2FycgorICAgICAgICAgICAgREVGQVVMVCAnezQxLDQzfScgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDEsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnLCAnMics IDEuMV0sIFsndGhyZWUnLCB0cnVlLCBCJzAxJ11dIEFTIGRfaW50X2FycgorICAgICAgICAgICAg REVGQVVMVCAnezQxLDQzfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDI7Citcc3Ygc2Fm ZWNhc3R2aWV3MQorU0VMRUNUICogRlJPTSBzYWZlY2FzdHZpZXcxOworCitSRVNFVCBkYXRlc3R5 bGU7CisKKy0tdGVzdCBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbiBtdXRhYmlsaXR5CitDUkVBVEUg SU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyBpbnQg REVGQVVMVCByYW5kb20obWluPT4xLCBtYXg9PjEpIE9OIENPTlZFUlNJT04gRVJST1IpKSk7CitD UkVBVEUgSU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBh cyB4aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKSk7CitDUkVBVEUgSU5ERVgg dGVzdF9zYWZlY2FzdDNfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgaW50IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOyAtLW9rCitTRUxFQ1QgcGdfZ2V0X2lu ZGV4ZGVmKCd0ZXN0X3NhZmVjYXN0M19pZHgnOjpyZWdjbGFzcyk7CisKK0RST1AgVEFCTEUgdGVz dF9zYWZlY2FzdDsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDE7CitEUk9QIFRBQkxFIHRlc3Rf c2FmZWNhc3QyOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MzsKK0RST1AgVEFCTEUgdGNhc3Q7 CitEUk9QIEZVTkNUSU9OIHJldF9pbnQ4OworRFJPUCBGVU5DVElPTiByZXRfc2V0aW50OworRFJP UCBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kOworRFJPUCBUWVBFIGNvbXAyOworRFJPUCBE T01BSU4gZF92YXJjaGFyOworRFJPUCBET01BSU4gZF9pbnQ0MjsKK0RST1AgRE9NQUlOIGRfY2hh cjNfbm90X251bGw7CitSRVNFVCBleHRyYV9mbG9hdF9kaWdpdHM7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9j cmVhdGVfY2FzdC5zcWwKaW5kZXggMzIxODc4NTNjYzcuLjBhMTVhNzk1ZDg3IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCkBAIC02Miw2ICs2Miw3IEBAICQkIFNFTEVDVCAoJ2Jh cic6OnRleHQgfHwgJDE6OnRleHQpOyAkJDsKIAogQ1JFQVRFIENBU1QgKGludDQgQVMgY2FzdHRl c3R0eXBlKSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgQVMgSU1QTElDSVQ7CiBT RUxFQ1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91bGQgd29yayBub3cKK1NFTEVD VCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsgLS0gZXJyb3IKIAogLS0gY2hlY2sgZGVwZW5kZW5jaWVzIGdlbmVyYXRlZCBm b3IgdGhhdAogU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdChjbGFzc2lkLCBvYmppZCwgb2Jqc3Vi aWQpIGFzIG9iaiwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2VxdWl2Y2xhc3Mu c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXF1aXZjbGFzcy5zcWwKaW5kZXggN2ZjMjE1OTM0 OWIuLjVhZDFkMjYzMTFkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9lcXVpdmNs YXNzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9lcXVpdmNsYXNzLnNxbApAQCAtOTgs NiArOTgsOSBAQCBjcmVhdGUgZnVuY3Rpb24gaW50OGFsaWFzMWNtcChpbnQ4LCBpbnQ4YWxpYXMx KSByZXR1cm5zIGludAogYWx0ZXIgb3BlcmF0b3IgZmFtaWx5IGludGVnZXJfb3BzIHVzaW5nIGJ0 cmVlIGFkZAogICBmdW5jdGlvbiAxIGludDhhbGlhczFjbXAgKGludDgsIGludDhhbGlhczEpOwog CistLSBpbnQ4YWxpYXMyIGJpbmFyeS1jb2VyY2libGUgdG8gaW50OC4gc28gdGhpcyBpcyBvawor c2VsZWN0IGNhc3QoJzEnOjppbnQ4IGFzIGludDhhbGlhczIgZGVmYXVsdCBudWxsIG9uIGNvbnZl cnNpb24gZXJyb3IpOworCiBjcmVhdGUgdGFibGUgZWMwIChmZiBpbnQ4IHByaW1hcnkga2V5LCBm MSBpbnQ4LCBmMiBpbnQ4KTsKIGNyZWF0ZSB0YWJsZSBlYzEgKGZmIGludDggcHJpbWFyeSBrZXks IGYxIGludDhhbGlhczEsIGYyIGludDhhbGlhczIpOwogY3JlYXRlIHRhYmxlIGVjMiAoeGYgaW50 OCBwcmltYXJ5IGtleSwgeDEgaW50OGFsaWFzMSwgeDIgaW50OGFsaWFzMik7CmRpZmYgLS1naXQg YS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90 eXBlZGVmcy5saXN0CmluZGV4IDZlMmVkMGM4ODI1Li5mMTk2ZDM2NzFjNSAxMDA2NDQKLS0tIGEv c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QKQEAgLTI2NzMsNiArMjY3Myw5IEBAIFNUUkxFTgogU1YKIFNZTkNIUk9O SVpBVElPTl9CQVJSSUVSCiBTWVNURU1fSU5GTworU2FmZVR5cGVDYXN0CitTYWZlVHlwZUNhc3RF eHByCitTYWZlVHlwZUNhc3RTdGF0ZQogU2FtcGxlU2NhbgogU2FtcGxlU2NhbkdldFNhbXBsZVNp emVfZnVuY3Rpb24KIFNhbXBsZVNjYW5TdGF0ZQotLSAKMi4zNC4xCgo= --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0016-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0016-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtocj6 RnJvbSBlOWMyZDIwMjY5M2RiZWEwNjEwYjMwZGMzMmVlNzVjMTE1NDhkNTY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTQ6MjY6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAxNi8yMl0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBqc29uYiB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdqc29uYic6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJv c3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGpzb25iICAgICAgfCBib29sZWFuICAgICAgICAgIHwgICAgIDM1NTYgfCBlICAgICAgICAgICB8 IGYgICAgICAgICAgfCBqc29uYl9ib29sICAgIHwgYm9vbAoganNvbmIgICAgICB8IG51bWVyaWMg ICAgICAgICAgfCAgICAgMzQ0OSB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX251 bWVyaWMgfCBudW1lcmljCiBqc29uYiAgICAgIHwgc21hbGxpbnQgICAgICAgICB8ICAgICAzNDUw IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwganNvbmJfaW50MiAgICB8IGludDIKIGpzb25i ICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgIDM0NTEgfCBlICAgICAgICAgICB8IGYgICAg ICAgICAgfCBqc29uYl9pbnQ0ICAgIHwgaW50NAoganNvbmIgICAgICB8IGJpZ2ludCAgICAgICAg ICAgfCAgICAgMzQ1MiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX2ludDggICAg fCBpbnQ4CiBqc29uYiAgICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAzNDUzIHwgZSAgICAg ICAgICAgfCBmICAgICAgICAgIHwganNvbmJfZmxvYXQ0ICB8IGZsb2F0NAoganNvbmIgICAgICB8 IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgMjU4MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGpzb25iX2Zsb2F0OCAgfCBmbG9hdDgKKDcgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1Nmlf NGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMgfCA3 NCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU4 IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9qc29uYi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMKaW5kZXgg YzRmZTZlMDBkY2QuLjE2MDAyMDRmYTRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmIuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYwpAQCAtMTgxNSw3 ICsxODE1LDcgQEAgSnNvbmJFeHRyYWN0U2NhbGFyKEpzb25iQ29udGFpbmVyICpqYmMsIEpzb25i VmFsdWUgKnJlcykKICAqIEVtaXQgY29ycmVjdCwgdHJhbnNsYXRhYmxlIGNhc3QgZXJyb3IgbWVz c2FnZQogICovCiBzdGF0aWMgdm9pZAotY2Fubm90Q2FzdEpzb25iVmFsdWUoZW51bSBqYnZUeXBl IHR5cGUsIGNvbnN0IGNoYXIgKnNxbHR5cGUpCitjYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpi dlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSwgTm9kZSAqZXNjb250ZXh0KQogewogCXN0 YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CkBAIC0xODM2LDcgKzE4MzYsNyBAQCBjYW5ub3RDYXN0SnNv bmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSkKIAogCWZvciAo aSA9IDA7IGkgPCBsZW5ndGhvZihtZXNzYWdlcyk7IGkrKykKIAkJaWYgKG1lc3NhZ2VzW2ldLnR5 cGUgPT0gdHlwZSkKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJy bXNnKG1lc3NhZ2VzW2ldLm1zZywgc3FsdHlwZSkpKTsKIApAQCAtMTg1MSw3ICsxODUxLDEwIEBA IGpzb25iX2Jvb2woUEdfRlVOQ1RJT05fQVJHUykKIAlKc29uYlZhbHVlCXY7CiAKIAlpZiAoIUpz b25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUo di50eXBlLCAiYm9vbGVhbiIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi Ym9vbGVhbiIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJ aWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE4NjAsNyArMTg2MywxMCBAQCBqc29uYl9i b29sKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZCb29sKQotCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIik7CisJeworCQljYW5ub3RDYXN0 SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVU VVJOX05VTEwoKTsKKwl9CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4sIDApOwogCkBAIC0xODc1LDcg KzE4ODEsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCU51bWVyaWMJCXJl dFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNh bm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiKTsKKwl7CisJCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRV Uk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUgPT0gamJ2TnVsbCkKIAl7CkBAIC0xODg0LDcg KzE4OTMsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2 LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVt ZXJpYyIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJLyoKIAkgKiB2LnZh bC5udW1lcmljIHBvaW50cyBpbnRvIGpzb25iIGJvZHksIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNv cHkgdG8KQEAgLTE5MDUsNyArMTkxNywxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290 LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInNtYWxsaW50Iik7CisJewor CQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIsIGZjaW5mby0+Y29udGV4 dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQog CXsKQEAgLTE5MTQsNyArMTkyOSwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ fQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2 LnR5cGUsICJzbWFsbGludCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi c21hbGxpbnQiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAog CXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDIsCiAJCQkJCQkJCSAg IE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0xOTMyLDcgKzE5NTAsMTAgQEAg anNvbmJfaW50NChQR19GVU5DVElPTl9BUkdTKQogCURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICgh SnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1 ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUs ICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAK IAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMTk0MSw3ICsxOTYyLDEwIEBAIGpzb25i X2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMp Ci0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiLCBmY2luZm8tPmNvbnRleHQpOworCQlQ R19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShu dW1lcmljX2ludDQsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7 CkBAIC0xOTU5LDcgKzE5ODMsMTAgQEAganNvbmJfaW50OChQR19GVU5DVElPTl9BUkdTKQogCURh dHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYp KQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdpbnQiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBH X1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE5 NjgsNyArMTk5NSwxMCBAQCBqc29uYl9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYg KHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJi aWdpbnQiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBE aXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERh dHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTE5ODYsNyArMjAxNiwxMCBAQCBqc29uYl9mbG9hdDQo UEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAoIUpzb25iRXh0cmFj dFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi cmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5m by0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBq YnZOdWxsKQogCXsKQEAgLTE5OTUsNyArMjAyOCwxMCBAQCBqc29uYl9mbG9hdDQoUEdfRlVOQ1RJ T05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgInJlYWwiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYu dHlwZSwgInJlYWwiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0K IAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0NCwKIAkJCQkJ CQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIwMTMsNyArMjA0OSwx MCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAK IAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIpOworCXsKKwkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIsIGZjaW5mby0+Y29udGV4dCk7CisJ CVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAg LTIwMjIsNyArMjA2MSwxMCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAK IAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVM TCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0 OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKLS0gCjIuMzQu MQoK --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0017-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Disposition: attachment; filename="v15-0017-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtoch5 RnJvbSBkMzU3ZTQ1NDFjYTYyYzM5OTgyZTg4NmRmOTI3MTg0NzE0ZTlkMDg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgOSBEZWMgMjAyNSAxNDozNjozOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE1 IDE3LzIyXSByZWZhY3RvcgogZmxvYXRfb3ZlcmZsb3dfZXJyb3IsZmxvYXRfdW5kZXJmbG93X2Vy cm9yLGZsb2F0X3plcm9fZGl2aWRlX2Vycm9yCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5l cy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBt YWlsLmdtYWlsLmNvbQotLS0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYyB8ICAg MiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jIHwgICA0ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvZmxvYXQuYyAgICAgfCAxMDQgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oICAgICAgICAgfCAgMzQgKysrKystLS0t LQogNCBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA3MiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMgYi9jb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKaW5kZXggZDljODU5ODM1ZGEuLmE3MzI1YTdiYjI5IDEw MDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKKysrIGIvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0NC5jCkBAIC0xMDEsNyArMTAxLDcgQEAgZmxvYXQ0X2Rp c3QoUEdfRlVOQ1RJT05fQVJHUykKIAogCXIgPSBhIC0gYjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cikpICYmICFpc2luZihhKSAmJiAhaXNpbmYoYikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUNChmYWJz ZihyKSk7CiB9CmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMg Yi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMKaW5kZXggNTY3YmVlZGUxNzguLjdj OTliODRkZTM1IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMK KysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jCkBAIC03OSw3ICs3OSw3IEBA IGdidF9mbG9hdDhfZGlzdChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBGbWdySW5mbyAq ZmxpbmZvKQogCiAJciA9IGFyZzEgLSBhcmcyOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYg IWlzaW5mKGFyZzEpICYmICFpc2luZihhcmcyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsK KwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJcmV0dXJuIGZhYnMocik7CiB9CiAKQEAg LTEwOSw3ICsxMDksNyBAQCBmbG9hdDhfZGlzdChQR19GVU5DVElPTl9BUkdTKQogCiAJciA9IGEg LSBiOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYgIWlzaW5mKGEpICYmICFpc2luZihiKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAKIAlQR19SRVRVUk5fRkxPQVQ4KGZhYnMocikpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2Zsb2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRl eCA1NWM3MDMwYmE4MS4uMjcxMGU0MmY1YmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mbG9hdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC04Mywy NSArODMsMjUgQEAgc3RhdGljIHZvaWQgaW5pdF9kZWdyZWVfY29uc3RhbnRzKHZvaWQpOwogICog VGhpcyBkb2VzIG1lYW4gdGhhdCB5b3UgZG9uJ3QgZ2V0IGEgdXNlZnVsIGVycm9yIGxvY2F0aW9u IGluZGljYXRvci4KICAqLwogcGdfbm9pbmxpbmUgdm9pZAotZmxvYXRfb3ZlcmZsb3dfZXJyb3Io dm9pZCkKK2Zsb2F0X292ZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7Ci0J ZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2RlKEVSUkNPREVf TlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUgb3V0IG9mIHJh bmdlOiBvdmVyZmxvdyIpKSk7CiB9CiAKIHBnX25vaW5saW5lIHZvaWQKLWZsb2F0X3VuZGVyZmxv d19lcnJvcih2b2lkKQorZmxvYXRfdW5kZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRl eHQpCiB7Ci0JZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2Rl KEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUg b3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ciKSkpOwogfQogCiBwZ19ub2lubGluZSB2b2lkCi1mbG9h dF96ZXJvX2RpdmlkZV9lcnJvcih2b2lkKQorZmxvYXRfemVyb19kaXZpZGVfZXJyb3Ioc3RydWN0 IE5vZGUgKmVzY29udGV4dCkKIHsKLQllcmVwb3J0KEVSUk9SLAorCWVycnNhdmUoZXNjb250ZXh0 LAogCQkJKGVycmNvZGUoRVJSQ09ERV9ESVZJU0lPTl9CWV9aRVJPKSwKIAkJCSBlcnJtc2coImRp dmlzaW9uIGJ5IHplcm8iKSkpOwogfQpAQCAtMTQ2MCw5ICsxNDYwLDkgQEAgZHNxcnQoUEdfRlVO Q1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHNxcnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjAp ICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5k ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAt MTQ3OSw5ICsxNDc5LDkgQEAgZGNicnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IGNi cnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTYxNywyNCArMTYxNywyNCBAQCBkcG93KFBH X0ZVTkNUSU9OX0FSR1MpCiAJCQkJaWYgKGFic3ggPT0gMS4wKQogCQkJCQlyZXN1bHQgPSAxLjA7 CiAJCQkJZWxzZSBpZiAoYXJnMiA+PSAwLjAgPyAoYWJzeCA+IDEuMCkgOiAoYWJzeCA8IDEuMCkp Ci0JCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCQkJCWVsc2UKLQkJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJCX0KIAkJfQogCQllbHNlIGlmIChlcnJubyA9 PSBFUkFOR0UpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0gMC4wKQotCQkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwp OwogCQl9CiAJCWVsc2UKIAkJewogCQkJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJCQlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAwLjApCi0JCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CQl9CiAJfQogCkBAIC0xNjc0LDE0ICsxNjc0LDE0IEBAIGRleHAoUEdfRlVOQ1RJT05fQVJHUykK IAkJaWYgKHVubGlrZWx5KGVycm5vID09IEVSQU5HRSkpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0g MC4wKQotCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCQl9CiAJCWVsc2UgaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKE5VTEwpOwogCQllbHNlIGlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSkKLQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CX0KIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKQEAgLTE3MTIsOSArMTcxMiw5IEBAIGRs b2cxKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBsb2coYXJnMSk7CiAJaWYgKHVubGlr ZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3Vs dCA9PSAwLjApICYmIGFyZzEgIT0gMS4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQp OwogfQpAQCAtMTc0NSw5ICsxNzQ1LDkgQEAgZGxvZzEwKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAly ZXN1bHQgPSBsb2cxMChhcmcxKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlz aW5mKGFyZzEpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAxLjAp Ci0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVM TCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xNzc4LDcgKzE3NzgsNyBA QCBkYWNvcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gYWNvcyhhcmcxKTsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZs b2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwog fQpAQCAtMTgwOSw3ICsxODA5LDcgQEAgZGFzaW4oUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3Vs dCA9IGFzaW4oYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9v dmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JF VFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE4MzUsNyArMTgzNSw3IEBAIGRhdGFuKFBHX0ZV TkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0gYXRhbihhcmcxKTsKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTg2 MSw3ICsxODYxLDcgQEAgZGF0YW4yKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0g YXRhbjIoYXJnMSwgYXJnMik7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9h dF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBH X1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE5MDIsNyArMTkwMiw3IEBAIGRjb3MoUEdf RlVOQ1RJT05fQVJHUykKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnB1dCBpcyBvdXQgb2YgcmFuZ2UiKSkpOwogCWlmICh1 bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9 CkBAIC0xOTU3LDcgKzE5NTcsNyBAQCBkc2luKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW5w dXQgaXMgb3V0IG9mIHJhbmdlIikpKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0J CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwog CiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjEzNyw3ICsyMTM3LDcgQEAgZGFj b3NkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJlc3VsdCA9IDkwLjAgKyBhc2luZF9xMSgtYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjE3NCw3ICsyMTc0LDcgQEAgZGFzaW5kKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCXJlc3VsdCA9IC1hc2luZF9xMSgtYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVz dWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjIwNiw3ICsyMjA2 LDcgQEAgZGF0YW5kKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gKGF0YW5fYXJnMSAvIGF0 YW5fMV8wKSAqIDQ1LjA7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjI0Miw3ICsyMjQyLDcgQEAgZGF0YW4yZChQ R19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IChhdGFuMl9hcmcxX2FyZzIgLyBhdGFuXzFfMCkg KiA0NS4wOwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9G TE9BVDgocmVzdWx0KTsKIH0KQEAgLTIzNjUsNyArMjM2NSw3IEBAIGRjb3NkKFBHX0ZVTkNUSU9O X0FSR1MpCiAJcmVzdWx0ID0gc2lnbiAqIGNvc2RfcTEoYXJnMSk7CiAKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjQ4 Nyw3ICsyNDg3LDcgQEAgZHNpbmQoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBzaWduICog c2luZF9xMShhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19S RVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNjQ1LDcgKzI2NDUsNyBAQCBkY29zaChQR19G VU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X2luZmluaXR5KCk7CiAKIAlpZiAo dW5saWtlbHkocmVzdWx0ID09IDAuMCkpCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlm bG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7 CiB9CkBAIC0yNjY1LDcgKzI2NjUsNyBAQCBkdGFuaChQR19GVU5DVElPTl9BUkdTKQogCXJlc3Vs dCA9IHRhbmgoYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjc2NSw3ICsyNzY1LDcgQEAgZGVyZihQR19G VU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZihhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNzg1LDcg KzI3ODUsNyBAQCBkZXJmYyhQR19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZmMoYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjgxNCw3ICsyODE0LDcgQEAgZGdhbW1hKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCS8qIFBlciBQT1NJWCwgYW4gaW5wdXQgb2YgLUluZiBjYXVzZXMgYSBkb21haW4gZXJyb3Ig Ki8KIAkJaWYgKGFyZzEgPCAwKQogCQl7Ci0JCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X25hbigp OwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCiAJCX0KIAkJZWxzZQpAQCAtMjgzNiwxMiArMjgz NiwxMiBAQCBkZ2FtbWEoUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGVycm5vICE9IDAgfHwgaXNp bmYocmVzdWx0KSB8fCBpc25hbihyZXN1bHQpKQogCQl7CiAJCQlpZiAocmVzdWx0ICE9IDAuMCkK LQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5V TEwpOwogCQkJZWxzZQotCQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X3Vu ZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJfQogCQllbHNlIGlmIChyZXN1bHQgPT0gMC4wKQotCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJfQogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwpAQCAtMjg3Myw3ICsyODczLDcgQEAg ZGxnYW1tYShQR19GVU5DVElPTl9BUkdTKQogCSAqIHRvIHJlcG9ydCBvdmVyZmxvdywgYnV0IGl0 IHNob3VsZCBuZXZlciB1bmRlcmZsb3cuCiAJICovCiAJaWYgKGVycm5vID09IEVSQU5HRSB8fCAo aXNpbmYocmVzdWx0KSAmJiAhaXNpbmYoYXJnMSkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVz dWx0KTsKIH0KQEAgLTMwMTMsNyArMzAxMyw3IEBAIGZsb2F0OF9jb21iaW5lKFBHX0ZVTkNUSU9O X0FSR1MpCiAJCXRtcCA9IFN4MSAvIE4xIC0gU3gyIC8gTjI7CiAJCVN4eCA9IFN4eDEgKyBTeHgy ICsgTjEgKiBOMiAqIHRtcCAqIHRtcCAvIE47CiAJCWlmICh1bmxpa2VseShpc2luZihTeHgpKSAm JiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3Io KTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCX0KIAogCS8qCkBAIC0zMDgwLDcg KzMwODAsNyBAQCBmbG9hdDhfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGlzaW5mKFN4 KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVzWzFdKSAmJiAh aXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigpOwogCQl9CkBA IC0zMTYzLDcgKzMxNjMsNyBAQCBmbG9hdDRfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYg KGlzaW5mKFN4KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVz WzFdKSAmJiAhaXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigp OwogCQl9CkBAIC0zNDMwLDcgKzM0MzAsNyBAQCBmbG9hdDhfcmVncl9hY2N1bShQR19GVU5DVElP Tl9BUkdTKQogCQkJCShpc2luZihTeHkpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1sxXSkg JiYgIWlzaW5mKG5ld3ZhbFgpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1szXSkgJiYgIWlz aW5mKG5ld3ZhbFkpKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlpZiAoaXNpbmYoU3h4KSkKIAkJCQlTeHggPSBnZXRf ZmxvYXQ4X25hbigpOwpAQCAtMzYwMywxNSArMzYwMywxNSBAQCBmbG9hdDhfcmVncl9jb21iaW5l KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXRtcDEgPSBTeDEgLyBOMSAtIFN4MiAvIE4yOwogCQlTeHgg PSBTeHgxICsgU3h4MiArIE4xICogTjIgKiB0bXAxICogdG1wMSAvIE47CiAJCWlmICh1bmxpa2Vs eShpc2luZihTeHgpKSAmJiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlTeSA9 IGZsb2F0OF9wbChTeTEsIFN5Mik7CiAJCXRtcDIgPSBTeTEgLyBOMSAtIFN5MiAvIE4yOwogCQlT eXkgPSBTeXkxICsgU3l5MiArIE4xICogTjIgKiB0bXAyICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeXkpKSAmJiAhaXNpbmYoU3l5MSkgJiYgIWlzaW5mKFN5eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlT eHkgPSBTeHkxICsgU3h5MiArIE4xICogTjIgKiB0bXAxICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeHkpKSAmJiAhaXNpbmYoU3h5MSkgJiYgIWlzaW5mKFN4eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlp ZiAoZmxvYXQ4X2VxKEN4MSwgQ3gyKSkKIAkJCUN4ID0gQ3gxOwogCQllbHNlCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApp bmRleCBmYzJhOWNmNjQ3NS4uMWQwY2IwMjZkNGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApAQCAtMzAsOSArMzAs OSBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IGV4dHJhX2Zsb2F0X2RpZ2l0czsKIC8qCiAgKiBV dGlsaXR5IGZ1bmN0aW9ucyBpbiBmbG9hdC5jCiAgKi8KLXBnX25vcmV0dXJuIGV4dGVybiB2b2lk IGZsb2F0X292ZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxv YXRfdW5kZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxvYXRf emVyb19kaXZpZGVfZXJyb3Iodm9pZCk7CitleHRlcm4gdm9pZCBmbG9hdF9vdmVyZmxvd19lcnJv cihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3VuZGVyZmxvd19l cnJvcihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3plcm9fZGl2 aWRlX2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIGludAlpc19pbmZpbml0 ZShmbG9hdDggdmFsKTsKIGV4dGVybiBmbG9hdDggZmxvYXQ4aW5faW50ZXJuYWwoY2hhciAqbnVt LCBjaGFyICoqZW5kcHRyX3AsCiAJCQkJCQkJCWNvbnN0IGNoYXIgKnR5cGVfbmFtZSwgY29uc3Qg Y2hhciAqb3JpZ19zdHJpbmcsCkBAIC0xMDQsNyArMTA0LDcgQEAgZmxvYXQ0X3BsKGNvbnN0IGZs b2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKyB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMTYsNyArMTE2LDcgQEAgZmxvYXQ4X3Bs KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEg KyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYg IWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxv d19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMjgsNyArMTI4LDcgQEAg ZmxvYXQ0X21pKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3Vs dCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYo dmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9h dF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xNDAsNyAr MTQwLDcgQEAgZmxvYXQ4X21pKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikK IAogCXJlc3VsdCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAm JiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xNTIsOSArMTUyLDkgQEAgZmxvYXQ0X211bChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxv YXQ0IHZhbDIpCiAKIAlyZXN1bHQgPSB2YWwxICogdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZs b3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5 KHJlc3VsdCA9PSAwLjBmKSAmJiB2YWwxICE9IDAuMGYgJiYgdmFsMiAhPSAwLjBmKQotCQlmbG9h dF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJ cmV0dXJuIHJlc3VsdDsKIH0KQEAgLTE2Niw5ICsxNjYsOSBAQCBmbG9hdDhfbXVsKGNvbnN0IGZs b2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKiB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgdmFs MiAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMTc5LDEyICsxNzksMTIgQEAg ZmxvYXQ0X2Rpdihjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJZmxvYXQ0 CQlyZXN1bHQ7CiAKIAlpZiAodW5saWtlbHkodmFsMiA9PSAwLjBmKSAmJiAhaXNuYW4odmFsMSkp Ci0JCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKCk7CisJCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9y KE5VTEwpOwogCXJlc3VsdCA9IHZhbDEgLyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1 bHQpKSAmJiAhaXNpbmYodmFsMSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0 X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wZikgJiYg dmFsMSAhPSAwLjBmICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xOTUsMTIgKzE5NSwxMiBAQCBmbG9hdDhfZGl2KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBm bG9hdDggdmFsMikKIAlmbG9hdDgJCXJlc3VsdDsKIAogCWlmICh1bmxpa2VseSh2YWwyID09IDAu MCkgJiYgIWlzbmFuKHZhbDEpKQotCQlmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcigpOworCQlmbG9h dF96ZXJvX2RpdmlkZV9lcnJvcihOVUxMKTsKIAlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHko cmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJcmV0 dXJuIHJlc3VsdDsKIH0KLS0gCjIuMzQuMQoK --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0015-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0015-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtocl7 RnJvbSA2ZGNlMDhlOTk2MDg3YTNiYmEyZjc2NmI3NGI1ODRmZWY3OGRiOWMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjoxNDozNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE1 IDE1LzIyXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKICAgICAgIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywg cHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBj LmNhc3RmdW5jCmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIChjYXN0c291cmNlOjpyZWd0eXBlID0n dGltZXN0YW1wJzo6cmVndHlwZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICAg ICAgIGNhc3Rzb3VyY2UgICAgICAgICAgfCAgICAgICAgIGNhc3R0YXJnZXQgICAgICAgICAgfCBj YXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICAgICBwcm9zcmMgICAgICAg ICB8ICAgcHJvbmFtZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIHRpbWVzdGFtcCB3aXRob3V0IHRp bWUgem9uZSB8IGRhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAyMDI5IHwgYSAgICAg ICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX2RhdGUgICAgICAgIHwgZGF0ZQogdGltZXN0 YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZSB3aXRob3V0IHRpbWUgem9uZSAgICAgIHwgICAg IDEzMTYgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXBfdGltZSAgICAgICAg fCB0aW1lCiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aCB0aW1l IHpvbmUgICAgfCAgICAgMjAyOCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFt cF90aW1lc3RhbXB0eiB8IHRpbWVzdGFtcHR6CiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUg fCB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCAgICAgMTk2MSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IHRpbWVzdGFtcF9zY2FsZSAgICAgICB8IHRpbWVzdGFtcAooNCByb3dzKQoK ZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJq UWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAgNyArKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvdGltZXN0YW1wLmMgfCAxMCArKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggYmJjODY0YTgw Y2QuLjkxY2M4Y2M4NWYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTEzMzAsNyArMTMzMCwxMCBA QCB0aW1lc3RhbXBfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcAl0aW1lc3RhbXAg PSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCURhdGVBRFQJCXJlc3VsdDsKIAotCXJlc3VsdCA9 IHRpbWVzdGFtcDJkYXRlX3NhZmUodGltZXN0YW1wLCBOVUxMKTsKKwlyZXN1bHQgPSB0aW1lc3Rh bXAyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCiAJUEdf UkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAwOCw3ICsyMDExLDcgQEAgdGltZXN0 YW1wX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVUVVJOX05VTEwoKTsKIAogCWlmICh0 aW1lc3RhbXAydG0odGltZXN0YW1wLCBOVUxMLCB0bSwgJmZzZWMsIE5VTEwsIE5VTEwpICE9IDAp Ci0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAs CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJ CSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKaW5kZXggYzE0NGNhZjI0NTguLmU4NGNmNGIyNWY4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jCkBAIC0zNTIsNyArMzUyLDggQEAgdGltZXN0YW1wX3NjYWxlKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAlyZXN1bHQgPSB0aW1lc3RhbXA7CiAKLQlBZGp1c3RUaW1lc3RhbXBGb3JU eXBtb2QoJnJlc3VsdCwgdHlwbW9kLCBOVUxMKTsKKwlpZiAoIUFkanVzdFRpbWVzdGFtcEZvclR5 cG1vZCgmcmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxM KCk7CiAKIAlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC02NDMyLDggKzY0MzMs MTMgQEAgRGF0dW0KIHRpbWVzdGFtcF90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdTKQogewog CVRpbWVzdGFtcAl0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOworCVRpbWVzdGFt cFR6IHJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1FU1RBTVBUWih0aW1lc3RhbXAydGltZXN0YW1w dHoodGltZXN0YW1wKSk7CisJcmVzdWx0ID0gdGltZXN0YW1wMnRpbWVzdGFtcHR6X3NhZmUodGlt ZXN0YW1wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5m by0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fVElNRVNUQU1Q VFoocmVzdWx0KTsKIH0KIAogLyoKLS0gCjIuMzQuMQoK --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0014-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0014-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtoco8 RnJvbSA5Nzg5MDFjZGU3NDAwNzVlOTEyZWE5YTI0YTgyZTIwZjFlYzg3OThhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjowNDo0MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE1 IDE0LzIyXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcHR6IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSd0aW1lc3RhbXB0eic6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7Cgog ICAgICAgIGNhc3Rzb3VyY2UgICAgICAgIHwgICAgICAgICBjYXN0dGFyZ2V0ICAgICAgICAgIHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgICAgcHJvc3JjICAgICAg ICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpv bmUgfCBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMTE3OCB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X2RhdGUgICAgICB8IGRhdGUKIHRpbWVzdGFtcCB3 aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUgICAgICB8ICAgICAyMDE5IHwg YSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wdHpfdGltZSAgICAgIHwgdGltZQog dGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwg ICAgIDIwMjcgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0el90aW1lc3Rh bXAgfCB0aW1lc3RhbXAKIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aCB0aW1l IHpvbmUgICAgICAgICB8ICAgICAxMzg4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGlt ZXN0YW1wdHpfdGltZXR6ICAgIHwgdGltZXR6CiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgfCB0 aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgICAgfCAgICAgMTk2NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IHRpbWVzdGFtcHR6X3NjYWxlICAgICB8IHRpbWVzdGFtcHR6Cig1IHJvd3MpCgpk aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpR aXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMgICAgICB8ICA5ICsrKysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jIHwgMTAgKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IDhmYTMzNmRh MjUwLi5iYmM4NjRhODBjZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0xNDA2LDcgKzE0MDYsMTAg QEAgdGltZXN0YW1wdHpfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcFR6IHRpbWVz dGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgTlVMTCk7CisJcmVzdWx0ID0g dGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmFyZ3MpKQorCQlQR19SRVRVUk5fTlVMTCgpOwor CiAJUEdfUkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAzNiw3ICsyMDM5LDcgQEAg dGltZXN0YW1wdHpfdGltZShQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwog CiAJaWYgKHRpbWVzdGFtcDJ0bSh0aW1lc3RhbXAsICZ0eiwgdG0sICZmc2VjLCBOVUxMLCBOVUxM KSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtMjk1NSw3 ICsyOTU4LDcgQEAgdGltZXN0YW1wdHpfdGltZXR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JF VFVSTl9OVUxMKCk7CiAKIAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgJnR6LCB0bSwgJmZz ZWMsIE5VTEwsIE5VTEwpICE9IDApCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZv LT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkp OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggMWU4Yjg1OWZmMjkuLmMxNDRjYWYy NDU4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC04NzUsNyArODc1LDggQEAgdGlt ZXN0YW1wdHpfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHRpbWVzdGFtcDsK IAotCUFkanVzdFRpbWVzdGFtcEZvclR5cG1vZCgmcmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlm ICghQWRqdXN0VGltZXN0YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgZmNpbmZvLT5jb250 ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVBUWihyZXN1 bHQpOwogfQpAQCAtNjQ5NCw4ICs2NDk1LDEzIEBAIERhdHVtCiB0aW1lc3RhbXB0el90aW1lc3Rh bXAoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlUaW1lc3RhbXBUeiB0aW1lc3RhbXAgPSBQR19HRVRB UkdfVElNRVNUQU1QVFooMCk7CisJVGltZXN0YW1wCXJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1F U1RBTVAodGltZXN0YW1wdHoydGltZXN0YW1wKHRpbWVzdGFtcCkpOworCXJlc3VsdCA9IHRpbWVz dGFtcHR6MnRpbWVzdGFtcF9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo dW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KIAogLyoKLS0g CjIuMzQuMQoK --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0013-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0013-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtocr9 RnJvbSA1ZjM4NzA5YTU5ZjBlN2EwMGVjMDlhZGI5YzkzNTA1NmY3OGQ0MDI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0MzoyOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE1 IDEzLzIyXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGludGVydmFsIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVydmFs Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAg ICAgICBjYXN0dGFyZ2V0ICAgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRo b2QgfCAgICAgcHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQogaW50ZXJ2YWwgICB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUg fCAgICAgMTQxOSB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludGVydmFsX3RpbWUgIHwg dGltZQogaW50ZXJ2YWwgICB8IGludGVydmFsICAgICAgICAgICAgICAgfCAgICAgMTIwMCB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGludGVydmFsX3NjYWxlIHwgaW50ZXJ2YWwKKDIgcm93 cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3 d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2RhdGUuYyAgICAgIHwgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jIHwgMyArKy0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IGNmMjQxZWE5Nzk0Li44ZmEzMzZk YTI1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0yMTA2LDcgKzIxMDYsNyBAQCBpbnRlcnZhbF90 aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJVGltZUFEVAkJcmVzdWx0OwogCiAJaWYgKElOVEVSVkFM X05PVF9GSU5JVEUoc3BhbikpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5j b250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxVRV9P VVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coImNhbm5vdCBjb252ZXJ0IGluZmluaXRlIGludGVy dmFsIHRvIHRpbWUiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggMmRjOTBh MmI4YTkuLjFlOGI4NTlmZjI5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC0xMzM0 LDcgKzEzMzQsOCBAQCBpbnRlcnZhbF9zY2FsZShQR19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9 IHBhbGxvYyhzaXplb2YoSW50ZXJ2YWwpKTsKIAkqcmVzdWx0ID0gKmludGVydmFsOwogCi0JQWRq dXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0 SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fSU5URVJWQUxfUChyZXN1bHQpOwogfQotLSAK Mi4zNC4xCgo= --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0012-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0012-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtoct10 RnJvbSA0MmQyOWNlZWE0MGUwZDFmMDA2ZjU5YmZhM2I0ZjU1YjNjYmU0NTRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMzoxNTozMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE1 IDEyLzIyXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGRhdGUgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZGF0ZSc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCmNhc3Rzb3VyY2UgfCAgICAgICAgIGNh c3R0YXJnZXQgICAgICAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 ICAgICAgcHJvc3JjICAgICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0 aG91dCB0aW1lIHpvbmUgfCAgICAgMjAyNCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRh dGVfdGltZXN0YW1wICAgfCB0aW1lc3RhbXAKIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0aCB0 aW1lIHpvbmUgICAgfCAgICAgMTE3NCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRhdGVf dGltZXN0YW1wdHogfCB0aW1lc3RhbXB0egooMiByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2 aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIHwg MTcgKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IGM0YjgxMjVkZDY2Li5jZjI0MWVh OTc5NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC03MzAsMTUgKzczMCw2IEBAIGRhdGUydGltZXN0 YW1wdHpfc2FmZShEYXRlQURUIGRhdGVWYWwsIE5vZGUgKmVzY29udGV4dCkKIAlyZXR1cm4gcmVz dWx0OwogfQogCi0vKgotICogUHJvbW90ZSBkYXRlIHRvIHRpbWVzdGFtcHR6LCB0aHJvd2luZyBl cnJvciBmb3Igb3ZlcmZsb3cuCi0gKi8KLXN0YXRpYyBUaW1lc3RhbXBUegotZGF0ZTJ0aW1lc3Rh bXB0eihEYXRlQURUIGRhdGVWYWwpCi17Ci0JcmV0dXJuIGRhdGUydGltZXN0YW1wdHpfc2FmZShk YXRlVmFsLCBOVUxMKTsKLX0KLQogLyoKICAqIGRhdGUydGltZXN0YW1wX25vX292ZXJmbG93CiAg KgpAQCAtMTMyMyw3ICsxMzE0LDkgQEAgZGF0ZV90aW1lc3RhbXAoUEdfRlVOQ1RJT05fQVJHUykK IAlEYXRlQURUCQlkYXRlVmFsID0gUEdfR0VUQVJHX0RBVEVBRFQoMCk7CiAJVGltZXN0YW1wCXJl c3VsdDsKIAotCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wKGRhdGVWYWwpOworCXJlc3VsdCA9IGRh dGUydGltZXN0YW1wX3NhZmUoZGF0ZVZhbCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZihTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQ R19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC0xMzk2LDcgKzEzODksOSBAQCBkYXRl X3RpbWVzdGFtcHR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dF VEFSR19EQVRFQURUKDApOwogCVRpbWVzdGFtcFR6IHJlc3VsdDsKIAotCXJlc3VsdCA9IGRhdGUy dGltZXN0YW1wdHooZGF0ZVZhbCk7CisJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXB0el9zYWZlKGRh dGVWYWwsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVAo cmVzdWx0KTsKIH0KLS0gCjIuMzQuMQoK --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0011-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0011-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtocv11 RnJvbSAwMzFiOGE1ZWE0MWYzYWM4ZmZiMzUyMzU5NjliMzEzYWYwMWU3ZWMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MzE6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAxMS8yMl0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ4Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAg fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBkb3VibGUgcHJlY2lzaW9uIHwgYmlnaW50ICAgICB8ICAgICAgNDgzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZHRvaTggICAgICAgICAgfCBpbnQ4CiBkb3VibGUgcHJlY2lzaW9u IHwgc21hbGxpbnQgICB8ICAgICAgMjM3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRv aTIgICAgICAgICAgfCBpbnQyCiBkb3VibGUgcHJlY2lzaW9uIHwgaW50ZWdlciAgICB8ICAgICAg MzE3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRvaTQgICAgICAgICAgfCBpbnQ0CiBk b3VibGUgcHJlY2lzaW9uIHwgcmVhbCAgICAgICB8ICAgICAgMzEyIHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZHRvZiAgICAgICAgICAgfCBmbG9hdDQKIGRvdWJsZSBwcmVjaXNpb24gfCBu dW1lcmljICAgIHwgICAgIDE3NDMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDhf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDEzICsr KysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyB8ICAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKaW5kZXgg ZDVmMTViZmE3ZGUuLjU1YzcwMzBiYTgxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwpAQCAtMTE5OSw5 ICsxMTk5LDE0IEBAIGR0b2YoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IChmbG9hdDQp IG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKG51bSkpCi0JCWZs b2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJ CQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisKIAlpZiAodW5saWtl bHkocmVzdWx0ID09IDAuMGYpICYmIG51bSAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJv cigpOworCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAorCQkJCWVycmNvZGUo RVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBv dXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKIAogCVBHX1JFVFVSTl9GTE9BVDQocmVzdWx0KTsK IH0KQEAgLTEyMjQsNyArMTIyOSw3IEBAIGR0b2k0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBS YW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19J Tl9JTlQzMihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7CiAKQEAgLTEy NDksNyArMTI1NCw3IEBAIGR0b2kyKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVj ayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19JTl9JTlQxNihu dW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1 bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK IAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YwppbmRleCA2ODI5OWU5MTUxMi4uN2ZmN2YyNjdiN2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9pbnQ4LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYwpAQCAt MTMwNyw3ICsxMzA3LDcgQEAgZHRvaTgoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNo ZWNrICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUOF9GSVRTX0lOX0lOVDY0 KG51bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwppbmRleCBjOWQ2NjY5YTdkZS4uMTFjNzZlZTQwYjUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwpAQCAtNDU2MCw3ICs0NTYwLDggQEAgZmxvYXQ4X251bWVyaWMoUEdfRlVOQ1RJT05f QVJHUykKIAlpbml0X3ZhcigmcmVzdWx0KTsKIAogCS8qIEFzc3VtZSB3ZSBuZWVkIG5vdCB3b3Jy eSBhYm91dCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNlcyAqLwotCSh2b2lkKSBzZXRfdmFyX2Zyb21f c3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBOVUxMKTsKKwlpZiAoIXNldF92YXJfZnJv bV9zdHIoYnVmLCBidWYsICZyZXN1bHQsICZlbmRwdHIsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlyZXMgPSBtYWtlX3Jlc3VsdCgmcmVzdWx0KTsKIAotLSAKMi4z NC4xCgo= --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0010-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0010-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtocy12 RnJvbSBiYzQ0ZmE0MTg3NDYyNTZiMDljNmMxZDVjZTdjODM5ZTEwMzc0YWEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6Mjg6MjAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAxMC8yMl0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ0Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiByZWFsICAgICAgIHwgYmlnaW50ICAgICAgICAgICB8ICAgICAgNjUzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZnRvaTggICAgICAgICAgfCBpbnQ4CiByZWFsICAgICAgIHwgc21h bGxpbnQgICAgICAgICB8ICAgICAgMjM4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRv aTIgICAgICAgICAgfCBpbnQyCiByZWFsICAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAg MzE5IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRvaTQgICAgICAgICAgfCBpbnQ0CiBy ZWFsICAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzExIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZnRvZCAgICAgICAgICAgfCBmbG9hdDgKIHJlYWwgICAgICAgfCBudW1lcmlj ICAgICAgICAgIHwgICAgIDE3NDIgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDRf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDQgKyst LQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9udW1lcmljLmMgfCAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zs b2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRleCA4NDk2MzlmZGE5Zi4u ZDVmMTViZmE3ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC0xMjk4LDcgKzEyOTgsNyBAQCBm dG9pNChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtl bHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW50 ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMzIzLDcgKzEzMjMsNyBAQCBmdG9pMihQR19G VU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4o bnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJ CWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggZDU2MzFmMzU0NjUuLjY4Mjk5 ZTkxNTEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEzNDIsNyArMTM0Miw3IEBAIGZ0b2k4KFBH X0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25h bihudW0pIHx8ICFGTE9BVDRfRklUU19JTl9JTlQ2NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwK KwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJD T0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVy aWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKaW5kZXggM2U3OGNkZjRlYTAu LmM5ZDY2NjlhN2RlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKQEAgLTQ2NTgsNyArNDY1OCw4 IEBAIGZsb2F0NF9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnJlc3VsdCk7 CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBub3Qgd29ycnkgYWJvdXQgbGVhZGluZy90cmFpbGluZyBz cGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zhcl9mcm9tX3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVu ZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRfdmFyX2Zyb21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAm ZW5kcHRyLCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJcmVzID0g bWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAKLS0gCjIuMzQuMQoK --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0009-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0009-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtod013 RnJvbSAxYjhjMGUwY2U2YzNkOWY0NWM0NTFkZTNhZTE1NWIwN2I4MWY1MWI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjU6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAwOS8yMl0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBudW1lcmljIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ251bWVyaWMn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgpjYXN0c291cmNlIHwgICAg Y2FzdHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAg IHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogbnVtZXJpYyAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgMTc3OSB8IGEgICAgICAg ICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50OCAgIHwgaW50OAogbnVtZXJpYyAgICB8IHNt YWxsaW50ICAgICAgICAgfCAgICAgMTc4MyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51 bWVyaWNfaW50MiAgIHwgaW50MgogbnVtZXJpYyAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAg MTc0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50NCAgIHwgaW50NAog bnVtZXJpYyAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgMTc0NSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IG51bWVyaWNfZmxvYXQ0IHwgZmxvYXQ0CiBudW1lcmljICAgIHwgZG91Ymxl IHByZWNpc2lvbiB8ICAgICAxNzQ2IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVtZXJp Y19mbG9hdDggfCBmbG9hdDgKIG51bWVyaWMgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4 MjQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1lcmljX2Nhc2ggICB8IG1vbmV5CiBu dW1lcmljICAgIHwgbnVtZXJpYyAgICAgICAgICB8ICAgICAxNzAzIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgbnVtZXJpYyAgICAgICAgfCBudW1lcmljCig3IHJvd3MpCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhIQ016ckhPVz13UmU4TDMwck1oQjNzandBdjFM RTkyOEZhN3N4TXUxVHgtZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9udW1lcmljLmMgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwppbmRleCAxZDYyNmFlY2JlNy4uM2U3OGNkZjRlYTAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwpAQCAtMTI0NCw3ICsxMjQ0LDggQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FS R1MpCiAJICovCiAJaWYgKE5VTUVSSUNfSVNfU1BFQ0lBTChudW0pKQogCXsKLQkJKHZvaWQpIGFw cGx5X3R5cG1vZF9zcGVjaWFsKG51bSwgdHlwbW9kLCBOVUxMKTsKKwkJaWYgKCFhcHBseV90eXBt b2Rfc3BlY2lhbChudW0sIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CiAJCVBHX1JFVFVSTl9OVU1FUklDKGR1cGxpY2F0ZV9udW1lcmljKG51bSkpOwogCX0K IApAQCAtMTI5NSw4ICsxMjk2LDkgQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5p dF92YXIoJnZhcik7CiAKIAlzZXRfdmFyX2Zyb21fbnVtKG51bSwgJnZhcik7Ci0JKHZvaWQpIGFw cGx5X3R5cG1vZCgmdmFyLCB0eXBtb2QsIE5VTEwpOwotCW5ldyA9IG1ha2VfcmVzdWx0KCZ2YXIp OworCWlmICghYXBwbHlfdHlwbW9kKCZ2YXIsIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJ UEdfUkVUVVJOX05VTEwoKTsKKwluZXcgPSBtYWtlX3Jlc3VsdF9zYWZlKCZ2YXIsIGZjaW5mby0+ Y29udGV4dCk7CiAKIAlmcmVlX3ZhcigmdmFyKTsKIApAQCAtMzAxOSw3ICszMDIxLDEwIEBAIG51 bWVyaWNfbXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTnVtZXJpYwkJbnVtMiA9IFBHX0dFVEFSR19O VU1FUklDKDEpOwogCU51bWVyaWMJCXJlczsKIAotCXJlcyA9IG51bWVyaWNfbXVsX3NhZmUobnVt MSwgbnVtMiwgTlVMTCk7CisJcmVzID0gbnVtZXJpY19tdWxfc2FmZShudW0xLCBudW0yLCBmY2lu Zm8tPmNvbnRleHQpOworCisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fTlVNRVJJQyhy ZXMpOwogfQpAQCAtNDM5Myw5ICs0Mzk4LDE1IEBAIG51bWVyaWNfaW50NF9zYWZlKE51bWVyaWMg bnVtLCBOb2RlICplc2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ0KFBHX0ZVTkNUSU9OX0FS R1MpCiB7CisJaW50MzIJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJ QygwKTsKIAotCVBHX1JFVFVSTl9JTlQzMihudW1lcmljX2ludDRfc2FmZShudW0sIE5VTEwpKTsK KwlyZXN1bHQgPSBudW1lcmljX2ludDRfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlp ZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdf UkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9JTlQzMihyZXN1bHQpOwogfQogCiAvKgpAQCAt NDQ2Myw5ICs0NDc0LDE1IEBAIG51bWVyaWNfaW50OF9zYWZlKE51bWVyaWMgbnVtLCBOb2RlICpl c2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CisJaW50 NjQJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJQygwKTsKIAotCVBH X1JFVFVSTl9JTlQ2NChudW1lcmljX2ludDhfc2FmZShudW0sIE5VTEwpKTsKKwlyZXN1bHQgPSBu dW1lcmljX2ludDhfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHko U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwo KTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCiAKQEAgLTQ0ODksMTEgKzQ1MDYs MTEgQEAgbnVtZXJpY19pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKE5VTUVSSUNfSVNfU1BF Q0lBTChudW0pKQogCXsKIAkJaWYgKE5VTUVSSUNfSVNfTkFOKG51bSkpCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBOYU4gdG8gJXMiLCAic21hbGxpbnQiKSkpOwogCQllbHNlCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBpbmZpbml0eSB0byAlcyIsICJzbWFsbGludCIpKSk7CiAJfQpAQCAtNDUwMiwxMiAr NDUxOSwxMiBAQCBudW1lcmljX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAlpbml0X3Zhcl9mcm9t X251bShudW0sICZ4KTsKIAogCWlmICghbnVtZXJpY3Zhcl90b19pbnQ2NCgmeCwgJnZhbCkpCi0J CWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAogCWlmICh1bmxpa2VseSh2YWwgPCBQ R19JTlQxNl9NSU4pIHx8IHVubGlrZWx5KHZhbCA+IFBHX0lOVDE2X01BWCkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21h bGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtNDU3MiwxMCArNDU4OSwxNCBAQCBudW1lcmlj X2Zsb2F0OChQR19GVU5DVElPTl9BUkdTKQogCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVj dEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVt KG51bSkpKTsKLQotCXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ4aW4sIENTdHJp bmdHZXREYXR1bSh0bXApKTsKLQotCXBmcmVlKHRtcCk7CisJaWYgKCFEaXJlY3RJbnB1dEZ1bmN0 aW9uQ2FsbFNhZmUoZmxvYXQ4aW4sIHRtcCwKKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAtMSwKKwkJ CQkJCQkJCSAoTm9kZSAqKSBmY2luZm8tPmNvbnRleHQsCisJCQkJCQkJCQkgJnJlc3VsdCkpCisJ eworCQlwZnJlZSh0bXApOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9E QVRVTShyZXN1bHQpOwogfQpAQCAtNDY2Nyw3ICs0Njg4LDE0IEBAIG51bWVyaWNfZmxvYXQ0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2Fs bDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVtKG51bSkpKTsKIAot CXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ0aW4sIENTdHJpbmdHZXREYXR1bSh0 bXApKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShmbG9hdDRpbiwgdG1wLAor CQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopIGZjaW5mby0+Y29u dGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7CisJCXBmcmVlKHRtcCk7CisJCVBHX1JFVFVS Tl9OVUxMKCk7CisJfQogCiAJcGZyZWUodG1wKTsKIAotLSAKMi4zNC4xCgo= --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0007-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0007-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtod415 RnJvbSBmZDFhODY3NmNmOGJhN2JmZjMxMDMzN2I5NzAxMWE3ODRkMjE3NGQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjA6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAwNy8yMl0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlZ2VyIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVnZXIn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAg IGNhc3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAg IHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogaW50ZWdlciAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgIDQ4MSB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGludDQ4ICAgICAgICB8IGludDgKIGludGVnZXIgICAgfCBzbWFsbGlu dCAgICAgICAgIHwgICAgICAzMTQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpNHRvaTIg ICAgICAgfCBpbnQyCiBpbnRlZ2VyICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAgMzE4IHwg aSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTR0b2YgICAgICAgIHwgZmxvYXQ0CiBpbnRlZ2Vy ICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzE2IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgaTR0b2QgICAgICAgIHwgZmxvYXQ4CiBpbnRlZ2VyICAgIHwgbnVtZXJpYyAgICAgICAg ICB8ICAgICAxNzQwIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50NF9udW1lcmljIHwg bnVtZXJpYwogaW50ZWdlciAgICB8IG1vbmV5ICAgICAgICAgICAgfCAgICAgMzgxMSB8IGEgICAg ICAgICAgIHwgZiAgICAgICAgICB8IGludDRfY2FzaCAgICB8IG1vbmV5CiBpbnRlZ2VyICAgIHwg Ym9vbGVhbiAgICAgICAgICB8ICAgICAyNTU3IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwg aW50NF9ib29sICAgIHwgYm9vbAogaW50ZWdlciAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAg NjM2OCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDRfYnl0ZWEgICB8IGJ5dGVhCiBp bnRlZ2VyICAgIHwgImNoYXIiICAgICAgICAgICB8ICAgICAgIDc4IHwgZSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgaTR0b2NoYXIgICAgIHwgY2hhcgogaW50ZWdlciAgICB8IGJpdCAgICAgICAg ICAgICAgfCAgICAgMTY4MyB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdGZyb21pbnQ0 ICB8IGJpdAooMTAgcm93cykKCm9ubHkgaW50NF9jYXNoLCBpNHRvaTIsIGk0dG9jaGFyIG5lZWQg dGFrZSBjYXJlIG9mIGVycm9yIGhhbmRsaW5nLiAgYnV0IHN1cHBvcnQKZm9yIGNhc2ggZGF0YSB0 eXBlIGlzIG5vdCBlYXN5LCBzbyBvbmx5IGk0dG9pMiwgaTR0b2NoYXIgZnVuY3Rpb24gcmVmYWN0 b3JpbmcuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZh LWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMgfCAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQv aW50LmMgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2NoYXIuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKaW5kZXggMjJkYmZjOTUwYjEuLmU5MDg0NGEyOWYwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvY2hhci5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9jaGFyLmMKQEAgLTE5Miw3ICsxOTIsNyBAQCBpNHRvY2hhcihQR19GVU5DVElP Tl9BUkdTKQogCWludDMyCQlhcmcxID0gUEdfR0VUQVJHX0lOVDMyKDApOwogCiAJaWYgKGFyZzEg PCBTQ0hBUl9NSU4gfHwgYXJnMSA+IFNDSEFSX01BWCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJcImNoYXJcIiBvdXQgb2Yg cmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5kZXggYjU3ODE5ODlhNjQuLmI0NTU5OWQ0MDJk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNTAsNyArMzUwLDcgQEAgaTR0b2kyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRBUkdfSU5UMzIoMCk7CiAKIAlpZiAodW5saWtl bHkoYXJnMSA8IFNIUlRfTUlOKSB8fCB1bmxpa2VseShhcmcxID4gU0hSVF9NQVgpKQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2co InNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0008-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0008-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtod114 RnJvbSA0NjIzNzYzMTQ5ZWY0YzJhYWY4MjJhYWEwZmM2YmVhZDI2MTFlMzljIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjI6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAwOC8yMl0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaWdpbnQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnYmlnaW50Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBw cm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGJpZ2ludCAgICAgfCBzbWFsbGludCAgICAgICAgIHwgICAgICA3MTQgfCBhICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpbnQ4MiAgICAgICAgfCBpbnQyCiBiaWdpbnQgICAgIHwgaW50ZWdlciAg ICAgICAgICB8ICAgICAgNDgwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50ODQgICAg ICAgIHwgaW50NAogYmlnaW50ICAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgIDY1MiB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9mICAgICAgICB8IGZsb2F0NAogYmlnaW50ICAg ICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDQ4MiB8IGkgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGk4dG9kICAgICAgICB8IGZsb2F0OAogYmlnaW50ICAgICB8IG51bWVyaWMgICAgICAgICAg fCAgICAgMTc4MSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfbnVtZXJpYyB8IG51 bWVyaWMKIGJpZ2ludCAgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4MTIgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCBpbnQ4X2Nhc2ggICAgfCBtb25leQogYmlnaW50ICAgICB8IG9p ZCAgICAgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4 dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3Byb2MgICAgICAgICAgfCAgICAgMTI4 NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50 ICAgICB8IHJlZ3Byb2NlZHVyZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ29wZXIgICAgICAgICAg fCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9p ZAogYmlnaW50ICAgICB8IHJlZ29wZXJhdG9yICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NsYXNz ICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQg ICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbGxhdGlvbiAgICAgfCAgICAgMTI4NyB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8 IHJlZ3R5cGUgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbmZpZyAgICAgICAgfCAgICAg MTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmln aW50ICAgICB8IHJlZ2RpY3Rpb25hcnkgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3JvbGUgICAgICAg ICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8 IG9pZAogYmlnaW50ICAgICB8IHJlZ25hbWVzcGFjZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2Rh dGFiYXNlICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9v aWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAgNjM2OSB8 IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfYnl0ZWEgICB8IGJ5dGVhCiBiaWdpbnQg ICAgIHwgYml0ICAgICAgICAgICAgICB8ICAgICAyMDc1IHwgZSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgYml0ZnJvbWludDggIHwgYml0CigyMSByb3dzKQoKYWxyZWFkeSBlcnJvciBzYWZlOiBp OHRvZiwgaTh0b2QsIGludDhfbnVtZXJpYywgaW50OF9ieXRlYSwgYml0ZnJvbWludDgKZGlzY3Vz c2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZp c2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGls cy9hZHQvaW50OC5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggOWNkNDIwYjRiOWQuLmQ1NjMx ZjM1NDY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEyNTEsNyArMTI1MSw3IEBAIGludDg0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsKIAogCWlm ICh1bmxpa2VseShhcmcgPCBQR19JTlQzMl9NSU4pIHx8IHVubGlrZWx5KGFyZyA+IFBHX0lOVDMy X01BWCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0 dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMjcyLDcgKzEy NzIsNyBAQCBpbnQ4MihQR19GVU5DVElPTl9BUkdTKQogCWludDY0CQlhcmcgPSBQR19HRVRBUkdf SU5UNjQoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnIDwgUEdfSU5UMTZfTUlOKSB8fCB1bmxpa2Vs eShhcmcgPiBQR19JTlQxNl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTEzNTUsNyArMTM1NSw3IEBAIGk4dG9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2 NAkJYXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IDApIHx8 IHVubGlrZWx5KGFyZyA+IFBHX1VJTlQzMl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0 dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVN RVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coIk9JRCBvdXQgb2YgcmFuZ2Ui KSkpOwogCi0tIAoyLjM0LjEKCg== --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0005-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0005-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtod717 RnJvbSAyODdhYjJiN2QxN2M4NTBiNjlmZjI5NWY3NzRlZDlkYTY4MTdmODRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6Mjg6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAwNS8yMl0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbmV0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2luZXQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9z cmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBp bmV0ICAgICAgIHwgY2lkciAgICAgICAgICAgICAgfCAgICAgMTcxNSB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGluZXRfdG9fY2lkciB8IGNpZHIKIGluZXQgICAgICAgfCB0ZXh0ICAgICAg ICAgICAgICB8ICAgICAgNzMwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19z aG93IHwgdGV4dAogaW5ldCAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICA3MzAgfCBh ICAgICAgICAgICB8IGYgICAgICAgICAgfCBuZXR3b3JrX3Nob3cgfCB0ZXh0CiBpbmV0ICAgICAg IHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAg ICB8IG5ldHdvcmtfc2hvdyB8IHRleHQKKDQgcm93cykKCmluZXRfdG9fY2lkciBpcyBhbHJlYWR5 IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFK Zlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQot LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrLmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbmV0d29yay5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpp bmRleCAzY2IwYWI2ODI5YS4uNjQ4YzhkOTVmNTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9uZXR3b3JrLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpA QCAtMTEzNyw3ICsxMTM3LDcgQEAgbmV0d29ya19zaG93KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlp ZiAocGdfaW5ldF9uZXRfbnRvcChpcF9mYW1pbHkoaXApLCBpcF9hZGRyKGlwKSwgaXBfbWF4Yml0 cyhpcCksCiAJCQkJCQkgdG1wLCBzaXplb2YodG1wKSkgPT0gTlVMTCkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFUSU9OKSwKIAkJCQkgZXJybXNnKCJjb3Vs ZCBub3QgZm9ybWF0IGluZXQgdmFsdWU6ICVtIikpKTsKIAotLSAKMi4zNC4xCgo= --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0006-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0006-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtod616 RnJvbSBmZWY5YjFkNmZmYjZiMWU0OGM1NTM2YWVmYzBmZDk4MWI5MTFmYTA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MTc6MTEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAwNi8yMl0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBtYWNhZGRyOCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J21hY2FkZHI4 Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBj YXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgIHBy b3NyYyAgICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t CiBtYWNhZGRyOCAgIHwgbWFjYWRkciAgICB8ICAgICA0MTI0IHwgaSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgbWFjYWRkcjh0b21hY2FkZHIgfCBtYWNhZGRyCigxIHJvdykKCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L21hYzguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWM4LmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IDA4ZTQxYmE0ZWVhLi4xYzkwM2YxNTJkZSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUwLDcgQEAgbWFjYWRkcjh0b21hY2FkZHIoUEdf RlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSAobWFjYWRkciAqKSBwYWxsb2MwKHNpemVvZihtYWNh ZGRyKSk7CiAKIAlpZiAoKGFkZHItPmQgIT0gMHhGRikgfHwgKGFkZHItPmUgIT0gMHhGRSkpCi0J CWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygibWFjYWRkcjggZGF0YSBvdXQgb2YgcmFuZ2UgdG8gY29udmVydCB0byBtYWNhZGRyIiks CiAJCQkJIGVycmhpbnQoIk9ubHkgYWRkcmVzc2VzIHRoYXQgaGF2ZSBGRiBhbmQgRkUgYXMgdmFs dWVzIGluIHRoZSAiCi0tIAoyLjM0LjEKCg== --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0004-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Disposition: attachment; filename="v15-0004-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtod918 RnJvbSBmYmM4ZjVjM2M1M2VhZmRkYzEwYjZkOGQ5YjdmMWVhMmQ2N2YzYzMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MTM6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAwNC8yMl0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdmFyeWluZyB0byBvdGhl cgogdHlwZXMgcGVyIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFy Z2V0OjpyZWd0eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMgYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQKKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSAnY2hhcmFjdGVyIHZhcnlpbmcnOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0 eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAgIHwgICAgY2FzdHRhcmdldCAgICAgfCBjYXN0ZnVuYyB8 IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCiBjaGFyYWN0ZXIgdmFy eWluZyB8IHJlZ2NsYXNzICAgICAgICAgIHwgICAgIDEwNzkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCB0ZXh0X3JlZ2NsYXNzIHwgcmVnY2xhc3MKIGNoYXJhY3RlciB2YXJ5aW5nIHwgImNo YXIiICAgICAgICAgICAgfCAgICAgIDk0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRl eHRfY2hhciAgICAgfCBjaGFyCiBjaGFyYWN0ZXIgdmFyeWluZyB8IG5hbWUgICAgICAgICAgICAg IHwgICAgIDE0MDAgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X25hbWUgICAgIHwg bmFtZQogY2hhcmFjdGVyIHZhcnlpbmcgfCB4bWwgICAgICAgICAgICAgICB8ICAgICAyODk2IHwg ZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgICB8IHhtbAogY2hhcmFjdGVy IHZhcnlpbmcgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgNjY5IHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgdmFyY2hhciAgICAgICB8IHZhcmNoYXIKKDUgcm93cykKCnRleHR0b3htbCwg dGV4dF9yZWdjbGFzcyB3YXMgcmVmYWN0b3JlZCBhcyBlcnJvciBzYWZlIGluIHByaW9yIHBhdGNo Lgp0ZXh0X2NoYXIsIHRleHRfbmFtZSBpcyBhbHJlYWR5IGVycm9yIHNhZmUuCnNvIGhlcmUgd2Ug b25seSBuZWVkIGhhbmRsZSBmdW5jdGlvbiAidmFyY2hhciIuCgpkaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2 NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFy LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCA1Y2I1YzhjNDZmOS4uMDhmMWJmNWEyNGQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtNjM0LDcgKzYzNCw3IEBAIHZhcmNoYXIoUEdfRlVO Q1RJT05fQVJHUykKIAl7CiAJCWZvciAoaSA9IG1heG1ibGVuOyBpIDwgbGVuOyBpKyspCiAJCQlp ZiAoc19kYXRhW2ldICE9ICcgJykKLQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNp bmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJIGVycm1zZygidmFsdWUgdG9vIGxvbmcgZm9y IHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoJWQpIiwKIAkJCQkJCQkJbWF4bGVuKSkpOwotLSAKMi4z NC4xCgo= --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0002-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0002-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtodb19 RnJvbSA3OGYxNTRjMGYzMGY3Y2JjMjA5OTE2MTE2NjM4YTI0NTk4NGMyYTJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTI6NTI6MTYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAwMi8yMl0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdG8gb3RoZXIgdHlwZXMg cGVyCiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJv bmFtZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3Rm dW5jIGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdjaGFyYWN0 ZXInOjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8 ICAgIGNhc3R0YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg fCAgIHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogY2hhcmFjdGVyICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICA0MDEgfCBpICAgICAg ICAgICB8IGYgICAgICAgICAgfCBydHJpbTEgICAgICB8IHRleHQKIGNoYXJhY3RlciAgfCBjaGFy YWN0ZXIgdmFyeWluZyB8ICAgICAgNDAxIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgcnRy aW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgImNoYXIiICAgICAgICAgICAgfCAgICAgIDk0 NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgIHwgY2hhcgogY2hhcmFj dGVyICB8IG5hbWUgICAgICAgICAgICAgIHwgICAgICA0MDkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBicGNoYXJfbmFtZSB8IG5hbWUKIGNoYXJhY3RlciAgfCB4bWwgICAgICAgICAgICAg ICB8ICAgICAyODk2IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgfCB4 bWwKIGNoYXJhY3RlciAgfCBjaGFyYWN0ZXIgICAgICAgICB8ICAgICAgNjY4IHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgYnBjaGFyICAgICAgfCBicGNoYXIKKDYgcm93cykKCm9ubHkgdGV4 dHRveG1sLCBicGNoYXIoUEdfRlVOQ1RJT05fQVJHUykgbmVlZCB0YWtlIGNhcmUgb2YgZXJyb3Ig aGFuZGxpbmcuCm90aGVyIGZ1bmN0aW9ucyBhbHJlYWR5IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4 alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIu YyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMgICAgICAgICAgIHwg MTggKysrKysrKysrKysrLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy94bWwuaCAgICAgICAgICAg ICAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCA1ZTdiZDkzM2Fm Yy4uMWQ4OGNkZDJjYjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAt NDU0Miw3ICs0NTQyLDcgQEAgRXhlY0V2YWxYbWxFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJF dmFsU3RlcCAqb3ApCiAKIAkJCQkqb3AtPnJlc3ZhbHVlID0gUG9pbnRlckdldERhdHVtKHhtbHBh cnNlKGRhdGEsCiAJCQkJCQkJCQkJCQkJCSB4ZXhwci0+eG1sb3B0aW9uLAotCQkJCQkJCQkJCQkJ CQkgcHJlc2VydmVfd2hpdGVzcGFjZSkpOworCQkJCQkJCQkJCQkJCQkgcHJlc2VydmVfd2hpdGVz cGFjZSwgTlVMTCkpOwogCQkJCSpvcC0+cmVzbnVsbCA9IGZhbHNlOwogCQkJfQogCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCAzZjQwYzlkYTFhMC4uNWNiNWM4YzQ2ZjkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtMzA3LDcgKzMwNyw3IEBAIGJwY2hhcihQR19GVU5D VElPTl9BUkdTKQogCQl7CiAJCQlmb3IgKGkgPSBtYXhtYmxlbjsgaSA8IGxlbjsgaSsrKQogCQkJ CWlmIChzW2ldICE9ICcgJykKLQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZv ciB0eXBlIGNoYXJhY3RlciglZCkiLAogCQkJCQkJCQkJbWF4bGVuKSkpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5j CmluZGV4IDQxZTc3NTU3MGVjLi45ZTgwMTY0NTZjZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtNjU5 LDcgKzY1OSw3IEBAIHRleHR0b3htbChQR19GVU5DVElPTl9BUkdTKQogewogCXRleHQJICAgKmRh dGEgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKIAotCVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShk YXRhLCB4bWxvcHRpb24sIHRydWUpKTsKKwlQR19SRVRVUk5fWE1MX1AoeG1scGFyc2UoZGF0YSwg eG1sb3B0aW9uLCB0cnVlLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0xMDI4LDE5ICsx MDI4LDI1IEBAIHhtbGVsZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAKIAogeG1sdHlwZSAqCi14bWxw YXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2Vy dmVfd2hpdGVzcGFjZSkKK3htbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0 aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpCiB7CiAj aWZkZWYgVVNFX0xJQlhNTAogCXhtbERvY1B0cglkb2M7CiAKIAlkb2MgPSB4bWxfcGFyc2UoZGF0 YSwgeG1sb3B0aW9uX2FyZywgcHJlc2VydmVfd2hpdGVzcGFjZSwKLQkJCQkJR2V0RGF0YWJhc2VF bmNvZGluZygpLCBOVUxMLCBOVUxMLCBOVUxMKTsKLQl4bWxGcmVlRG9jKGRvYyk7CisJCQkJCUdl dERhdGFiYXNlRW5jb2RpbmcoKSwgTlVMTCwgTlVMTCwgZXNjb250ZXh0KTsKKwlpZiAoZG9jKQor CQl4bWxGcmVlRG9jKGRvYyk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiAoeG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQlO T19YTUxfU1VQUE9SVCgpOwotCXJldHVybiBOVUxMOworCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxM CisJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCWVycm1zZygi dW5zdXBwb3J0ZWQgWE1MIGZlYXR1cmUiKSwKKwkJCWVycmRldGFpbCgiVGhpcyBmdW5jdGlvbmFs aXR5IHJlcXVpcmVzIHRoZSBzZXJ2ZXIgdG8gYmUgYnVpbHQgd2l0aCBsaWJ4bWwgc3VwcG9ydC4i KSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmggYi9z cmMvaW5jbHVkZS91dGlscy94bWwuaAppbmRleCA3MzJkYWM0N2JjNC4uYjE1MTY4YzQzMGUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L3htbC5oCkBAIC03Myw3ICs3Myw3IEBAIGV4dGVybiB4bWx0eXBlICp4bWxjb25jYXQoTGlzdCAq YXJncyk7CiBleHRlcm4geG1sdHlwZSAqeG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAkJCQkJ CSAgIGNvbnN0IERhdHVtICpuYW1lZF9hcmd2YWx1ZSwgY29uc3QgYm9vbCAqbmFtZWRfYXJnbnVs bCwKIAkJCQkJCSAgIGNvbnN0IERhdHVtICphcmd2YWx1ZSwgY29uc3QgYm9vbCAqYXJnbnVsbCk7 Ci1leHRlcm4geG1sdHlwZSAqeG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxv cHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UpOworZXh0ZXJuIHhtbHR5cGUgKnht bHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVz ZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbHBp KGNvbnN0IGNoYXIgKnRhcmdldCwgdGV4dCAqYXJnLCBib29sIGFyZ19pc19udWxsLCBib29sICpy ZXN1bHRfaXNfbnVsbCk7CiBleHRlcm4geG1sdHlwZSAqeG1scm9vdCh4bWx0eXBlICpkYXRhLCB0 ZXh0ICp2ZXJzaW9uLCBpbnQgc3RhbmRhbG9uZSk7CiBleHRlcm4gYm9vbCB4bWxfaXNfZG9jdW1l bnQoeG1sdHlwZSAqYXJnKTsKLS0gCjIuMzQuMQoK --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0001-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0001-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtodd20 RnJvbSA3MDQxNjg1MGFiMWVmMWVmODI0NGU1MWI2M2U5YmY5Y2JlMzM1MzAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6MzM6MDggKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAwMS8yMl0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaXQvdmFyYml0IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKd2hlcmUgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlw ZSA9J2JpdCc6OnJlZ3R5cGUgb3IKY2FzdHNvdXJjZTo6cmVndHlwZSA9J3ZhcmJpdCc6OnJlZ3R5 cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSAgfCBjYXN0dGFy Z2V0ICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJpdCAgICAgICAgIHwgYmln aW50ICAgICAgfCAgICAgMjA3NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50 OCB8IGludDgKIGJpdCAgICAgICAgIHwgaW50ZWdlciAgICAgfCAgICAgMTY4NCB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50NCB8IGludDQKIGJpdCAgICAgICAgIHwgYml0ICAg ICAgICAgfCAgICAgMTY4NSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdCAgICAgICB8 IGJpdAogYml0IHZhcnlpbmcgfCBiaXQgdmFyeWluZyB8ICAgICAxNjg3IHwgaSAgICAgICAgICAg fCBmICAgICAgICAgIHwgdmFyYml0ICAgIHwgdmFyYml0Cig0IHJvd3MpCgpkaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1 M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92 YXJiaXQuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCmluZGV4IDIwNWE2N2RhZmM1Li42ZTli ODA4ZTIwYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQuYwpAQCAtNDAxLDcgKzQwMSw3IEBAIGJpdChQ R19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fVkFSQklUX1AoYXJnKTsKIAogCWlmICghaXNF eHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRD SCksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyBsZW5ndGggJWQgZG9lcyBub3QgbWF0Y2ggdHlw ZSBiaXQoJWQpIiwKIAkJCQkJCVZBUkJJVExFTihhcmcpLCBsZW4pKSk7CkBAIC03NTIsNyArNzUy LDcgQEAgdmFyYml0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JFVFVSTl9WQVJCSVRfUChhcmcp OwogCiAJaWYgKCFpc0V4cGxpY2l0KQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFf UklHSFRfVFJVTkNBVElPTiksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyB0b28gbG9uZyBmb3Ig dHlwZSBiaXQgdmFyeWluZyglZCkiLAogCQkJCQkJbGVuKSkpOwpAQCAtMTU5MSw3ICsxNTkxLDcg QEAgYml0dG9pbnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQg c3RyaW5nIGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihy ZXN1bHQpICogQklUU19QRVJfQllURSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFM VUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTE2NzEsNyArMTY3MSw3IEBAIGJpdHRvaW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJ LyogQ2hlY2sgdGhhdCB0aGUgYml0IHN0cmluZyBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAoVkFS QklUTEVOKGFyZykgPiBzaXplb2YocmVzdWx0KSAqIEJJVFNfUEVSX0JZVEUpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiYmln aW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --000000000000efede3064595382e Content-Type: text/x-patch; charset="US-ASCII"; name="v15-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v15-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mizrtode21 RnJvbSA3ODY3MDI0ZjFlYzQwNWRiNmFhMGM5MWRlNzE1YmQ4NzA3NTUwZjNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjUgTm92IDIwMjUgMjA6MDc6MjggKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NSAwMy8yMl0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdG8gb3RoZXIgdHlwZXMg cGVyCiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJv bmFtZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3Rm dW5jIGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdjaGFyYWN0 ZXInOjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8 ICAgIGNhc3R0YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg fCAgIHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogY2hhcmFjdGVyICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICA0MDEgfCBpICAgICAg ICAgICB8IGYgICAgICAgICAgfCBydHJpbTEgICAgICB8IHRleHQKIGNoYXJhY3RlciAgfCBjaGFy YWN0ZXIgdmFyeWluZyB8ICAgICAgNDAxIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgcnRy aW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgImNoYXIiICAgICAgICAgICAgfCAgICAgIDk0 NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgIHwgY2hhcgogY2hhcmFj dGVyICB8IG5hbWUgICAgICAgICAgICAgIHwgICAgICA0MDkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBicGNoYXJfbmFtZSB8IG5hbWUKIGNoYXJhY3RlciAgfCB4bWwgICAgICAgICAgICAg ICB8ICAgICAyODk2IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgfCB4 bWwKIGNoYXJhY3RlciAgfCBjaGFyYWN0ZXIgICAgICAgICB8ICAgICAgNjY4IHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgYnBjaGFyICAgICAgfCBicGNoYXIKKDYgcm93cykKCm9ubHkgdGV4 dHRveG1sLCBicGNoYXIoUEdfRlVOQ1RJT05fQVJHUykgbmVlZCB0YWtlIGNhcmUgb2YgZXJyb3Ig aGFuZGxpbmcuCm90aGVyIGZ1bmN0aW9ucyBhbHJlYWR5IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4 alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cv bmFtZXNwYWNlLmMgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9yZWdwcm9jLmMgfCAxMyArKysrKystLQogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3ZhcmxlbmEuYyB8IDEwICsrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5j ICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIHwgIDYgKysrKwog c3JjL2luY2x1ZGUvdXRpbHMvdmFybGVuYS5oICAgICB8ICAxICsKIDYgZmlsZXMgY2hhbmdlZCwg NzMgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMK aW5kZXggZDIzNDc0ZGE0ZmIuLmJlZjJkZTVkZDM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMK QEAgLTQ0MCw2ICs0NDAsMTYgQEAgT2lkCiBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3Qg UmFuZ2VWYXIgKnJlbGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAkJCQkJCSB1aW50MzIgZmxh Z3MsCiAJCQkJCQkgUmFuZ2VWYXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpjYWxs YmFja19hcmcpCit7CisJcmV0dXJuIFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUocmVsYXRp b24sIGxvY2ttb2RlLCBmbGFncywKKwkJCQkJCQkJCQljYWxsYmFjaywgY2FsbGJhY2tfYXJnLAor CQkJCQkJCQkJCU5VTEwpOworfQorCitPaWQKK1JhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUo Y29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwgdWludDMyIGZsYWdz LAorCQkJCQkJCSBSYW5nZVZhckdldFJlbGlkQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQgKmNhbGxi YWNrX2FyZywKKwkJCQkJCQkgTm9kZSAqZXNjb250ZXh0KQogewogCXVpbnQ2NAkJaW52YWxfY291 bnQ7CiAJT2lkCQkJcmVsSWQ7CkBAIC00NTYsNyArNDY2LDcgQEAgUmFuZ2VWYXJHZXRSZWxpZEV4 dGVuZGVkKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJaWYg KHJlbGF0aW9uLT5jYXRhbG9nbmFtZSkKIAl7CiAJCWlmIChzdHJjbXAocmVsYXRpb24tPmNhdGFs b2duYW1lLCBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQotCQkJZXJlcG9y dChFUlJPUiwKKwkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAogCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCSBlcnJtc2coImNyb3NzLWRh dGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogXCIlcy4lcy4lc1wiIiwKIAkJ CQkJCQlyZWxhdGlvbi0+Y2F0YWxvZ25hbWUsIHJlbGF0aW9uLT5zY2hlbWFuYW1lLApAQCAtNTEz LDcgKzUyMyw3IEBAIFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVs YXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAogCQkJCQkgKiByZXR1cm4gSW52YWxpZE9pZC4KIAkJ CQkJICovCiAJCQkJCWlmIChuYW1lc3BhY2VJZCAhPSBteVRlbXBOYW1lc3BhY2UpCi0JCQkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRPaWQsCiAJCQkJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9UQUJMRV9ERUZJTklUSU9OKSwKIAkJCQkJCQkJ IGVycm1zZygidGVtcG9yYXJ5IHRhYmxlcyBjYW5ub3Qgc3BlY2lmeSBhIHNjaGVtYSBuYW1lIikp KTsKIAkJCQl9CkBAIC01OTMsMTMgKzYwMywyMyBAQCBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQo Y29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAkJewogCQkJaW50 CQkJZWxldmVsID0gKGZsYWdzICYgUlZSX1NLSVBfTE9DS0VEKSA/IERFQlVHMSA6IEVSUk9SOwog Ci0JCQlpZiAocmVsYXRpb24tPnNjaGVtYW5hbWUpCi0JCQkJZXJlcG9ydChlbGV2ZWwsCisJCQlp ZiAocmVsYXRpb24tPnNjaGVtYW5hbWUgJiYgZWxldmVsID09IERFQlVHMSkKKwkJCQllcmVwb3J0 KERFQlVHMSwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfTE9DS19OT1RfQVZBSUxBQkxFKSwKIAkJ CQkJCSBlcnJtc2coImNvdWxkIG5vdCBvYnRhaW4gbG9jayBvbiByZWxhdGlvbiBcIiVzLiVzXCIi LAogCQkJCQkJCQlyZWxhdGlvbi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJlbG5hbWUpKSk7Ci0J CQllbHNlCi0JCQkJZXJlcG9ydChlbGV2ZWwsCisJCQllbHNlIGlmIChyZWxhdGlvbi0+c2NoZW1h bmFtZSAmJiBlbGV2ZWwgPT0gRVJST1IpCisJCQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRP aWQsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfTE9DS19OT1RfQVZBSUxBQkxFKSwKKwkJCQkJCWVy cm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9uIFwiJXMuJXNcIiIsCisJCQkJ CQkJICAgcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1lKSk7CisJCQllbHNl IGlmIChlbGV2ZWwgPT0gREVCVUcxKQorCQkJCWVyZXBvcnQoREVCVUcxLAorCQkJCQkJZXJyY29k ZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJCQllcnJtc2coImNvdWxkIG5vdCBv YnRhaW4gbG9jayBvbiByZWxhdGlvbiBcIiVzXCIiLAorCQkJCQkJCSAgIHJlbGF0aW9uLT5yZWxu YW1lKSk7CisJCQllbHNlIGlmIChlbGV2ZWwgPT0gRVJST1IpCisJCQkJZXJldHVybihlc2NvbnRl eHQsIEludmFsaWRPaWQsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJM RSksCiAJCQkJCQkgZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIl c1wiIiwKIAkJCQkJCQkJcmVsYXRpb24tPnJlbG5hbWUpKSk7CkBAIC02MjYsMTMgKzY0NiwyMyBA QCBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLCBMT0NL TU9ERSBsb2NrbW9kZSwKIAl7CiAJCWludAkJCWVsZXZlbCA9IG1pc3Npbmdfb2sgPyBERUJVRzEg OiBFUlJPUjsKIAotCQlpZiAocmVsYXRpb24tPnNjaGVtYW5hbWUpCi0JCQllcmVwb3J0KGVsZXZl bCwKKwkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lICYmIGVsZXZlbCA9PSBERUJVRzEpCisJCQll cmVwb3J0KERFQlVHMSwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfVEFCTEUpLAog CQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzLiVzXCIgZG9lcyBub3QgZXhpc3QiLAogCQkJCQkJ CXJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlvbi0+cmVsbmFtZSkpKTsKLQkJZWxzZQotCQkJ ZXJlcG9ydChlbGV2ZWwsCisJCWVsc2UgaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lICYmIGVsZXZl bCA9PSBFUlJPUikKKwkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAorCQkJCQllcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX1RBQkxFKSwKKwkJCQkJZXJybXNnKCJyZWxhdGlvbiBcIiVz LiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJICAgcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJl bGF0aW9uLT5yZWxuYW1lKSk7CisJCWVsc2UgaWYgKGVsZXZlbCA9PSBERUJVRzEpCisJCQllcmVw b3J0KERFQlVHMSwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9UQUJMRSksCisJCQkJ CWVycm1zZygicmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCSAgIHJlbGF0 aW9uLT5yZWxuYW1lKSk7CisJCWVsc2UgaWYgKGVsZXZlbCA9PSBFUlJPUikKKwkJCWVyZXR1cm4o ZXNjb250ZXh0LCBJbnZhbGlkT2lkLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9U QUJMRSksCiAJCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCiAJ CQkJCQkJcmVsYXRpb24tPnJlbG5hbWUpKSk7CkBAIC0zNjIyLDYgKzM2NTIsMTIgQEAgZ2V0X25h bWVzcGFjZV9vaWQoY29uc3QgY2hhciAqbnNwbmFtZSwgYm9vbCBtaXNzaW5nX29rKQogICovCiBS YW5nZVZhciAqCiBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3QoY29uc3QgTGlzdCAqbmFtZXMpCit7 CisJcmV0dXJuIG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdFNhZmUobmFtZXMsIE5VTEwpOworfQor CitSYW5nZVZhciAqCittYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3RTYWZlKGNvbnN0IExpc3QgKm5h bWVzLCBOb2RlICplc2NvbnRleHQpCiB7CiAJUmFuZ2VWYXIgICAqcmVsID0gbWFrZVJhbmdlVmFy KE5VTEwsIE5VTEwsIC0xKTsKIApAQCAtMzY0MCw3ICszNjc2LDcgQEAgbWFrZVJhbmdlVmFyRnJv bU5hbWVMaXN0KGNvbnN0IExpc3QgKm5hbWVzKQogCQkJcmVsLT5yZWxuYW1lID0gc3RyVmFsKGx0 aGlyZChuYW1lcykpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6Ci0JCQllcmVwb3J0KEVSUk9SLAor CQkJZXJldHVybihlc2NvbnRleHQsIE5VTEwsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFY X0VSUk9SKSwKIAkJCQkJIGVycm1zZygiaW1wcm9wZXIgcmVsYXRpb24gbmFtZSAodG9vIG1hbnkg ZG90dGVkIG5hbWVzKTogJXMiLAogCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9yZWdwcm9jLmMKaW5kZXggZTVjMjI0NmYyYzkuLjU5Y2M1MDhmODA1IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9yZWdwcm9jLmMKQEAgLTE5MDEsMTIgKzE5MDEsMTkgQEAgdGV4dF9yZWdjbGFz cyhQR19GVU5DVElPTl9BUkdTKQogCXRleHQJICAgKnJlbG5hbWUgPSBQR19HRVRBUkdfVEVYVF9Q UCgwKTsKIAlPaWQJCQlyZXN1bHQ7CiAJUmFuZ2VWYXIgICAqcnY7CisJTGlzdAkgICAqbmFtZWxp c3Q7CiAKLQlydiA9IG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdCh0ZXh0VG9RdWFsaWZpZWROYW1l TGlzdChyZWxuYW1lKSk7CisJbmFtZWxpc3QgPSB0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUo cmVsbmFtZSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2lu Zm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJcnYgPSBtYWtlUmFuZ2VWYXJG cm9tTmFtZUxpc3RTYWZlKG5hbWVsaXN0LCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAkv KiBXZSBtaWdodCBub3QgZXZlbiBoYXZlIHBlcm1pc3Npb25zIG9uIHRoaXMgcmVsYXRpb247IGRv bid0IGxvY2sgaXQuICovCi0JcmVzdWx0ID0gUmFuZ2VWYXJHZXRSZWxpZChydiwgTm9Mb2NrLCBm YWxzZSk7Ci0KKwlyZXN1bHQgPSBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRTYWZlKHJ2LCBOb0xv Y2ssIDAsIE5VTEwsIE5VTEwsCisJCQkJCQkJCQkJICBmY2luZm8tPmNvbnRleHQpOwogCVBHX1JF VFVSTl9PSUQocmVzdWx0KTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3ZhcmxlbmEuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKaW5kZXggZjIwMmI4 ZGY0ZTIuLmM0YjhmNjFmNWQ2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFy bGVuYS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKQEAgLTI2OTUsNiAr MjY5NSwxMiBAQCBuYW1lX3RleHQoUEdfRlVOQ1RJT05fQVJHUykKICAqLwogTGlzdCAqCiB0ZXh0 VG9RdWFsaWZpZWROYW1lTGlzdCh0ZXh0ICp0ZXh0dmFsKQoreworCXJldHVybiB0ZXh0VG9RdWFs aWZpZWROYW1lTGlzdFNhZmUodGV4dHZhbCwgTlVMTCk7Cit9CisKK0xpc3QgKgordGV4dFRvUXVh bGlmaWVkTmFtZUxpc3RTYWZlKHRleHQgKnRleHR2YWwsIE5vZGUgKmVzY29udGV4dCkKIHsKIAlj aGFyCSAgICpyYXduYW1lOwogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKQEAgLTI3MDYsMTIgKzI3 MTIsMTIgQEAgdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3QodGV4dCAqdGV4dHZhbCkKIAlyYXduYW1l ID0gdGV4dF90b19jc3RyaW5nKHRleHR2YWwpOwogCiAJaWYgKCFTcGxpdElkZW50aWZpZXJTdHJp bmcocmF3bmFtZSwgJy4nLCAmbmFtZWxpc3QpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJu KGVzY29udGV4dCwgTklMLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9OQU1FKSwKIAkJ CQkgZXJybXNnKCJpbnZhbGlkIG5hbWUgc3ludGF4IikpKTsKIAogCWlmIChuYW1lbGlzdCA9PSBO SUwpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZXNjb250ZXh0LCBOSUwsCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX05BTUUpLAogCQkJCSBlcnJtc2coImludmFsaWQgbmFtZSBz eW50YXgiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMKaW5kZXggOWU4MDE2NDU2Y2UuLjhkZTFmMWZjNzQx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3htbC5jCkBAIC0xMDQzLDcgKzEwNDMsNyBAQCB4bWxwYXJzZSh0ZXh0ICpk YXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2VydmVfd2hpdGVzcGFj ZSwgTm9kZQogCiAJcmV0dXJuICh4bWx0eXBlICopIGRhdGE7CiAjZWxzZQotCWVyZXR1cm4oZXNj b250ZXh0LCBOVUxMCisJZXJldHVybihlc2NvbnRleHQsIE5VTEwsCiAJCQllcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCWVycm1zZygidW5zdXBwb3J0ZWQgWE1MIGZl YXR1cmUiKSwKIAkJCWVycmRldGFpbCgiVGhpcyBmdW5jdGlvbmFsaXR5IHJlcXVpcmVzIHRoZSBz ZXJ2ZXIgdG8gYmUgYnVpbHQgd2l0aCBsaWJ4bWwgc3VwcG9ydC4iKSk7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1l c3BhY2UuaAppbmRleCBmMTQyM2YyOGMzMi4uYWI2MWFmNTVkZGMgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1l c3BhY2UuaApAQCAtMTAzLDYgKzEwMywxMSBAQCBleHRlcm4gT2lkCVJhbmdlVmFyR2V0UmVsaWRF eHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sCiAJCQkJCQkJCQkgTE9DS01PREUgbG9j a21vZGUsIHVpbnQzMiBmbGFncywKIAkJCQkJCQkJCSBSYW5nZVZhckdldFJlbGlkQ2FsbGJhY2sg Y2FsbGJhY2ssCiAJCQkJCQkJCQkgdm9pZCAqY2FsbGJhY2tfYXJnKTsKK2V4dGVybiBPaWQgUmFu Z2VWYXJHZXRSZWxpZEV4dGVuZGVkU2FmZShjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sCisJCQkJ CQkJCQkJTE9DS01PREUgbG9ja21vZGUsIHVpbnQzMiBmbGFncywKKwkJCQkJCQkJCQlSYW5nZVZh ckdldFJlbGlkQ2FsbGJhY2sgY2FsbGJhY2ssCisJCQkJCQkJCQkJdm9pZCAqY2FsbGJhY2tfYXJn LAorCQkJCQkJCQkJCU5vZGUgKmVzY29udGV4dCk7CiBleHRlcm4gT2lkCVJhbmdlVmFyR2V0Q3Jl YXRpb25OYW1lc3BhY2UoY29uc3QgUmFuZ2VWYXIgKm5ld1JlbGF0aW9uKTsKIGV4dGVybiBPaWQJ UmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKFJhbmdlVmFyICpyZWxhdGlvbiwK IAkJCQkJCQkJCQkJCSBMT0NLTU9ERSBsb2NrbW9kZSwKQEAgLTE2OCw2ICsxNzMsNyBAQCBleHRl cm4gT2lkCUxvb2t1cENyZWF0aW9uTmFtZXNwYWNlKGNvbnN0IGNoYXIgKm5zcG5hbWUpOwogZXh0 ZXJuIHZvaWQgQ2hlY2tTZXROYW1lc3BhY2UoT2lkIG9sZE5zcE9pZCwgT2lkIG5zcE9pZCk7CiBl eHRlcm4gT2lkCVF1YWxpZmllZE5hbWVHZXRDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBMaXN0ICpu YW1lcywgY2hhciAqKm9iam5hbWVfcCk7CiBleHRlcm4gUmFuZ2VWYXIgKm1ha2VSYW5nZVZhckZy b21OYW1lTGlzdChjb25zdCBMaXN0ICpuYW1lcyk7CitleHRlcm4gUmFuZ2VWYXIgKm1ha2VSYW5n ZVZhckZyb21OYW1lTGlzdFNhZmUoY29uc3QgTGlzdCAqbmFtZXMsIE5vZGUgKmVzY29udGV4dCk7 CiBleHRlcm4gY2hhciAqTmFtZUxpc3RUb1N0cmluZyhjb25zdCBMaXN0ICpuYW1lcyk7CiBleHRl cm4gY2hhciAqTmFtZUxpc3RUb1F1b3RlZFN0cmluZyhjb25zdCBMaXN0ICpuYW1lcyk7CiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaCBiL3NyYy9pbmNsdWRlL3V0aWxz L3ZhcmxlbmEuaAppbmRleCBkYjlmZGY3Mjk0MS4uMGNmMDFhZTUyODEgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy92YXJsZW5h LmgKQEAgLTI3LDYgKzI3LDcgQEAgZXh0ZXJuIGludAl2YXJzdHJfbGV2ZW5zaHRlaW5fbGVzc19l cXVhbChjb25zdCBjaGFyICpzb3VyY2UsIGludCBzbGVuLAogCQkJCQkJCQkJCSAgaW50IGluc19j LCBpbnQgZGVsX2MsIGludCBzdWJfYywKIAkJCQkJCQkJCQkgIGludCBtYXhfZCwgYm9vbCB0cnVz dGVkKTsKIGV4dGVybiBMaXN0ICp0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCh0ZXh0ICp0ZXh0dmFs KTsKK2V4dGVybiBMaXN0ICp0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUodGV4dCAqdGV4dHZh bCwgTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBib29sIFNwbGl0SWRlbnRpZmllclN0cmluZyhj aGFyICpyYXdzdHJpbmcsIGNoYXIgc2VwYXJhdG9yLAogCQkJCQkJCQkgIExpc3QgKipuYW1lbGlz dCk7CiBleHRlcm4gYm9vbCBTcGxpdERpcmVjdG9yaWVzU3RyaW5nKGNoYXIgKnJhd3N0cmluZywg Y2hhciBzZXBhcmF0b3IsCi0tIAoyLjM0LjEKCg== --000000000000efede3064595382e--