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 1wRQSD-002Kl7-1X for pgsql-hackers@arkaria.postgresql.org; Mon, 25 May 2026 08:14:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wRQSB-000kQL-1P for pgsql-hackers@arkaria.postgresql.org; Mon, 25 May 2026 08:14:28 +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 1wRQSA-000kQD-2K for pgsql-hackers@lists.postgresql.org; Mon, 25 May 2026 08:14:28 +0000 Received: from mail-vk1-xa32.google.com ([2607:f8b0:4864:20::a32]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wRQS7-00000000fjc-0qM5 for pgsql-hackers@lists.postgresql.org; Mon, 25 May 2026 08:14:26 +0000 Received: by mail-vk1-xa32.google.com with SMTP id 71dfb90a1353d-58d2174a2b4so329290e0c.3 for ; Mon, 25 May 2026 01:14:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779696862; cv=none; d=google.com; s=arc-20240605; b=QZAAvSPgBLiARQ4z0BLu43xU1sVPl2B62pl7qyfhu8b9kyIRDVYag99MwCmOn8/0l9 /ILpy08/B8HwxWDLUW5X5TvGlmXVLPqY2RsKVNam++C1YItY7XJsYiAfsks12ZLhG02G 1ZM0leP7dVn2twPyZIi4Dyb7VgBj3MKoxq89ffTLq8/rI/TmBobmZ9NSjyu0FBzn8+jN OjB6VM0PpqKRBKg3zo7NkFt/NvNSG1C5B3zw1z1u31m3Lq9IFOl2JexTltRQc0iaD7f+ mvIkfdJrf79xqLJUuJM23ZYyeqayZqDVzXJMKw08u91Mx2pat+1w+ea33pa2ZkYdH/sF BceQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=KHCPYVPQ9TTVHjvzuZFVLMuMVYgZ5EyuGihXnKEkHvc=; fh=jA1y0o48KsEr1ncbKeaqgkONBUmAh+4Dc8UAqTSPpFs=; b=ZO2DO7MrTh++NvdiFt61NYPP/ivrX3it0CCMn3ze6iCmeh0eNsCT+WQ37rs146b522 fjjcYuJC0OQwk8nuAPg4bwDUZNlRLJCA6WDVovyFo7cU0irLRbm9vFHlQxl9hMLtzhfz t0+3uIhjnN/eUOemvXV39Ruae3yFBn9SJV5wN/nY90SfYGEQbcafrX8wRvmVNdQSbFIV nXreHIfBuxSGuR7YmgHz/cJ8Wqiqhi0DqMtN/Z+PVyqNJyaBVIeRkaLRBK6hCba0tP91 FY2KRynYri/wSNUCTlZJlzIkm330ameZghmPEB8ogf4MediMJ7sNmcFrsdX2DUTgkoqE +sfQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779696862; x=1780301662; 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=KHCPYVPQ9TTVHjvzuZFVLMuMVYgZ5EyuGihXnKEkHvc=; b=V3+yvoGwJurNmcJBxV6D9j1NEHdgiAeFnSz4rZzL5VUv1mGsaLlUudUfWjBBrSrvkB KweG3jmPx7qCL4BoL8wvXZaV75f4Nn6YQ4r/T0bx21geH2+vyQMkyiMqbBmNXqKXYFVw MEJHJ3GqaDMs+rmDD0UVsSBtbzyM67uXxs9plG/kKxf2kvQ2qSFpV4kEWOmNcvnO4a++ Vn01Jwg7D+KxzKuNawZgsoUjnVafUyXaBM1xPojrxjs61COS19TIeQU0iMs8d7Y0iGN7 T+MtKs8X9i12SO1vp5KojsDRQUVEeNsPFCpQnDLB5lD39SwN6KcwIbZPyrYn5sb9i43w k1dA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779696862; x=1780301662; 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=KHCPYVPQ9TTVHjvzuZFVLMuMVYgZ5EyuGihXnKEkHvc=; b=MZFJ+O1A4NmcdhvZoeHW/y5/TNekyd/dbshXUnE3XoPR5pdlVm0gi4GHZhY+qm4od0 LJfP5mX3nnpP38DIHb3J2dS1WBUSngeXroARMJfJ97zMqH4jWPtXMm8XPLScZCp2zK9H YZPAFT0JtMyUbNXAGU3x+DtXOAW7hhcL/hyAghpWdJqkH1rJlDOkeXJ/OSR1J2Zw21f8 v8uc13Az7gzPLXGP+ixMvavlv9EMPOiAtB308Tg2l7eJ3N6u5EE0CKC5UyD9T+qRS+eB Kys0d6TRuf0V5S8y3VVyoYioqxrJOWgQhLrhiEal6mDgE8sYytqr+l//gUPzUV3VerYQ sIIQ== X-Gm-Message-State: AOJu0YwV7V/3qyVKuiXKWJmIBTzUMgMu4PoDHv/33Ws+ucYrXKqpFNyk bR6FoYfttEZ6T+0OQAjL4fs+hYlOxg0qVwpTW7+ruQh3Avj/pOdrn5OwjgMislxL+RBhMPljok+ uu+kN9LojX1TqBpcfJEJNVLNkyE+jbtQ= X-Gm-Gg: Acq92OFuSoxcvJnLUAjKJEGA4thDz+I7DHZBB7rkEzUCrAmq74V69aju5gFzMADTY4T bQH31rk3m4iP/n7H/NldHxmLUZpsXlt/ioSGVO6tWQra9fnH8Ph0qJn8wQaSRLfimlgrNarO0m7 jmtUTj9Tc7f4aqrZNyJjkQrJAnCQ5k8QC+XqGjT6xOz6S3ODWrBSPQ73mq4RTbCTJbzKEdHdu5F TZtyctyhgOo8wbAyT+rgrGxucMn4UsqJ2HQQyC1nDMRfW5ecxQWUnc4c2FqGBMeIk+TBJ+HNi4b jau8f5tWXkn7VzHoBd9unSnIiv1iFRHewCK/zcKnCILgb4mBv8uWd0rBsXvyfHTKpH5OUIixiYi zsn/FSOBnAMfNi8O+OeNtP8WUjtg5EzQkqXQCQK1yr1/eb1YbPLIiQETFiI6idp8pXCVtaO5A2k RwipPm5mFP9YxausGqpgzAdw== X-Received: by 2002:a05:6122:4587:b0:577:51e4:ef1e with SMTP id 71dfb90a1353d-586616414fcmr6541380e0c.9.1779696861533; Mon, 25 May 2026 01:14:21 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: jian he Date: Mon, 25 May 2026 16:13:44 +0800 X-Gm-Features: AVHnY4JTucDzTLUuFtM_W8n_cY2QHIl8mjcGUMLYKdifODAVLBnzvl-QMRTU-HM Message-ID: Subject: Re: on_error table, saving error info to a table To: Zsolt Parragi Cc: pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000003d729406529ff7c2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003d729406529ff7c2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, May 15, 2026 at 7:32=E2=80=AFPM Zsolt Parragi wrote: > > > I am not sure. > > Should we produce the NOTICE message below for the above test case? > > +NOTICE: 5 rows were saved to table "err_tbl2" due to data type incompa= tibility > > but because of the trigger, err_tbl2 has zero rows. > > I am also not sure about the exact details, however silently dropping > rows from both the target and error table seems wrong to me, so I > would definitely add some output about this happening. > With v13, I have added: + + Triggers on error_saving_table + will be fired. Therefore, the NOTICE message rega= rding + rows inserted into error_saving_table + may differ from what is actually being inserted. + > + /* Prepare to build the result tuple */ > + TupleTableSlot *myslot =3D ExecGetReturni= ngSlot(estate, > + = mtstate->resultRelInfo); > > > Is reusing the returning slot for this the proper way to do it? I'm > not saying that it's wrong, but I'm unsure about this. Searching the codebase for ExecGetReturningSlot or ri_ReturningSlot shows t= hat this is its only call site for CopyFromState->error_rel (Note that in ExecInsert, resultRelInfo->ri_projectReturning is NULL for the CopyFromState->error_rel). In ExecInsert, we also have these comments: --------- * Using ExecGetReturningSlot() to store the tuple for the * recheck isn't that pretty, but we can't trivially use * the input slot, because it might not be of a compatible * type. As there's no conflicting usage of * ExecGetReturningSlot() in the DO NOTHING case... --------- Therefore I think it's safe to reuse ResultRelInfo->ri_ReturningSlot. Regarding the trigger behavior, with v13: Statement-level and row-level triggers will fire for every error record insertion, which behaves very similarly to ExecForPortionOfLeftovers. I have attached version 13, which should resolve the rest of the issues you raised. -- jian https://www.enterprisedb.com/ --0000000000003d729406529ff7c2 Content-Type: text/x-patch; charset="UTF-8"; name="v13-0002-COPY-FROM-on_error-table-error_table-errtbl.patch" Content-Disposition: attachment; filename="v13-0002-COPY-FROM-on_error-table-error_table-errtbl.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpkxih8u0 RnJvbSBjNjZiNzQ4NDMxNWVjZTQ3YTkwNWVmYWUzM2JhODhjZTlmZmEyZTgxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjUgTWF5IDIwMjYgMTY6MDU6NTIgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAyLzJdIENPUFkgRlJPTSAob25fZXJyb3IgdGFibGUsIGVycm9yX3RhYmxlIGVycnRibCkKClRo ZSBDT1BZIHN5bnRheCBpcyB7b25fZXJyb3IgdGFibGUsIGVycm9yX3RhYmxlICd5b3VyX2RlZmlu ZWRfZXJyb3Jfc2F2aW5nX3RibCd9LgpUaGUgZXJyb3Jfc2F2aW5nX3RibCBtdXN0IGJlIGEgdHlw ZWQgdGFibGUsIGJhc2VkIG9uIGludGVybmFsIHR5cGUKcGdfY2F0YWxvZy5jb3B5X2Vycm9yX3Nh dmluZy4gIEEgcHJlbGltaW5hcnkgbG9jayBjaGVjayBpcyBhbHNvIHBlcmZvcm1lZCBvbiB0aGUK ZXJyb3Itc2F2aW5nIHRhYmxlIHRvIGVuc3VyZSB0aGF0IGluc2VydHMgaW50byBpdCB3aWxsIG5v dCBibG9jay4KCldoZW4gYW4gZXJyb3Igb2NjdXJzLCB3ZSByZWNvcmQgdGhlIGVycm9yIG1ldGFk YXRhIGFuZCBpbnNlcnQgaXQgaW50byB0aGUKZXJyb3Jfc2F2aW5nX3RibCwgdGhlbiBwcm9jZWVk IHRvIHRoZSBuZXh0IHJvdy4gQWx0aG91Z2ggdGhlIGVycm9yX3NhdmluZ190YmwKbWF5IG5vdCBj YXB0dXJlIGluZm9ybWF0aW9uIGZvciBldmVyeSBpbnZhbGlkIGNvbHVtbiBpbiBlYWNoIHJvdywg aXQgcmV0YWlucyB0aGUKcmF3X2ZpZWxkX3ZhbHVlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZnVy dGhlciBpbnZlc3RpZ2F0aW9uLgoKdGhlIGJ1aWxkLWluIHR5cGU6IHBnX2NhdGFsb2cuY29weV9l cnJvcl9zYXZpbmcgZGVmaW5pdGlvbiBpcwpDUkVBVEUgVFlQRSBjb3B5X2Vycm9yX3NhdmluZyBB UwooCnVzZXJpZCAgICBvaWQsCmNvcHlfdGJsICBvaWQsCmZpbGVuYW1lICB0ZXh0IENPTExBVEUg IkMiLApsaW5lbm8gICAgYmlnaW50LApsaW5lICAgICAgdGV4dCBDT0xMQVRFICJDIiwKY29sbmFt ZSAgIHRleHQgQ09MTEFURSAiQyIsCnJhd19maWVsZF92YWx1ZSB0ZXh0IENPTExBVEUgIkMiLApl cnJfbWVzc2FnZSAgICAgdGV4dCBDT0xMQVRFICJDIiwKZXJyX2RldGFpbCAgICAgIHRleHQgQ09M TEFURSAiQyIsCmVycm9yY29kZSAgICAgICB0ZXh0IENPTExBVEUgIkMiCik7CgpJdCdzIGRlY2xh cmVkIGluIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX2Z1bmN0aW9ucy5zcWwuCklmIGl0J3Mg Z29pbmcgdG8gY2hhbmdlLCB3aGljaCBtYXkgY2F1c2UgcG90ZW50aWFsIHVwZ3JhZGUgaXNzdWUs IHRvIGF2b2lkIHRoYXQKd2UgbWF5IG5lZWQgYmUgc3VyZSB0aGF0IHRoaXMgd2lsbCB1bmxpa2Vs eSB0byBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4KClRPRE86IFNob3VsZCB3ZSBhbHNvIGFkZCBmaWVs ZCAoc3RhcnR0aW1lIHRpbWVzdGFtcHR6KSB0byBjb3B5X2Vycm9yX3NhdmluZyB0bwppbmRpY2F0 ZSB0aGUgdGltZSB3aGVuIHRoaXMgZXJyb3IgcmVjb3JkIHdhcyBpbnNlcnRlZC4KCnJlZmVyZW5j ZTogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4SGk1M09wR1lQQWU2U2RDYjRtPS0rSDhMKzdM RGJVV3ZUaUpwPVY0WVlFcUFAbWFpbC5nbWFpbC5jb20KcmVmZXJlbmNlOiBodHRwczovL3Bvc3Rn ci5lcy9tLzc1MjY3Mi4xNjk5NDc0MzM2JTQwc3NzLnBnaC5wYS51cwpkaXNjdXNzaW9uOiBodHRw czovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhIX09KcFZyYT0wYzRvdzhmYnhIajdoZU1jVmFUTkVQYTV2 QXVyU2VOQS02UUBtYWlsLmdtYWlsLmNvbQpjb21taXRmZXN0IGVudHJ5OiBodHRwczovL2NvbW1p dGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNDgxNwotLS0KIGRvYy9zcmMvc2dtbC9kYXRhdHlw ZS5zZ21sICAgICAgICAgICAgICAgfCAxMDQgKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvY29w eS5zZ21sICAgICAgICAgICAgICAgfCAgNTAgKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0 ZW1fZnVuY3Rpb25zLnNxbCB8ICAxMyArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMgICAg ICAgICAgICAgIHwgIDIzICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jICAgICAg ICAgIHwgMzA2ICsrKysrKysrKysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy9j b3B5ZnJvbXBhcnNlLmMgICAgIHwgMTA1ICsrKysrKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55ICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaCAg ICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weWZyb21faW50ZXJu YWwuaCB8ICAgOSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkub3V0ICAgICAgIHwg ICA2ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0ICAgICAgfCAyMDEgKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5LnNxbCAgICAgICAgICAgIHwg ICA5ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbCAgICAgICAgICAgfCAxNTAgKysr KysrKysrKysKIDEzIGZpbGVzIGNoYW5nZWQsIDk2OCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbCBiL2RvYy9zcmMv c2dtbC9kYXRhdHlwZS5zZ21sCmluZGV4IGQ4ZDkxNjc4ZTg2Li4zNTZiNzQ4NTI4OCAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RhdGF0 eXBlLnNnbWwKQEAgLTUxMTYsNiArNTExNiwxMTAgQEAgV0hFUkUgLi4uCiAgICA8L3BhcmE+CiAg IDwvc2VjdDE+CiAKKyAgPHNlY3QxIGlkPSJkYXRhdHlwZS1jb3B5X2Vycm9yX3NhdmluZyI+Cisg ICA8dGl0bGU+PHR5cGU+Y29weV9lcnJvcl9zYXZpbmc8L3R5cGU+IFR5cGU8L3RpdGxlPgorICAg PGluZGV4dGVybSB6b25lPSJkYXRhdHlwZS1jb3B5X2Vycm9yX3NhdmluZyI+CisgICAgPHByaW1h cnk+Y29weV9lcnJvcl9zYXZpbmc8L3ByaW1hcnk+CisgICA8L2luZGV4dGVybT4KKworICAgPHBh cmE+CisgICAgVGhlIGJ1aWx0LWluIGNvbXBvc2l0ZSB0eXBlIDx0eXBlPmNvcHlfZXJyb3Jfc2F2 aW5nPC90eXBlPiBpcyB1c2VkIGJ5IHRoZQorICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jb3B5Ij48 Y29tbWFuZD5DT1BZIEZST008L2NvbW1hbmQ+PC9saW5rPiBjb21tYW5kLgorICAgIEl0IGNvbnRh aW5zIHRoZSBmb2xsb3dpbmcgZmllbGRzLCB3aGljaCBhcmUgdXNlZCB0byBzdG9yZSBpbmZvcm1h dGlvbiB3aGVuIDxjb21tYW5kPkNPUFkgRlJPTTwvY29tbWFuZD4KKyAgICBlbmNvdW50ZXJzIGFu IGVycm9yIGNvbnZlcnRpbmcgYSBjb2x1bW7igJlzIGlucHV0IHZhbHVlIHRvIGl0cyBkYXRhIHR5 cGUuCisgIDwvcGFyYT4KKworICAgPHBhcmE+Cis8aW5mb3JtYWx0YWJsZT4KKyAgICA8dGdyb3Vw IGNvbHM9IjMiPgorICAgICA8dGhlYWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5Db2x1 bW4gbmFtZTwvZW50cnk+CisgICAgICAgPGVudHJ5PkRhdGEgdHlwZTwvZW50cnk+CisgICAgICAg PGVudHJ5PkRlc2NyaXB0aW9uPC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICA8L3RoZWFkPgor CisgICAgICA8dGJvZHk+CisgICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+IDxsaXRlcmFsPnVz ZXJpZDwvbGl0ZXJhbD4gPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHR5cGU+b2lkPC90eXBlPjwv ZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSA8Y29tbWFuZD5DT1BZIEZST008L2NvbW1hbmQ+IG9w ZXJhdGlvbiB1c2VyLgorICAgICAgIFJlZmVyZW5jZSA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBn LWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVj dGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+LAorICAgICAgIGhvd2V2ZXIgdGhlcmUgaXMgbm8gaGFy ZCBkZXBlbmRlbmN5IHdpdGggY2F0YWxvZyA8bGl0ZXJhbD5wZ19hdXRoaWQ8L2xpdGVyYWw+Lgor ICAgICAgIElmIHRoZSBjb3JyZXNwb25kaW5nIHJvdyBvbiA8bGl0ZXJhbD5wZ19hdXRoaWQ8L2xp dGVyYWw+IGlzIGRlbGV0ZWQsIHRoaXMgdmFsdWUgYmVjb21lcyBzdGFsZS4KKyAgICA8L2VudHJ5 PgorICAgICAgIDwvcm93PgorCisgICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+IDxsaXRlcmFs PmNvcHlfdGJsPC9saXRlcmFsPiA8L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT5vaWQ8L3R5 cGU+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+VGhlIDxjb21tYW5kPkNPUFkgRlJPTTwvY29tbWFu ZD4gb3BlcmF0aW9uIGRlc3RpbmF0aW9uIHRhYmxlLgorICAgICAgICBSZWZlcmVuY2UgPGxpbmsg bGlua2VuZD0iY2F0YWxvZy1wZy1jbGFzcyI+PHN0cnVjdG5hbWU+cGdfY2xhc3M8L3N0cnVjdG5h bWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4sCisgICAgICAgIGhvd2V2 ZXIgdGhlcmUgaXMgbm8gaGFyZCBkZXBlbmRlbmN5IHdpdGggY2F0YWxvZyA8bGl0ZXJhbD5wZ19j bGFzczwvbGl0ZXJhbD4uCisgICAgICAgIElmIHRoZSBjb3JyZXNwb25kaW5nIHJvdyBvbiA8bGl0 ZXJhbD5wZ19jbGFzczwvbGl0ZXJhbD4gaXMgZGVsZXRlZCwgdGhpcyB2YWx1ZSBiZWNvbWVzIHN0 YWxlLgorICAgICAgICA8L2VudHJ5PgorICAgICAgIDwvcm93PgorCisgICAgICAgPHJvdz4KKyAg ICAgICA8ZW50cnk+IDxsaXRlcmFsPmZpbGVuYW1lPC9saXRlcmFsPiA8L2VudHJ5PgorICAgICAg IDxlbnRyeT48dHlwZT50ZXh0PC90eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSBwYXRo IG5hbWUgb2YgdGhlIDxjb21tYW5kPkNPUFkgRlJPTTwvY29tbWFuZD4gaW5wdXQ8L2VudHJ5Pgor ICAgICAgIDwvcm93PgorCisgICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+IDxsaXRlcmFsPmxp bmVubzwvbGl0ZXJhbD4gPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHR5cGU+YmlnaW50PC90eXBl PjwvZW50cnk+CisgICAgICAgPGVudHJ5PkxpbmUgbnVtYmVyIHdoZXJlIHRoZSBlcnJvciBvY2N1 cnJlZCwgY291bnRpbmcgZnJvbSAxPC9lbnRyeT4KKyAgICAgICA8L3Jvdz4KKworICAgICAgIDxy b3c+CisgICAgICAgPGVudHJ5PiA8bGl0ZXJhbD5saW5lPC9saXRlcmFsPiA8L2VudHJ5PgorICAg ICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5PlJhdyBj b250ZW50IG9mIHRoZSBlcnJvciBvY2N1cnJlZCBsaW5lPC9lbnRyeT4KKyAgICAgICA8L3Jvdz4K KworICAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PiA8bGl0ZXJhbD5jb2xuYW1lPC9saXRlcmFs PiA8L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBlPjwvZW50cnk+CisgICAg ICAgPGVudHJ5PkZpZWxkIHdoZXJlIHRoZSBlcnJvciBvY2N1cnJlZDwvZW50cnk+CisgICAgICAg PC9yb3c+CisKKyAgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4gPGxpdGVyYWw+cmF3X2ZpZWxk X3ZhbHVlPC9saXRlcmFsPiA8L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBl PjwvZW50cnk+CisgICAgICAgPGVudHJ5PlJhdyBjb250ZW50IG9mIHRoZSBlcnJvciBvY2N1cnJl ZCBmaWVsZDwvZW50cnk+CisgICAgICAgPC9yb3c+CisKKyAgICAgICA8cm93PgorICAgICAgIDxl bnRyeT4gPGxpdGVyYWw+ZXJyX21lc3NhZ2UgPC9saXRlcmFsPiA8L2VudHJ5PgorICAgICAgIDxl bnRyeT48dHlwZT50ZXh0PC90eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSBwcmltYXJ5 IGVycm9yIG1lc3NhZ2UsCisgICAgICAgICAgc2VlIDxsaW5rIGxpbmtlbmQ9ImVycm9yLW1lc3Nh Z2UtcmVwb3J0aW5nIj5lcmVwb3J0PC9saW5rPjwvZW50cnk+CisgICAgICAgPC9yb3c+CisKKyAg ICAgICA8cm93PgorICAgICAgIDxlbnRyeT4gPGxpdGVyYWw+ZXJyX2RldGFpbDwvbGl0ZXJhbD4g PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHR5cGU+dGV4dDwvdHlwZT48L2VudHJ5PgorICAgICAg IDxlbnRyeT5UaGUgb3B0aW9uYWxseSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlLAorICAgICAgICAg IHNlZSA8bGluayBsaW5rZW5kPSJlcnJvci1tZXNzYWdlLXJlcG9ydGluZyI+ZXJlcG9ydDwvbGlu az4gPC9lbnRyeT4KKyAgICAgICA8L3Jvdz4KKworICAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5 PiA8bGl0ZXJhbD5lcnJvcmNvZGUgPC9saXRlcmFsPiA8L2VudHJ5PgorICAgICAgIDxlbnRyeT48 dHlwZT50ZXh0PC90eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSBTUUxTVEFURSBlcnJv ciBpZGVudGlmaWVyIGNvZGUgZm9yIHRoZSBlcnJvciBjb25kaXRpb24sCisgICAgICAgICAgc2Vl IDxsaW5rIGxpbmtlbmQ9ImVycmNvZGVzLWFwcGVuZGl4Ij5FcnJvciBDb2RlczwvbGluaz4KKyAg ICAgICA8L2VudHJ5PgorICAgICAgIDwvcm93PgorCisgICAgICA8L3Rib2R5PgorICAgICA8L3Rn cm91cD4KKyAgIDwvaW5mb3JtYWx0YWJsZT4KKyAgICAgPC9wYXJhPgorICA8L3NlY3QxPgorCisK ICAgPHNlY3QxIGlkPSJkYXRhdHlwZS1wZy1sc24iPgogICAgPHRpdGxlPjx0eXBlPnBnX2xzbjwv dHlwZT4gVHlwZTwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY29weS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKaW5kZXggNDcwNmM5YTQ0MTAuLjEzOGMy ZDY0MjQ4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL2NvcHkuc2dtbApAQCAtNDYsNiArNDYsNyBAQCBDT1BZIHsgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxh Y2VhYmxlCiAgICAgRk9SQ0VfTlVMTCB7ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIHwgKiB9CiAgICAgT05fRVJST1Ig PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVycm9yX2FjdGlvbjwvcmVwbGFjZWFibGU+ CiAgICAgUkVKRUNUX0xJTUlUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5tYXhlcnJv cjwvcmVwbGFjZWFibGU+CisgICAgRVJST1JfVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmVycm9yX3NhdmluZ190YWJsZTwvcmVwbGFjZWFibGU+CiAgICAgRU5DT0RJTkcgJzxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbmNvZGluZ19uYW1lPC9yZXBsYWNlYWJsZT4n CiAgICAgTE9HX1ZFUkJPU0lUWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmVyYm9z aXR5PC9yZXBsYWNlYWJsZT4KIDwvc3lub3BzaXM+CkBAIC00NTAsMTEgKzQ1MSwxMyBAQCBDT1BZ IChTRUxFQ1QgaiBGUk9NIChWQUxVRVMgKCdudWxsJzo6anNvbiksIChOVUxMOjpqc29uKSkgdihq KSkKICAgICAgIDxsaXRlcmFsPnN0b3A8L2xpdGVyYWw+IG1lYW5zIGZhaWwgdGhlIGNvbW1hbmQs IHdoaWxlCiAgICAgICA8bGl0ZXJhbD5pZ25vcmU8L2xpdGVyYWw+IG1lYW5zIGRpc2NhcmQgdGhl IGlucHV0IHJvdyBhbmQgY29udGludWUgd2l0aCB0aGUgbmV4dCBvbmUsCiAgICAgICBhbmQgPGxp dGVyYWw+c2V0X251bGw8L2xpdGVyYWw+IG1lYW5zIHJlcGxhY2UgdGhlIGZpZWxkIGNvbnRhaW5p bmcgdGhlIGludmFsaWQKLSAgICAgIGlucHV0IHZhbHVlIHdpdGggYSBudWxsIHZhbHVlIGFuZCBj b250aW51ZSB0byB0aGUgbmV4dCBmaWVsZC4KKyAgICAgIGlucHV0IHZhbHVlIHdpdGggYSBudWxs IHZhbHVlIGFuZCBjb250aW51ZSB0byB0aGUgbmV4dCBmaWVsZCwKKyAgICAgIGFuZCA8bGl0ZXJh bD50YWJsZTwvbGl0ZXJhbD4gbWVhbnMgc2F2ZSBlcnJvciBpbmZvcm1hdGlvbiB0bworICAgICAg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVycm9yX3NhdmluZ190YWJsZTwvcmVwbGFj ZWFibGU+IGFuZCBjb250aW51ZSB3aXRoIHRoZSBuZXh0IG9uZS4KICAgICAgIFRoZSBkZWZhdWx0 IGlzIDxsaXRlcmFsPnN0b3A8L2xpdGVyYWw+LgogICAgICA8L3BhcmE+CiAgICAgIDxwYXJhPgot ICAgICAgVGhlIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPnNldF9udWxs PC9saXRlcmFsPgorICAgICAgVGhlIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4sIDxsaXRlcmFs PnNldF9udWxsPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+CiAgICAgICBv cHRpb25zIGFyZSBhcHBsaWNhYmxlIG9ubHkgZm9yIDxjb21tYW5kPkNPUFkgRlJPTTwvY29tbWFu ZD4KICAgICAgIHdoZW4gdGhlIDxsaXRlcmFsPkZPUk1BVDwvbGl0ZXJhbD4gaXMgPGxpdGVyYWw+ dGV4dDwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+Y3N2PC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgpA QCAtNDYzLDE5ICs0NjYsMzUgQEAgQ09QWSAoU0VMRUNUIGogRlJPTSAoVkFMVUVTICgnbnVsbCc6 Ompzb24pLCAoTlVMTDo6anNvbikpIHYoaikpCiAgICAgICA8bGl0ZXJhbD5zZXRfbnVsbDwvbGl0 ZXJhbD4sIGEgPGxpdGVyYWw+Tk9USUNFPC9saXRlcmFsPiBtZXNzYWdlIGlzIGVtaXR0ZWQgYXQg dGhlIGVuZCBvZiB0aGUKICAgICAgIDxjb21tYW5kPkNPUFkgRlJPTTwvY29tbWFuZD4gY29tbWFu ZCBjb250YWluaW5nIHRoZSBjb3VudCBvZiByb3dzIHRoYXQgd2VyZSBpZ25vcmVkIG9yCiAgICAg ICBjaGFuZ2VkLCBpZiBhdCBsZWFzdCBvbmUgcm93IHdhcyBhZmZlY3RlZC4KKyAgICAgIElmIDxs aXRlcmFsPk9OX0VSUk9SPC9saXRlcmFsPiBvcHRpb24gaXMgc2V0IHRvIDxsaXRlcmFsPnRhYmxl PC9saXRlcmFsPiwKKyAgICAgIGEgPGxpdGVyYWw+Tk9USUNFPC9saXRlcmFsPiBtZXNzYWdlIGNv bnRhaW5pbmcgdGhlIHJvdyBjb3VudCBpbnNlcnRlZCB0bworICAgICAgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmVycm9yX3NhdmluZ190YWJsZTwvcmVwbGFjZWFibGU+IGlzCisgICAg ICBlbWl0dGVkIGF0IHRoZSBlbmQgb2YgdGhlIDxjb21tYW5kPkNPUFkgRlJPTTwvY29tbWFuZD4u CiAgICAgIDwvcGFyYT4KICAgICAgPHBhcmE+CiAgICAgICBXaGVuIDxsaXRlcmFsPkxPR19WRVJC T1NJVFk8L2xpdGVyYWw+IG9wdGlvbiBpcyBzZXQgdG8gPGxpdGVyYWw+dmVyYm9zZTwvbGl0ZXJh bD4sCi0gICAgICBmb3IgPGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPiBvcHRpb24sIGEgPGxpdGVy YWw+Tk9USUNFPC9saXRlcmFsPiBtZXNzYWdlCisgICAgICBmb3IgPGxpdGVyYWw+aWdub3JlPC9s aXRlcmFsPiBvciA8bGl0ZXJhbD50YWJsZTwvbGl0ZXJhbD4gb3B0aW9uLCBhIDxsaXRlcmFsPk5P VElDRTwvbGl0ZXJhbD4gbWVzc2FnZQogICAgICAgY29udGFpbmluZyB0aGUgbGluZSBvZiB0aGUg aW5wdXQgZmlsZSBhbmQgdGhlIGNvbHVtbiBuYW1lIHdob3NlIGlucHV0CiAgICAgICBjb252ZXJz aW9uIGhhcyBmYWlsZWQgaXMgZW1pdHRlZCBmb3IgZWFjaCBkaXNjYXJkZWQgcm93OwogICAgICAg Zm9yIDxsaXRlcmFsPnNldF9udWxsPC9saXRlcmFsPiBvcHRpb24sIGEgPGxpdGVyYWw+Tk9USUNF PC9saXRlcmFsPgogICAgICAgbWVzc2FnZSBjb250YWluaW5nIHRoZSBsaW5lIG9mIHRoZSBpbnB1 dCBmaWxlIGFuZCB0aGUgY29sdW1uIG5hbWUgd2hlcmUKICAgICAgIHZhbHVlIHdhcyByZXBsYWNl ZCB3aXRoIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IGZvciBlYWNoIGlucHV0IGNvbnZlcnNpb24K LSAgICAgIGZhaWx1cmUuCisgICAgICBmYWlsdXJlLAorICAgICAgZm9yIDxsaXRlcmFsPnRhYmxl PC9saXRlcmFsPiBvcHRpb24sIGEgPGxpdGVyYWw+Tk9USUNFPC9saXRlcmFsPgorICAgICAgbWVz c2FnZSBjb250YWluaW5nIHRoZSBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlIGFuZCB0aGUgY29sdW1u IG5hbWUgd2hvc2UgaW5wdXQKKyAgICAgIGNvbnZlcnNpb24gaGFzIGZhaWxlZCBpcyBlbWl0dGVk IGZvciBlYWNoIHJvdyB0aGF0IGluc2VydGVkIHRvCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZXJyb3Jfc2F2aW5nX3RhYmxlPC9yZXBsYWNlYWJsZT4uCiAgICAgICBXaGVu IGl0IGlzIHNldCB0byA8bGl0ZXJhbD5zaWxlbnQ8L2xpdGVyYWw+LCBubyBtZXNzYWdlIGlzIGVt aXR0ZWQKICAgICAgIHJlZ2FyZGluZyBpbnB1dCBjb252ZXJzaW9uIGZhaWxlZCByb3dzLgogICAg ICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUcmlnZ2VycyBvbiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZXJyb3Jfc2F2aW5nX3RhYmxlPC9yZXBsYWNlYWJsZT4KKyAgICAg IHdpbGwgYmUgZmlyZWQuIFRoZXJlZm9yZSwgdGhlIDxsaXRlcmFsPk5PVElDRTwvbGl0ZXJhbD4g bWVzc2FnZSByZWdhcmRpbmcKKyAgICAgIHJvd3MgaW5zZXJ0ZWQgaW50byA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZXJyb3Jfc2F2aW5nX3RhYmxlPC9yZXBsYWNlYWJsZT4KKyAgICAg IG1heSBkaWZmZXIgZnJvbSB3aGF0IGlzIGFjdHVhbGx5IGJlaW5nIGluc2VydGVkLgorICAgICA8 L3BhcmE+CisKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKQEAgLTQ5Nyw2 ICs1MTYsMjUgQEAgQ09QWSAoU0VMRUNUIGogRlJPTSAoVkFMVUVTICgnbnVsbCc6Ompzb24pLCAo TlVMTDo6anNvbikpIHYoaikpCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY29weS1wYXJhbXMtZXJyb3ItdGFibGUiPgorICAg IDx0ZXJtPjxsaXRlcmFsPkVSUk9SX1RBQkxFPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0 ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICAgSW5zZXJ0IGVycm9yIGNvbnRleHQgZGV0YWlscyB0 byB0aGUgdGFibGUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVycm9yX3NhdmluZ190 YWJsZTwvcmVwbGFjZWFibGU+LgorICAgICAgICBUaGlzIG9wdGlvbiBpcyBhbGxvd2VkIG9ubHkg aW4gPGNvbW1hbmQ+Q09QWSBGUk9NPC9jb21tYW5kPiBhbmQKKyAgICAgICAgPGxpdGVyYWw+T05f RVJST1I8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCBhcyA8bGl0ZXJhbD5UQUJMRTwvbGl0ZXJhbD4u CisgICAgICAgIFRoZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXJyb3Jfc2F2aW5n X3RhYmxlPC9yZXBsYWNlYWJsZT4gbXVzdAorICAgICAgICBiZSBhIHR5cGVkIHRhYmxlIGJhc2Vk IG9uIHRoZSBzeXN0ZW0gY29tcG9zaXRlIHR5cGUKKyAgICAgICAgPGxpbmsgbGlua2VuZD0iZGF0 YXR5cGUtY29weV9lcnJvcl9zYXZpbmciPjxjb21tYW5kPmNvcHlfZXJyb3Jfc2F2aW5nPC9jb21t YW5kPjwvbGluaz4sCisgICAgICAgIGFuZCB0aGUgdXNlciBydW5uaW5nIDxjb21tYW5kPkNPUFkg RlJPTTwvY29tbWFuZD4gcmVxdWlyZXMgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPgorICAgICAg ICBwcml2aWxlZ2VzIG9uIGl0LiBEdXJpbmcgdGhlIGVycm9yIHJlY29yZHMgaW5zZXJhdGlvbiwK KyAgICAgICAgPGxpdGVyYWw+Tk9UIE5VTEw8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5DSEVDSzwv bGl0ZXJhbD4gY29uc3RyYWludHMgYXJlIGVuZm9yY2VkLAorICAgICAgICBhbmQgYm90aCByb3ct bGV2ZWwgYW5kIHN0YXRlbWVudC1sZXZlbCB0cmlnZ2VycyB3aWxsIGJlIGZpcmVkLgorICAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworCiAgICA8dmFy bGlzdGVudHJ5IGlkPSJzcWwtY29weS1wYXJhbXMtZW5jb2RpbmciPgogICAgIDx0ZXJtPjxsaXRl cmFsPkVOQ09ESU5HPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC01MjIsOCAr NTYwLDggQEAgQ09QWSAoU0VMRUNUIGogRlJPTSAoVkFMVUVTICgnbnVsbCc6Ompzb24pLCAoTlVM TDo6anNvbikpIHYoaikpCiAgICAgIDwvcGFyYT4KICAgICAgPHBhcmE+CiAgICAgICBUaGlzIGlz IGN1cnJlbnRseSB1c2VkIGluIDxjb21tYW5kPkNPUFkgRlJPTTwvY29tbWFuZD4gY29tbWFuZCB3 aGVuCi0gICAgICA8bGl0ZXJhbD5PTl9FUlJPUjwvbGl0ZXJhbD4gb3B0aW9uIGlzIHNldCB0byA8 bGl0ZXJhbD5pZ25vcmU8L2xpdGVyYWw+Ci0gICAgICBvciA8bGl0ZXJhbD5zZXRfbnVsbDwvbGl0 ZXJhbD4uCisgICAgICA8bGl0ZXJhbD5PTl9FUlJPUjwvbGl0ZXJhbD4gb3B0aW9uIGlzIHNldCB0 byA8bGl0ZXJhbD5pZ25vcmU8L2xpdGVyYWw+LAorICAgICAgPGxpdGVyYWw+c2V0X251bGw8L2xp dGVyYWw+IG9yIDxsaXRlcmFsPnRhYmxlPC9saXRlcmFsPi4KICAgICAgIDwvcGFyYT4KICAgICA8 L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f ZnVuY3Rpb25zLnNxbAppbmRleCBjM2MwYTZlODRlZC4uNjJhNGE2ZDk4YWEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX2Z1bmN0aW9ucy5zcWwKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbApAQCAtMzY2LDMgKzM2NiwxNiBAQCBDUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0c19kZWJ1Zyhkb2N1bWVudCB0ZXh0LAogQkVHSU4gQVRP TUlDCiAgICAgU0VMRUNUICogRlJPTSB0c19kZWJ1ZyhnZXRfY3VycmVudF90c19jb25maWcoKSwg JDEpOwogRU5EOworCitDUkVBVEUgVFlQRSBjb3B5X2Vycm9yX3NhdmluZyBBUygKKyAgICB1c2Vy aWQgICAgb2lkLAorICAgIGNvcHlfdGJsICBvaWQsCisgICAgZmlsZW5hbWUgIHRleHQgQ09MTEFU RSAiQyIsCisgICAgbGluZW5vICAgIGJpZ2ludCwKKyAgICBsaW5lICAgICAgdGV4dCBDT0xMQVRF ICJDIiwKKyAgICBjb2xuYW1lICAgdGV4dCBDT0xMQVRFICJDIiwKKyAgICByYXdfZmllbGRfdmFs dWUgdGV4dCBDT0xMQVRFICJDIiwKKyAgICBlcnJfbWVzc2FnZSAgICAgdGV4dCBDT0xMQVRFICJD IiwKKyAgICBlcnJfZGV0YWlsICAgICAgdGV4dCBDT0xMQVRFICJDIiwKKyAgICBlcnJvcmNvZGUg ICAgICAgdGV4dCBDT0xMQVRFICJDIgorKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2NvcHkuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYwppbmRleCAwMDNiNzA4NTJi Yi4uMmMxYzQ0NzhiYWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMKQEAgLTQ5NCw2ICs0OTQsOCBAQCBkZWZH ZXRDb3B5T25FcnJvckNob2ljZShEZWZFbGVtICpkZWYsIFBhcnNlU3RhdGUgKnBzdGF0ZSwgYm9v bCBpc19mcm9tKQogCQlyZXR1cm4gQ09QWV9PTl9FUlJPUl9JR05PUkU7CiAJaWYgKHBnX3N0cmNh c2VjbXAoc3ZhbCwgInNldF9udWxsIikgPT0gMCkKIAkJcmV0dXJuIENPUFlfT05fRVJST1JfU0VU X05VTEw7CisJaWYgKHBnX3N0cmNhc2VjbXAoc3ZhbCwgInRhYmxlIikgPT0gMCkKKwkJcmV0dXJu IENPUFlfT05fRVJST1JfVEFCTEU7CiAKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCkBAIC01ODcsNiArNTg5LDcgQEAgUHJvY2Vz c0NvcHlPcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAlib29sCQlmcmVlemVfc3BlY2lmaWVk ID0gZmFsc2U7CiAJYm9vbAkJaGVhZGVyX3NwZWNpZmllZCA9IGZhbHNlOwogCWJvb2wJCW9uX2Vy cm9yX3NwZWNpZmllZCA9IGZhbHNlOworCWJvb2wJCWVycm9yX3JlbF9zcGVjaWZpZWQgPSBmYWxz ZTsKIAlib29sCQlsb2dfdmVyYm9zaXR5X3NwZWNpZmllZCA9IGZhbHNlOwogCWJvb2wJCXJlamVj dF9saW1pdF9zcGVjaWZpZWQgPSBmYWxzZTsKIAlib29sCQlmb3JjZV9hcnJheV9zcGVjaWZpZWQg PSBmYWxzZTsKQEAgLTc3NCw2ICs3NzcsMTMgQEAgUHJvY2Vzc0NvcHlPcHRpb25zKFBhcnNlU3Rh dGUgKnBzdGF0ZSwKIAkJCXJlamVjdF9saW1pdF9zcGVjaWZpZWQgPSB0cnVlOwogCQkJb3B0c19v dXQtPnJlamVjdF9saW1pdCA9IGRlZkdldENvcHlSZWplY3RMaW1pdE9wdGlvbihkZWZlbCk7CiAJ CX0KKwkJZWxzZSBpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiZXJyb3JfdGFibGUiKSA9PSAw KQorCQl7CisJCQlpZiAoZXJyb3JfcmVsX3NwZWNpZmllZCkKKwkJCQllcnJvckNvbmZsaWN0aW5n RGVmRWxlbShkZWZlbCwgcHN0YXRlKTsKKwkJCWVycm9yX3JlbF9zcGVjaWZpZWQgPSB0cnVlOwor CQkJb3B0c19vdXQtPmVycm9yX3RhYmxlID0gZGVmR2V0U3RyaW5nKGRlZmVsKTsKKwkJfQogCQll bHNlCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCkBAIC03ODIsNiArNzkyLDE5IEBAIFByb2Nlc3NDb3B5T3B0aW9ucyhQYXJzZVN0YXRlICpw c3RhdGUsCiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBkZWZlbC0+bG9jYXRpb24p KSk7CiAJfQogCisJaWYgKG9wdHNfb3V0LT5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX1RBQkxF KQorCXsKKwkJaWYgKG9wdHNfb3V0LT5lcnJvcl90YWJsZSA9PSBOVUxMKQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJ CQkJZXJybXNnKCJjYW5ub3Qgc2V0IG9wdGlvbiAlcyB0byBcIiVzXCIgd2hlbiBcIiVzXCIgaXMg bm90IHNwZWNpZmllZCIsICJPTl9FUlJPUiIsICJUQUJMRSIsICJFUlJPUl9UQUJMRSIpLAorCQkJ CQllcnJoaW50KCJcIiVzXCIgb3B0aW9uIGlzIHJlcXVpcmVkIiwgIkVSUk9SX1RBQkxFIikpOwor CX0KKwllbHNlIGlmIChvcHRzX291dC0+ZXJyb3JfdGFibGUgIT0gTlVMTCkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJ CWVycm1zZygiQ09QWSAlcyBjYW4gb25seSBiZSB1c2VkIHdoZW4gb3B0aW9uICVzIGlzIHNldCB0 byBcIiVzXCIiLCAiRVJST1JfVEFCTEUiLCAiT05fRVJST1IiLCAiVEFCTEUiKSk7CisKIAkvKgog CSAqIENoZWNrIGZvciBpbmNvbXBhdGlibGUgb3B0aW9ucyAobXVzdCBkbyB0aGVzZSB0aHJlZSBi ZWZvcmUgaW5zZXJ0aW5nCiAJICogZGVmYXVsdHMpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9jb3B5ZnJvbS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20uYwppbmRl eCA2NGFjMzA2M2M2MS4uOWQ3ZTRmZjhjYTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2NvcHlmcm9tLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20uYwpAQCAt MjksNiArMjksNyBAQAogI2luY2x1ZGUgImFjY2Vzcy90dXBjb252ZXJ0LmgiCiAjaW5jbHVkZSAi YWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29weWFwaS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL2NvcHlmcm9tX2ludGVybmFsLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvcHJvZ3Jlc3MuaCIKQEAgLTQyLDE2ICs0MywyMCBAQAogI2luY2x1ZGUgIm1pc2NhZG1pbi5o IgogI2luY2x1ZGUgIm5vZGVzL21pc2Nub2Rlcy5oIgogI2luY2x1ZGUgIm9wdGltaXplci9vcHRp bWl6ZXIuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNsdWRlICJw Z3N0YXQuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCiAjaW5jbHVkZSAi c3RvcmFnZS9mZC5oIgogI2luY2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKKyNpbmNsdWRlICJ1dGls cy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0 aWxzL21lbXV0aWxzLmgiCiAjaW5jbHVkZSAidXRpbHMvcG9ydGFsLmgiCiAjaW5jbHVkZSAidXRp bHMvcmVsLmgiCisjaW5jbHVkZSAidXRpbHMvcmVncHJvYy5oIgogI2luY2x1ZGUgInV0aWxzL3Nu YXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy90eXBjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3N5 c2NhY2hlLmgiCiAKIC8qCiAgKiBObyBtb3JlIHRoYW4gdGhpcyBtYW55IHR1cGxlcyBwZXIgQ29w eU11bHRpSW5zZXJ0QnVmZmVyCkBAIC0xMjAsNiArMTI1LDEwIEBAIHN0YXRpYyB2b2lkIENvcHlG cm9tQmluYXJ5SW5GdW5jKENvcHlGcm9tU3RhdGUgY3N0YXRlLCBPaWQgYXR0dHlwaWQsCiAJCQkJ CQkJCSBGbWdySW5mbyAqZmluZm8sIE9pZCAqdHlwaW9wYXJhbSk7CiBzdGF0aWMgdm9pZCBDb3B5 RnJvbUJpbmFyeVN0YXJ0KENvcHlGcm9tU3RhdGUgY3N0YXRlLCBUdXBsZURlc2MgdHVwRGVzYyk7 CiBzdGF0aWMgdm9pZCBDb3B5RnJvbUJpbmFyeUVuZChDb3B5RnJvbVN0YXRlIGNzdGF0ZSk7Citz dGF0aWMgdm9pZCBSYW5nZVZhckNhbGxiYWNrRm9yQ29weUVycm9yVGFibGUoY29uc3QgUmFuZ2VW YXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwKKwkJCQkJCQkJCQkJICB2b2lkICphcmcp Oworc3RhdGljIHZvaWQgQ29weUZyb21FcnJvclRhYmxlSW5pdChDb3B5RnJvbVN0YXRlIGNzdGF0 ZSk7CitzdGF0aWMgdm9pZCBDb3B5RnJvbUVycm9yVGFibGVQZXJtaXNzaW9uQ2hlY2soUGFyc2VT dGF0ZSAqcHN0YXRlLCBSZWxhdGlvbiByZWwpOwogCiAKIC8qCkBAIC05ODIsNiArOTkxLDExIEBA IENvcHlGcm9tKENvcHlGcm9tU3RhdGUgY3N0YXRlKQogCWlmIChjc3RhdGUtPnJlbC0+cmRfcmVs LT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCiAJCXByb3V0ZSA9IEV4ZWNT ZXR1cFBhcnRpdGlvblR1cGxlUm91dGluZyhlc3RhdGUsIGNzdGF0ZS0+cmVsKTsKIAorCWlmIChj c3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9UQUJMRSkKKwkJQ29weUZyb21F cnJvclRhYmxlSW5pdChjc3RhdGUpOworCWVsc2UKKwkJY3N0YXRlLT5tdGNvbnRleHQgPSBOVUxM OworCiAJaWYgKGNzdGF0ZS0+d2hlcmVDbGF1c2UpCiAJCWNzdGF0ZS0+cXVhbGV4cHIgPSBFeGVj SW5pdFF1YWwoY2FzdE5vZGUoTGlzdCwgY3N0YXRlLT53aGVyZUNsYXVzZSksCiAJCQkJCQkJCQkJ Jm10c3RhdGUtPnBzKTsKQEAgLTExNTEsMjIgKzExNjUsMjYgQEAgQ29weUZyb20oQ29weUZyb21T dGF0ZSBjc3RhdGUpCiAJCWlmICghTmV4dENvcHlGcm9tKGNzdGF0ZSwgZWNvbnRleHQsIG15c2xv dC0+dHRzX3ZhbHVlcywgbXlzbG90LT50dHNfaXNudWxsKSkKIAkJCWJyZWFrOwogCi0JCWlmIChj c3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9JR05PUkUgJiYKKwkJaWYgKChj c3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9JR05PUkUgfHwKKwkJCSBjc3Rh dGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9UQUJMRSkgJiYKIAkJCWNzdGF0ZS0+ ZXNjb250ZXh0LT5lcnJvcl9vY2N1cnJlZCkKIAkJewogCQkJLyoKIAkJCSAqIFNvZnQgZXJyb3Ig b2NjdXJyZWQsIHNraXAgdGhpcyB0dXBsZSBhbmQganVzdCBtYWtlCi0JCQkgKiBFcnJvclNhdmVD b250ZXh0IHJlYWR5IGZvciB0aGUgbmV4dCBOZXh0Q29weUZyb20uIFNpbmNlIHdlCi0JCQkgKiBk b24ndCBzZXQgZGV0YWlsc193YW50ZWQgYW5kIGVycm9yX2RhdGEgaXMgbm90IHRvIGJlIGZpbGxl ZCwKLQkJCSAqIGp1c3QgcmVzZXR0aW5nIGVycm9yX29jY3VycmVkIGlzIGVub3VnaC4KKwkJCSAq IEVycm9yU2F2ZUNvbnRleHQgcmVhZHkgZm9yIHRoZSBuZXh0IE5leHRDb3B5RnJvbS4KIAkJCSAq LwogCQkJY3N0YXRlLT5lc2NvbnRleHQtPmVycm9yX29jY3VycmVkID0gZmFsc2U7CiAKKwkJCS8q IFJlc2V0IEVycm9yU2F2ZUNvbnRleHQtPmVycm9yX2RhdGEgKi8KKwkJCWlmIChjc3RhdGUtPm9w dHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9UQUJMRSkKKwkJCQltZW1zZXQoY3N0YXRlLT5l c2NvbnRleHQtPmVycm9yX2RhdGEsIDAsIHNpemVvZihFcnJvckRhdGEpKTsKKwogCQkJLyogUmVw b3J0IHRoYXQgdGhpcyB0dXBsZSB3YXMgc2tpcHBlZCBieSB0aGUgT05fRVJST1IgY2xhdXNlICov CiAJCQlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX0NPUFlfVFVQTEVTX1NL SVBQRUQsCiAJCQkJCQkJCQkJIGNzdGF0ZS0+bnVtX2Vycm9ycyk7CiAKLQkJCWlmIChjc3RhdGUt Pm9wdHMucmVqZWN0X2xpbWl0ID4gMCAmJgorCQkJaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9 PSBDT1BZX09OX0VSUk9SX0lHTk9SRSAmJgorCQkJCWNzdGF0ZS0+b3B0cy5yZWplY3RfbGltaXQg PiAwICYmCiAJCQkJY3N0YXRlLT5udW1fZXJyb3JzID4gY3N0YXRlLT5vcHRzLnJlamVjdF9saW1p dCkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RF WFRfUkVQUkVTRU5UQVRJT04pLApAQCAtMTQ4MCw2ICsxNDk4LDEzIEBAIENvcHlGcm9tKENvcHlG cm9tU3RhdGUgY3N0YXRlKQogCQkJCQkJCQkgICJpbiAlIiBQUkl1NjQgIiByb3dzLCBjb2x1bW5z IHdlcmUgc2V0IHRvIG51bGwgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkiLAogCQkJ CQkJCQkgIGNzdGF0ZS0+bnVtX2Vycm9ycywKIAkJCQkJCQkJICBjc3RhdGUtPm51bV9lcnJvcnMp KTsKKwkJZWxzZSBpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfVEFC TEUpCisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJZXJybXNnX3BsdXJhbCgiJSIgUFJJdTY0ICIg cm93IHdhcyBzYXZlZCB0byB0YWJsZSBcIiVzXCIgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGli aWxpdHkiLAorCQkJCQkJCQkgICIlIiBQUkl1NjQgIiByb3dzIHdlcmUgc2F2ZWQgdG8gdGFibGUg XCIlc1wiIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IiwKKwkJCQkJCQkJICBjc3Rh dGUtPm51bV9lcnJvcnMsCisJCQkJCQkJCSAgY3N0YXRlLT5udW1fZXJyb3JzLAorCQkJCQkJCQkg IFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGNzdGF0ZS0+ZXJyb3JfcmVsKSkpOwogCX0KIAogCWlm IChiaXN0YXRlICE9IE5VTEwpCkBAIC0xNDg3LDYgKzE1MTIsMzkgQEAgQ29weUZyb20oQ29weUZy b21TdGF0ZSBjc3RhdGUpCiAKIAlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiAK KwkvKgorCSAqIFRoaXMgc2hvdWxkIGJlIGFsaWduZWQgd2l0aCB0aGUgcmVzb3VyY2UgcmVsZWFz ZS9kZXN0cnVjdGlvbiBwZXJmb3JtZWQKKwkgKiBieSBFeGVjdXRvckZpbmlzaCBhbmQgRXhlY3V0 b3JFbmQgb24gdGhlIEVTdGF0ZS4KKwkgKi8KKwlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09 IENPUFlfT05fRVJST1JfVEFCTEUpCisJeworCQlNZW1vcnlDb250ZXh0IHRtcGNvbnRleHQ7CisJ CU1vZGlmeVRhYmxlU3RhdGUgKm9uX2Vycm9yX210c3RhdGU7CisKKwkJdG1wY29udGV4dCA9CisJ CQlNZW1vcnlDb250ZXh0U3dpdGNoVG8oY3N0YXRlLT5tdGNvbnRleHQtPmVzdGF0ZS0+ZXNfcXVl cnlfY3h0KTsKKworCQlvbl9lcnJvcl9tdHN0YXRlID0gY3N0YXRlLT5tdGNvbnRleHQtPm10c3Rh dGU7CisJCW9uX2Vycm9yX210c3RhdGUtPm10X2RvbmUgPSB0cnVlOworCQljc3RhdGUtPm10Y29u dGV4dC0+ZXN0YXRlLT5lc19maW5pc2hlZCA9IHRydWU7CisKKwkJLyogUmVsZWFzZSByZXNvdXJj ZXMgYXNzb2NpYXRlZCB3aXRoIGVycm9yX3RhYmxlICovCisJCUV4ZWNSZXNldFR1cGxlVGFibGUo Y3N0YXRlLT5tdGNvbnRleHQtPmVzdGF0ZS0+ZXNfdHVwbGVUYWJsZSwgZmFsc2UpOworCQlFeGVj Q2xvc2VSZXN1bHRSZWxhdGlvbnMoY3N0YXRlLT5tdGNvbnRleHQtPmVzdGF0ZSk7CisJCUV4ZWND bG9zZVJhbmdlVGFibGVSZWxhdGlvbnMoY3N0YXRlLT5tdGNvbnRleHQtPmVzdGF0ZSk7CisKKwkJ LyogRG8gYXdheSB3aXRoIG91ciBzbmFwc2hvdHMgKi8KKwkJVW5yZWdpc3RlclNuYXBzaG90KGNz dGF0ZS0+bXRjb250ZXh0LT5lc3RhdGUtPmVzX3NuYXBzaG90KTsKKwkJVW5yZWdpc3RlclNuYXBz aG90KGNzdGF0ZS0+bXRjb250ZXh0LT5lc3RhdGUtPmVzX2Nyb3NzY2hlY2tfc25hcHNob3QpOwor CisJCS8qCisJCSAqIE11c3Qgc3dpdGNoIG91dCBvZiBjb250ZXh0IGJlZm9yZSBkZXN0cm95aW5n IGl0CisJCSAqLworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8odG1wY29udGV4dCk7CisKKwkJRnJl ZUV4ZWN1dG9yU3RhdGUoY3N0YXRlLT5tdGNvbnRleHQtPmVzdGF0ZSk7CisJfQorCiAJLyogRXhl Y3V0ZSBBRlRFUiBTVEFURU1FTlQgaW5zZXJ0aW9uIHRyaWdnZXJzICovCiAJRXhlY0FTSW5zZXJ0 VHJpZ2dlcnMoZXN0YXRlLCB0YXJnZXRfcmVzdWx0UmVsSW5mbywgY3N0YXRlLT50cmFuc2l0aW9u X2NhcHR1cmUpOwogCkBAIC0xNjMwLDYgKzE2ODgsMTUgQEAgQmVnaW5Db3B5RnJvbShQYXJzZVN0 YXRlICpwc3RhdGUsCiAJCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJP Ul9JR05PUkUgfHwKIAkJCWNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX1NF VF9OVUxMKQogCQkJY3N0YXRlLT5lc2NvbnRleHQtPmRldGFpbHNfd2FudGVkID0gZmFsc2U7CisJ CWVsc2UgaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX1RBQkxFKQor CQl7CisJCQkvKgorCQkJICogRm9yIE9OX0VSUk9SID0gVEFCTEUsIHdlIG11c3Qgc2V0IGRldGFp bHNfd2FudGVkIHRvIHRydWUuIFRoaXMKKwkJCSAqIGVuc3VyZXMgdGhhdCBFcnJvckRhdGEgaXMg cG9wdWxhdGVkIHdoZW4gdGhlIG5leHQgZXJyb3Igb2NjdXJzLAorCQkJICogYWxsb3dpbmcgdXMg dG8gY2FwdHVyZSBlcnJvciBtZXRhZGF0YS4KKwkJCSAqLworCQkJY3N0YXRlLT5lc2NvbnRleHQt PmRldGFpbHNfd2FudGVkID0gdHJ1ZTsKKwkJfQogCX0KIAllbHNlCiAJCWNzdGF0ZS0+ZXNjb250 ZXh0ID0gTlVMTDsKQEAgLTE2NTcsNiArMTcyNCw4NSBAQCBCZWdpbkNvcHlGcm9tKFBhcnNlU3Rh dGUgKnBzdGF0ZSwKIAkJCWNzdGF0ZS0+ZG9tYWluX3dpdGhfY29uc3RyYWludFtpXSA9IERvbWFp bkhhc0NvbnN0cmFpbnRzKGF0dC0+YXR0dHlwaWQsIE5VTEwpOwogCQl9CiAJfQorCWVsc2UgaWYg KGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX1RBQkxFKQorCXsKKwkJLyog U2V0IHVwIENPUFkgRlJPTSAoT05fRVJST1IgVEFCTEUpICovCisJCVJhbmdlVmFyICAgKnJlbHZh cjsKKwkJTGlzdAkgICAqcmVsbmFtZV9saXN0OworCQlIZWFwVHVwbGUJdHA7CisJCU9pZAkJCWVy cl9yZWxPaWQsCisJCQkJCXR5cG9pZDsKKwkJT2lkCQkJcmVsb2Z0eXBlID0gSW52YWxpZE9pZDsK KworCQlBc3NlcnQoY3N0YXRlLT5vcHRzLmVycm9yX3RhYmxlICE9IE5VTEwpOworCisJCXJlbG5h bWVfbGlzdCA9IHN0cmluZ1RvUXVhbGlmaWVkTmFtZUxpc3QoY3N0YXRlLT5vcHRzLmVycm9yX3Rh YmxlLAorCQkJCQkJCQkJCQkJIE5VTEwpOworCQlyZWx2YXIgPSBtYWtlUmFuZ2VWYXJGcm9tTmFt ZUxpc3QocmVsbmFtZV9saXN0KTsKKworCQkvKgorCQkgKiBXZSBtYXkgaW5zZXJ0IHR1cGxlcyBp bnRvIGVycm9yX3RhYmxlIGxhdGVyLiBUbyBhdm9pZCBhIGRlYWRsb2NrIG9yCisJCSAqIGxvbmcg aGFuZyBkdXJpbmcgQ09QWSwgdmVyaWZ5IHRoYXQgdGhlIHRhYmxlIGlzIG5vdCBhbHJlYWR5IGxv Y2tlZDsKKwkJICogb3RoZXJ3aXNlLCByZXBvcnQgYSBsb2NrIGNvbmZsaWN0IGVycm9yLgorCQkg Ki8KKwkJZXJyX3JlbE9pZCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChyZWx2YXIsCisJCQkJ CQkJCQkJCSAgUm93RXhjbHVzaXZlTG9jaywKKwkJCQkJCQkJCQkJICBSVlJfTk9XQUlULAorCQkJ CQkJCQkJCQkgIFJhbmdlVmFyQ2FsbGJhY2tGb3JDb3B5RXJyb3JUYWJsZSwKKwkJCQkJCQkJCQkJ ICBOVUxMKTsKKworCQlpZiAoUmVsYXRpb25HZXRSZWxpZChjc3RhdGUtPnJlbCkgPT0gZXJyX3Jl bE9pZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BB UkFNRVRFUl9WQUxVRSksCisJCQkJCWVycm1zZygiY2Fubm90IHVzZSByZWxhdGlvbiBcIiVzXCIg Zm9yIENPUFkgZXJyb3Igc2F2aW5nIHdoaWxlIGNvcHlpbmcgZGF0YSB0byBpdCIsCisJCQkJCQkg ICBjc3RhdGUtPm9wdHMuZXJyb3JfdGFibGUpKTsKKworCQljc3RhdGUtPmVycm9yX3JlbCA9IHRh YmxlX29wZW4oZXJyX3JlbE9pZCwgTm9Mb2NrKTsKKworCQkvKgorCQkgKiBUaGUgZXJyb3Itc2F2 aW5nIHRhYmxlIG11c3QgYmUgYSBwbGFpbiB0YWJsZS4gSXQgY2Fubm90IGhhdmUKKwkJICogcmV3 cml0ZSBydWxlcyBvciBhbnkgZW5hYmxlZCByb3cgc2VjdXJpdHkgcG9saWNpZXMuCisJCSAqLwor CQlpZiAoY3N0YXRlLT5lcnJvcl9yZWwtPnJkX3JlbC0+cmVscm93c2VjdXJpdHkgfHwgY3N0YXRl LT5lcnJvcl9yZWwtPnJkX3J1bGVzKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShF UlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiY2Fubm90IHVzZSBy ZWxhdGlvbiBcIiVzXCIgZm9yIENPUFkgZXJyb3Igc2F2aW5nIiwKKwkJCQkJCSAgIFJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKGNzdGF0ZS0+ZXJyb3JfcmVsKSksCisJCQkJCWNzdGF0ZS0+ZXJyb3Jf cmVsLT5yZF9yZWwtPnJlbHJvd3NlY3VyaXR5CisJCQkJCT8gZXJyZGV0YWlsKCJUaGUgZXJyb3Ig c2F2aW5nIHRhYmxlIGNhbm5vdCBoYXZlIHJvdy1sZXZlbCBzZWN1cml0eSBwb2xpY2llcy4iKQor CQkJCQk6IGVycmRldGFpbCgiVGhlIGVycm9yIHNhdmluZyB0YWJsZSBjYW5ub3QgaGF2ZSBydWxl cy4iKSk7CisKKwkJdHlwb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFRZUEVOQU1FTlNQLCBBbnVtX3Bn X3R5cGVfb2lkLAorCQkJCQkJCQkgQ1N0cmluZ0dldERhdHVtKCJjb3B5X2Vycm9yX3NhdmluZyIp LAorCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShQR19DQVRBTE9HX05BTUVTUEFDRSkpOworCQlp ZiAoIU9pZElzVmFsaWQodHlwb2lkKSkKKwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFp bGVkIGZvciBjYXRhbG9nIHR5cGUgJXMiLCAiY29weV9lcnJvcl9zYXZpbmciKTsKKworCQl0cCA9 IFNlYXJjaFN5c0NhY2hlMShSRUxPSUQsIE9iamVjdElkR2V0RGF0dW0oZXJyX3JlbE9pZCkpOwor CQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1 cCBmYWlsZWQgZm9yIHJlbGF0aW9uICV1IiwgZXJyX3JlbE9pZCk7CisJCWVsc2UKKwkJeworCQkJ Rm9ybV9wZ19jbGFzcyByZWx0dXAgPSAoRm9ybV9wZ19jbGFzcykgR0VUU1RSVUNUKHRwKTsKKwor CQkJcmVsb2Z0eXBlID0gcmVsdHVwLT5yZWxvZnR5cGU7CisKKwkJCWlmIChyZWxvZnR5cGUgIT0g dHlwb2lkKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfV1JPTkdf T0JKRUNUX1RZUEUpLAorCQkJCQkJZXJybXNnKCJjYW5ub3QgdXNlIHJlbGF0aW9uIFwiJXNcIiBm b3IgQ09QWSBlcnJvciBzYXZpbmciLAorCQkJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KGNzdGF0ZS0+ZXJyb3JfcmVsKSksCisJCQkJCQlPaWRJc1ZhbGlkKHJlbG9mdHlwZSkKKwkJCQkJ CT8gZXJyZGV0YWlsKCJSZWxhdGlvbiBcIiVzXCIgaXMgYSB0eXBlZCB0YWJsZSBiYXNlZCBvbiB0 eXBlIFwiJXNcIi4iLAorCQkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoY3N0YXRlLT5l cnJvcl9yZWwpLAorCQkJCQkJCQkJZm9ybWF0X3R5cGVfYmVfcXVhbGlmaWVkKHJlbG9mdHlwZSkp CisJCQkJCQk6IDAsCisJCQkJCQllcnJoaW50KCJUaGUgQ09QWSBlcnJvciBzYXZpbmcgdGFibGUg bXVzdCBiZSBhIHR5cGVkIHRhYmxlIGJhc2VkIG9uIHR5cGUgXCIlc1wiLiIsCisJCQkJCQkJCWZv cm1hdF90eXBlX2JlX3F1YWxpZmllZCh0eXBvaWQpKSk7CisKKwkJCVJlbGVhc2VTeXNDYWNoZSh0 cCk7CisJCX0KKwl9CiAKIAkvKiBDb252ZXJ0IEZPUkNFX05VTEwgbmFtZSBsaXN0IHRvIHBlci1j b2x1bW4gZmxhZ3MsIGNoZWNrIHZhbGlkaXR5ICovCiAJY3N0YXRlLT5vcHRzLmZvcmNlX251bGxf ZmxhZ3MgPSAoYm9vbCAqKSBwYWxsb2MwKG51bV9waHlzX2F0dHJzICogc2l6ZW9mKGJvb2wpKTsK QEAgLTE5NjAsNiArMjEwNiw5IEBAIEVuZENvcHlGcm9tKENvcHlGcm9tU3RhdGUgY3N0YXRlKQog CiAJcGdzdGF0X3Byb2dyZXNzX2VuZF9jb21tYW5kKCk7CiAKKwlpZiAoY3N0YXRlLT5lcnJvcl9y ZWwpCisJCXRhYmxlX2Nsb3NlKGNzdGF0ZS0+ZXJyb3JfcmVsLCBOb0xvY2spOworCiAJTWVtb3J5 Q29udGV4dERlbGV0ZShjc3RhdGUtPmNvcHljb250ZXh0KTsKIAlwZnJlZShjc3RhdGUpOwogfQpA QCAtMTk5OCwzICsyMTQ3LDE1MCBAQCBDbG9zZVBpcGVGcm9tUHJvZ3JhbShDb3B5RnJvbVN0YXRl IGNzdGF0ZSkKIAkJCQkgZXJyZGV0YWlsX2ludGVybmFsKCIlcyIsIHdhaXRfcmVzdWx0X3RvX3N0 cihwY2xvc2VfcmMpKSkpOwogCX0KIH0KKworLyoKKyAqIFBlcmZvcm0gcGVybWlzc2lvbiBhbmQg b3RoZXIgY2hlY2tzIGZvciBlcnJvcl90YWJsZSwgYW5kIGluaXRpYWxpemUKKyAqIGNzdGF0ZS0+ bXRjb250ZXh0LgorICovCitzdGF0aWMgdm9pZAorQ29weUZyb21FcnJvclRhYmxlSW5pdChDb3B5 RnJvbVN0YXRlIGNzdGF0ZSkKK3sKKwlNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlOworCU1vZGlm eVRhYmxlICpub2RlOworCU1lbW9yeUNvbnRleHQgdG1wY29udGV4dDsKKwlQYXJzZVN0YXRlICpw c3RhdGUgPSBtYWtlX3BhcnNlc3RhdGUoTlVMTCk7CisJRVN0YXRlCSAgICplc3RhdGUgPSBDcmVh dGVFeGVjdXRvclN0YXRlKCk7CisKKwljc3RhdGUtPm10Y29udGV4dCA9IHBhbGxvYzBfb2JqZWN0 KE1vZGlmeVRhYmxlQ29udGV4dCk7CisKKwlBc3NlcnQoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09 IENPUFlfT05fRVJST1JfVEFCTEUpOworCisJdG1wY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhlc3RhdGUtPmVzX3F1ZXJ5X2N4dCk7CisKKwllc3RhdGUtPmVzX291dHB1dF9jaWQgPSBH ZXRDdXJyZW50Q29tbWFuZElkKHRydWUpOworCWVzdGF0ZS0+ZXNfc25hcHNob3QgPSBSZWdpc3Rl clNuYXBzaG90KEdldEFjdGl2ZVNuYXBzaG90KCkpOworCWVzdGF0ZS0+ZXNfY3Jvc3NjaGVja19z bmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoSW52YWxpZFNuYXBzaG90KTsKKworCS8qIERvIHRo ZSBlcnJvciBzYXZpbmcgdGFibGUgcGVybWlzc2lvbiBjaGVjayAqLworCUNvcHlGcm9tRXJyb3JU YWJsZVBlcm1pc3Npb25DaGVjayhwc3RhdGUsIGNzdGF0ZS0+ZXJyb3JfcmVsKTsKKworCS8qCisJ ICogV2UgbmVlZCBhIFJlc3VsdFJlbEluZm8gc28gd2UgY2FuIHVzZSB0aGUgcmVndWxhciBleGVj dXRvcidzCisJICogaW5kZXgtZW50cnktbWFraW5nIG1hY2hpbmVyeS4KKwkgKi8KKwlFeGVjSW5p dFJhbmdlVGFibGUoZXN0YXRlLCBwc3RhdGUtPnBfcnRhYmxlLCBwc3RhdGUtPnBfcnRlcGVybWlu Zm9zLAorCQkJCQkgICBibXNfbWFrZV9zaW5nbGV0b24oMSkpOworCisJbm9kZSA9IG1ha2VOb2Rl KE1vZGlmeVRhYmxlKTsKKwlub2RlLT5vcGVyYXRpb24gPSBDTURfSU5TRVJUOworCW5vZGUtPmNh blNldFRhZyA9IGZhbHNlOworCW5vZGUtPnJvb3RSZWxhdGlvbiA9IDA7CisJbm9kZS0+cmVzdWx0 UmVsYXRpb25zID0gbGlzdF9tYWtlMV9pbnQoMSk7CisJbm9kZS0+b25Db25mbGljdEFjdGlvbiA9 IE9OQ09ORkxJQ1RfTk9ORTsKKworCS8qCisJICogUG9wdWxhdGUgTW9kaWZ5VGFibGVTdGF0ZSBm b3IgaW5zZXJ0aW5nIHJlY29yZCB0byBlcnJvciBzYXZpbmcgdGFibGUuCisJICovCisJbXRzdGF0 ZSA9IG1ha2VOb2RlKE1vZGlmeVRhYmxlU3RhdGUpOworCW10c3RhdGUtPnBzLnBsYW4gPSAoUGxh biAqKSBub2RlOworCW10c3RhdGUtPnBzLnN0YXRlID0gZXN0YXRlOworCisJbXRzdGF0ZS0+b3Bl cmF0aW9uID0gQ01EX0lOU0VSVDsKKwltdHN0YXRlLT5jYW5TZXRUYWcgPSBmYWxzZTsKKwltdHN0 YXRlLT5tdF9kb25lID0gZmFsc2U7CisKKwltdHN0YXRlLT5tdF9ucmVscyA9IDE7CisJbXRzdGF0 ZS0+cmVzdWx0UmVsSW5mbyA9IHBhbGxvY19hcnJheShSZXN1bHRSZWxJbmZvLCAxKTsKKworCW10 c3RhdGUtPnJvb3RSZXN1bHRSZWxJbmZvID0gbXRzdGF0ZS0+cmVzdWx0UmVsSW5mbzsKKwlFeGVj SW5pdFJlc3VsdFJlbGF0aW9uKGVzdGF0ZSwgbXRzdGF0ZS0+cmVzdWx0UmVsSW5mbywKKwkJCQkJ CSAgIGxpbml0aWFsX2ludChub2RlLT5yZXN1bHRSZWxhdGlvbnMpKTsKKworCS8qIFZlcmlmeSB0 aGUgbmFtZWQgcmVsYXRpb24gaXMgYSB2YWxpZCB0YXJnZXQgZm9yIElOU0VSVCAqLworCUNoZWNr VmFsaWRSZXN1bHRSZWwobXRzdGF0ZS0+cmVzdWx0UmVsSW5mbywgbm9kZS0+b3BlcmF0aW9uLAor CQkJCQkJbm9kZS0+b25Db25mbGljdEFjdGlvbiwgTklMKTsKKworCS8qCisJICogT3BlbiB0aGUg dGFibGUncyBpbmRleGVzLCBpZiB3ZSBoYXZlIG5vdCBkb25lIHNvIGFscmVhZHksIHNvIHRoYXQg d2UKKwkgKiBjYW4gYWRkIG5ldyBpbmRleCBlbnRyaWVzIGZvciB0aGUgaW5zZXJ0ZWQgdHVwbGUu CisJICovCisJaWYgKGNzdGF0ZS0+ZXJyb3JfcmVsLT5yZF9yZWwtPnJlbGhhc2luZGV4ICYmCisJ CW10c3RhdGUtPnJlc3VsdFJlbEluZm8tPnJpX0luZGV4UmVsYXRpb25EZXNjcyA9PSBOVUxMKQor CQlFeGVjT3BlbkluZGljZXMobXRzdGF0ZS0+cmVzdWx0UmVsSW5mbywKKwkJCQkJCW5vZGUtPm9u Q29uZmxpY3RBY3Rpb24gIT0gT05DT05GTElDVF9OT05FKTsKKworCU1lbW9yeUNvbnRleHRTd2l0 Y2hUbyh0bXBjb250ZXh0KTsKKworCWNzdGF0ZS0+bXRjb250ZXh0LT5tdHN0YXRlID0gbXRzdGF0 ZTsKKwljc3RhdGUtPm10Y29udGV4dC0+ZXN0YXRlID0gZXN0YXRlOworfQorCisvKgorICogQ2Fs bGJhY2sgdG8gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKCkuCisgKgorICogQ2hlY2tzIHRoZSBm b2xsb3dpbmc6CisgKgktIHRoZSByZWxhdGlvbiBzcGVjaWZpZWQgaXMgYSB0YWJsZS4KKyAqCS0g dGhlIHRhYmxlIGlzIG5vdCBhIHN5c3RlbSB0YWJsZS4KKyAqCisgKiBJZiBhbnkgb2YgdGhlc2Ug Y2hlY2tzIGZhaWxzIHRoZW4gYW4gZXJyb3IgaXMgcmFpc2VkLgorICovCitzdGF0aWMgdm9pZAor UmFuZ2VWYXJDYWxsYmFja0ZvckNvcHlFcnJvclRhYmxlKGNvbnN0IFJhbmdlVmFyICpydiwgT2lk IHJlbGlkLCBPaWQgb2xkcmVsaWQsCisJCQkJCQkJCSAgdm9pZCAqYXJnKQoreworCUhlYXBUdXBs ZQl0dXBsZTsKKwlGb3JtX3BnX2NsYXNzIGNsYXNzZm9ybTsKKwljaGFyCQlyZWxraW5kOworCisJ dHVwbGUgPSBTZWFyY2hTeXNDYWNoZTEoUkVMT0lELCBPYmplY3RJZEdldERhdHVtKHJlbGlkKSk7 CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJcmV0dXJuOworCisJY2xhc3Nmb3Jt ID0gKEZvcm1fcGdfY2xhc3MpIEdFVFNUUlVDVCh0dXBsZSk7CisJcmVsa2luZCA9IGNsYXNzZm9y bS0+cmVsa2luZDsKKworCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFz cyhyZWxpZCwgY2xhc3Nmb3JtKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNP REVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJZXJybXNnKCJwZXJtaXNzaW9uIGRlbmll ZDogXCIlc1wiIGlzIGEgc3lzdGVtIGNhdGFsb2ciLAorCQkJCQkgICBydi0+cmVsbmFtZSkpOwor CisJLyoKKwkgKiBDdXJyZW50bHksIHRoZSBlcnJvci1zYXZpbmcgdGFibGUgbXVzdCBiZSBhIHJl Z3VsYXIgcmVsYXRpb24uCisJICoKKwkgKiBUT0RPOiBBbGxvdyBjc3RhdGUtPmVycm9yX3JlbCB0 byBiZSBhIHBhcnRpdGlvbmVkIHRhYmxlLiBUaGlzIHNob3VsZCBiZQorCSAqIG5vdCBkaWZmaWN1 bHQsIGJ1dCByZXF1aXJlcyBwcm9wZXIgaGFuZGxpbmcgb2YgY29uc3RyYWludHMgYW5kIHRyaWdn ZXJzCisJICogb24gdGhlIHBhcnRpdGlvbmVkIHRhYmxlLgorCSAqLworCWlmIChyZWxraW5kICE9 IFJFTEtJTkRfUkVMQVRJT04pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RF X1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQllcnJtc2coImNhbm5vdCB1c2UgcmVsYXRpb24gXCIl c1wiIGZvciBDT1BZIGVycm9yIHNhdmluZyIsCisJCQkJCSAgIHJ2LT5yZWxuYW1lKSwKKwkJCQll cnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKHJlbGtpbmQpKTsKKworCVJlbGVhc2VTeXND YWNoZSh0dXBsZSk7Cit9CisKKy8qCisgKiBDT1BZIChPTl9FUlJPUiBUQUJMRSkgaW5zZXJ0cyBD T1BZIEZST00gZXJyb3IgZGV0YWlscyB0byBlcnJvcl90YWJsZSwKKyAqIHRoZXJlZm9yZSwgdGhl IGN1cnJlbnQgdXNlciBtdXN0IGhhdmUgSU5TRVJUIHByaXZpbGVnZXMgb24gZXJyb3JfdGFibGUu CisgKi8KK3N0YXRpYyB2b2lkCitDb3B5RnJvbUVycm9yVGFibGVQZXJtaXNzaW9uQ2hlY2soUGFy c2VTdGF0ZSAqcHN0YXRlLCBSZWxhdGlvbiByZWwpCit7CisJTE9DS01PREUJbG9ja21vZGUgPSBS b3dFeGNsdXNpdmVMb2NrOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkvKiBNdXN0IGhhdmUg SU5TRVJUIHByaXZpbGVnZSBvbiB0aGUgdGFibGUgKi8KKwlhY2xyZXN1bHQgPSBwZ19jbGFzc19h Y2xjaGVjayhSZWxhdGlvbkdldFJlbGlkKHJlbCksCisJCQkJCQkJCSAgR2V0VXNlcklkKCksCisJ CQkJCQkJCSAgQUNMX0lOU0VSVCk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJ YWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LAorCQkJCQkgICBnZXRfcmVsa2luZF9vYmp0eXBlKGdl dF9yZWxfcmVsa2luZChSZWxhdGlvbkdldFJlbGlkKHJlbCkpKSwKKwkJCQkJICAgUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsKSk7CisKKwlhZGRSYW5nZVRhYmxlRW50cnlGb3JSZWxhdGlvbihw c3RhdGUsIHJlbCwgbG9ja21vZGUsCisJCQkJCQkJCSAgTlVMTCwgZmFsc2UsIGZhbHNlKTsKK30K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYwppbmRleCA2NWZkNWEwYWI0Zi4uZjdiNDU2 YmQ4YmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNlLmMKQEAgLTExMDEsNiArMTEw MSw5NiBAQCBDb3B5RnJvbVRleHRMaWtlT25lUm93KENvcHlGcm9tU3RhdGUgY3N0YXRlLCBFeHBy Q29udGV4dCAqZWNvbnRleHQsCiAJCQkJCWNzdGF0ZS0+bnVtX2Vycm9ycysrOwogCQkJCX0KIAkJ CX0KKwkJCWVsc2UgaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX1RB QkxFKQorCQkJeworCQkJCWNoYXIJICAgKmVycl9jb2RlOworCQkJCURhdHVtCSAgICpuZXd2YWx1 ZXM7CisJCQkJYm9vbAkgICAqbmV3bnVsbHM7CisJCQkJTW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0 ZSA9IGNzdGF0ZS0+bXRjb250ZXh0LT5tdHN0YXRlOworCQkJCUVTdGF0ZQkgICAqZXN0YXRlID0g bXRzdGF0ZS0+cHMuc3RhdGU7CisJCQkJTWVtb3J5Q29udGV4dCB0bXBjb250ZXh0OworCisJCQkJ LyogUHJlcGFyZSB0byBidWlsZCB0aGUgcmVzdWx0IHR1cGxlICovCisJCQkJVHVwbGVUYWJsZVNs b3QgKm15c2xvdCA9IEV4ZWNHZXRSZXR1cm5pbmdTbG90KGVzdGF0ZSwKKwkJCQkJCQkJCQkJCQkJ CSAgbXRzdGF0ZS0+cmVzdWx0UmVsSW5mbyk7CisKKwkJCQlFeGVjQ2xlYXJUdXBsZShteXNsb3Qp OworCisJCQkJbmV3dmFsdWVzID0gbXlzbG90LT50dHNfdmFsdWVzOworCQkJCW5ld251bGxzID0g bXlzbG90LT50dHNfaXNudWxsOworCisJCQkJQXNzZXJ0KFJlbGF0aW9uR2V0RGVzY3IoY3N0YXRl LT5lcnJvcl9yZWwpLT5uYXR0cyA9PSAxMCk7CisKKwkJCQlmb3IgKGludCBpID0gMDsgaSA8IFJl bGF0aW9uR2V0RGVzY3IoY3N0YXRlLT5lcnJvcl9yZWwpLT5uYXR0czsgaSsrKQorCQkJCQluZXdu dWxsc1tpXSA9IGZhbHNlOworCisJCQkJbmV3dmFsdWVzWzBdID0gT2JqZWN0SWRHZXREYXR1bShH ZXRVc2VySWQoKSk7CisJCQkJbmV3dmFsdWVzWzFdID0gT2JqZWN0SWRHZXREYXR1bShjc3RhdGUt PnJlbC0+cmRfcmVsLT5vaWQpOworCQkJCW5ld3ZhbHVlc1syXSA9IENTdHJpbmdHZXRUZXh0RGF0 dW0oY3N0YXRlLT5maWxlbmFtZSA/IGNzdGF0ZS0+ZmlsZW5hbWUgOiAiU1RESU4iKTsKKwkJCQlu ZXd2YWx1ZXNbM10gPSBJbnQ2NEdldERhdHVtKChpbnQ2NCkgY3N0YXRlLT5jdXJfbGluZW5vKTsK KwkJCQluZXd2YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKGNzdGF0ZS0+bGluZV9idWYu ZGF0YSk7CisJCQkJbmV3dmFsdWVzWzVdID0gQ1N0cmluZ0dldFRleHREYXR1bShjc3RhdGUtPmN1 cl9hdHRuYW1lKTsKKworCQkJCWlmIChzdHJpbmcpCisJCQkJCW5ld3ZhbHVlc1s2XSA9IENTdHJp bmdHZXRUZXh0RGF0dW0oc3RyaW5nKTsKKwkJCQllbHNlCisJCQkJeworCQkJCQluZXd2YWx1ZXNb Nl0gPSAoRGF0dW0pIDA7CisJCQkJCW5ld251bGxzWzZdID0gdHJ1ZTsKKwkJCQl9CisKKwkJCQlp ZiAoY3N0YXRlLT5lc2NvbnRleHQtPmVycm9yX2RhdGEtPm1lc3NhZ2UpCisJCQkJCW5ld3ZhbHVl c1s3XSA9CisJCQkJCQlDU3RyaW5nR2V0VGV4dERhdHVtKGNzdGF0ZS0+ZXNjb250ZXh0LT5lcnJv cl9kYXRhLT5tZXNzYWdlKTsKKwkJCQllbHNlCisJCQkJeworCQkJCQluZXd2YWx1ZXNbN10gPSAo RGF0dW0pIDA7CisJCQkJCW5ld251bGxzWzddID0gdHJ1ZTsKKwkJCQl9CisKKwkJCQlpZiAoY3N0 YXRlLT5lc2NvbnRleHQtPmVycm9yX2RhdGEtPmRldGFpbCkKKwkJCQkJbmV3dmFsdWVzWzhdID0K KwkJCQkJCUNTdHJpbmdHZXRUZXh0RGF0dW0oY3N0YXRlLT5lc2NvbnRleHQtPmVycm9yX2RhdGEt PmRldGFpbCk7CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJbmV3dmFsdWVzWzhdID0gKERhdHVtKSAw OworCQkJCQluZXdudWxsc1s4XSA9IHRydWU7CisJCQkJfQorCisJCQkJZXJyX2NvZGUgPQorCQkJ CQl1bnBhY2tfc3FsX3N0YXRlKGNzdGF0ZS0+ZXNjb250ZXh0LT5lcnJvcl9kYXRhLT5zcWxlcnJj b2RlKTsKKwkJCQluZXd2YWx1ZXNbOV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKGVycl9jb2RlKTsK KworCQkJCS8qIEJ1aWxkIHRoZSB2aXJ0dWFsIHR1cGxlLiAqLworCQkJCUV4ZWNTdG9yZVZpcnR1 YWxUdXBsZShteXNsb3QpOworCisJCQkJdG1wY29udGV4dCA9CisJCQkJCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhjc3RhdGUtPm10Y29udGV4dC0+ZXN0YXRlLT5lc19xdWVyeV9jeHQpOworCisJCQkJ QWZ0ZXJUcmlnZ2VyQmVnaW5RdWVyeSgpOworCQkJCW10c3RhdGUtPm10X3RyYW5zaXRpb25fY2Fw dHVyZSA9CisJCQkJCU1ha2VUcmFuc2l0aW9uQ2FwdHVyZVN0YXRlKGNzdGF0ZS0+ZXJyb3JfcmVs LT50cmlnZGVzYywKKwkJCQkJCQkJCQkJICAgUmVsYXRpb25HZXRSZWxpZChjc3RhdGUtPmVycm9y X3JlbCksCisJCQkJCQkJCQkJCSAgIENNRF9JTlNFUlQpOworCQkJCS8qIEV4ZWN1dGUgQkVGT1JF IFNUQVRFTUVOVCBpbnNlcnRpb24gdHJpZ2dlcnMgKi8KKwkJCQlFeGVjQlNJbnNlcnRUcmlnZ2Vy cyhjc3RhdGUtPm10Y29udGV4dC0+ZXN0YXRlLAorCQkJCQkJCQkJIGNzdGF0ZS0+bXRjb250ZXh0 LT5tdHN0YXRlLT5yb290UmVzdWx0UmVsSW5mbyk7CisJCQkJRXhlY0luc2VydChjc3RhdGUtPm10 Y29udGV4dCwKKwkJCQkJCSAgIGNzdGF0ZS0+bXRjb250ZXh0LT5tdHN0YXRlLT5yZXN1bHRSZWxJ bmZvLAorCQkJCQkJICAgbXlzbG90LAorCQkJCQkJICAgZmFsc2UsCisJCQkJCQkgICBOVUxMLAor CQkJCQkJICAgTlVMTCk7CisJCQkJLyogRXhlY3V0ZSBBRlRFUiBTVEFURU1FTlQgaW5zZXJ0aW9u IHRyaWdnZXJzICovCisJCQkJRXhlY0FTSW5zZXJ0VHJpZ2dlcnMoY3N0YXRlLT5tdGNvbnRleHQt PmVzdGF0ZSwKKwkJCQkJCQkJCSBtdHN0YXRlLT5yb290UmVzdWx0UmVsSW5mbywKKwkJCQkJCQkJ CSBtdHN0YXRlLT5tdF90cmFuc2l0aW9uX2NhcHR1cmUpOworCQkJCUFmdGVyVHJpZ2dlckVuZFF1 ZXJ5KGVzdGF0ZSk7CisKKwkJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8odG1wY29udGV4dCk7CisK KwkJCQljc3RhdGUtPm51bV9lcnJvcnMrKzsKKwkJCX0KIAogCQkJaWYgKGNzdGF0ZS0+b3B0cy5s b2dfdmVyYm9zaXR5ID09IENPUFlfTE9HX1ZFUkJPU0lUWV9WRVJCT1NFKQogCQkJewpAQCAtMTEz MCw2ICsxMjIwLDEzIEBAIENvcHlGcm9tVGV4dExpa2VPbmVSb3coQ29weUZyb21TdGF0ZSBjc3Rh dGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwKIAkJCQkJCQkJCSAgIGNzdGF0ZS0+Y3VyX2xpbmVu bywKIAkJCQkJCQkJCSAgIGNzdGF0ZS0+Y3VyX2F0dG5hbWUsCiAJCQkJCQkJCQkgICBhdHR2YWwp KTsKKwkJCQkJZWxzZSBpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1Jf VEFCTEUpCisJCQkJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJCQkJZXJybXNnKCJzYXZpbmcgZXJy b3IgaW5mb3JtYXRpb24gdG8gdGFibGUgXCIlc1wiIHJvdyBkdWUgdG8gZGF0YSB0eXBlIGluY29t cGF0aWJpbGl0eSBhdCBsaW5lICUiIFBSSXU2NCAiIGZvciBjb2x1bW4gXCIlc1wiOiBcIiVzXCIi LAorCQkJCQkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoY3N0YXRlLT5lcnJvcl9yZWwp LAorCQkJCQkJCQkJICAgY3N0YXRlLT5jdXJfbGluZW5vLAorCQkJCQkJCQkJICAgY3N0YXRlLT5j dXJfYXR0bmFtZSwKKwkJCQkJCQkJCSAgIGF0dHZhbCkpOwogCQkJCQlwZnJlZShhdHR2YWwpOwog CQkJCX0KIAkJCQllbHNlCkBAIC0xMTM5LDYgKzEyMzYsMTIgQEAgQ29weUZyb21UZXh0TGlrZU9u ZVJvdyhDb3B5RnJvbVN0YXRlIGNzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LAogCQkJCQkJ CQllcnJtc2coInNraXBwaW5nIHJvdyBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSBh dCBsaW5lICUiIFBSSXU2NCAiIGZvciBjb2x1bW4gXCIlc1wiOiBudWxsIGlucHV0IiwKIAkJCQkJ CQkJCSAgIGNzdGF0ZS0+Y3VyX2xpbmVubywKIAkJCQkJCQkJCSAgIGNzdGF0ZS0+Y3VyX2F0dG5h bWUpKTsKKwkJCQkJZWxzZSBpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJS T1JfVEFCTEUpCisJCQkJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJCQkJZXJybXNnKCJzYXZpbmcg ZXJyb3IgaW5mb3JtYXRpb24gdG8gdGFibGUgXCIlc1wiIHJvdyBkdWUgdG8gZGF0YSB0eXBlIGlu Y29tcGF0aWJpbGl0eSBhdCBsaW5lICUiIFBSSXU2NCAiIGZvciBjb2x1bW4gXCIlc1wiOiBudWxs IGlucHV0IiwKKwkJCQkJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGNzdGF0ZS0+ZXJy b3JfcmVsKSwKKwkJCQkJCQkJCSAgIGNzdGF0ZS0+Y3VyX2xpbmVubywKKwkJCQkJCQkJCSAgIGNz dGF0ZS0+Y3VyX2F0dG5hbWUpKTsKIAkJCQl9CiAJCQkJLyogcmVzZXQgcmVsbmFtZV9vbmx5ICov CiAJCQkJY3N0YXRlLT5yZWxuYW1lX29ubHkgPSBmYWxzZTsKQEAgLTExNDgsNiArMTI1MSw4IEBA IENvcHlGcm9tVGV4dExpa2VPbmVSb3coQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJDb250ZXh0 ICplY29udGV4dCwKIAkJCQlyZXR1cm4gdHJ1ZTsKIAkJCWVsc2UgaWYgKGNzdGF0ZS0+b3B0cy5v bl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX1NFVF9OVUxMKQogCQkJCWNvbnRpbnVlOworCQkJZWxz ZSBpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfVEFCTEUpCisJCQkJ cmV0dXJuIHRydWU7CiAJCX0KIAogCQljc3RhdGUtPmN1cl9hdHRuYW1lID0gTlVMTDsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CmluZGV4IGZmNGUxMzg4YzU1Li4yODU0ZjJhODg0ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0zNzU1 LDYgKzM3NTUsNyBAQCBjb3B5X2dlbmVyaWNfb3B0X2FyZzoKIAkJCXwgTnVtZXJpY09ubHkJCQkJ CXsgJCQgPSAoTm9kZSAqKSAkMTsgfQogCQkJfCAnKicJCQkJCQkJeyAkJCA9IChOb2RlICopIG1h a2VOb2RlKEFfU3Rhcik7IH0KIAkJCXwgREVGQVVMVCAgICAgICAgICAgICAgICAgICAgICAgeyAk JCA9IChOb2RlICopIG1ha2VTdHJpbmcoImRlZmF1bHQiKTsgfQorCQkJfCBUQUJMRSAgICAgICAg ICAgICAgICAgICAgICAgICB7ICQkID0gKE5vZGUgKikgbWFrZVN0cmluZygidGFibGUiKTsgfQog CQkJfCAnKCcgY29weV9nZW5lcmljX29wdF9hcmdfbGlzdCAnKScJCXsgJCQgPSAoTm9kZSAqKSAk MjsgfQogCQkJfCAvKiBFTVBUWSAqLwkJCQkJeyAkJCA9IE5VTEw7IH0KIAkJOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29w eS5oCmluZGV4IGFiZWNmZTUxMDk4Li4zNzQ1MzQyZDBmOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvY29weS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaApAQCAt MzYsNiArMzYsNyBAQCB0eXBlZGVmIGVudW0gQ29weU9uRXJyb3JDaG9pY2UKIAlDT1BZX09OX0VS Uk9SX1NUT1AgPSAwLAkJLyogaW1tZWRpYXRlbHkgdGhyb3cgZXJyb3JzLCBkZWZhdWx0ICovCiAJ Q09QWV9PTl9FUlJPUl9JR05PUkUsCQkvKiBpZ25vcmUgZXJyb3JzICovCiAJQ09QWV9PTl9FUlJP Ul9TRVRfTlVMTCwJCS8qIHNldCBlcnJvciBmaWVsZCB0byBudWxsICovCisJQ09QWV9PTl9FUlJP Ul9UQUJMRSwJCS8qIHNhdmUgaW5wdXQgY29udmVyc2lvbiBlcnJvcnMgaW5mbyB0byB0YWJsZSAq LwogfSBDb3B5T25FcnJvckNob2ljZTsKIAogLyoKQEAgLTk2LDYgKzk3LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgQ29weUZvcm1hdE9wdGlvbnMKIAlDb3B5T25FcnJvckNob2ljZSBvbl9lcnJvcjsgLyog d2hhdCB0byBkbyB3aGVuIGVycm9yIGhhcHBlbmVkICovCiAJQ29weUxvZ1ZlcmJvc2l0eUNob2lj ZSBsb2dfdmVyYm9zaXR5OwkvKiB2ZXJib3NpdHkgb2YgbG9nZ2VkIG1lc3NhZ2VzICovCiAJaW50 NjQJCXJlamVjdF9saW1pdDsJLyogbWF4aW11bSB0b2xlcmFibGUgbnVtYmVyIG9mIGVycm9ycyAq LworCWNoYXIJCSplcnJvcl90YWJsZTsgCS8qIG9uIGVycm9yLCBzYXZlIGVycm9yIGluZm8gdG8g dGhlIHRhYmxlLCB0YWJsZSBuYW1lICovCiAJTGlzdAkgICAqY29udmVydF9zZWxlY3Q7IC8qIGxp c3Qgb2YgY29sdW1uIG5hbWVzIChjYW4gYmUgTklMKSAqLwogfSBDb3B5Rm9ybWF0T3B0aW9uczsK IApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weWZyb21faW50ZXJuYWwuaCBi L3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHlmcm9tX2ludGVybmFsLmgKaW5kZXggOWQzZTI0NGVl NTUuLjY0ZDBiMjA0MDkwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJv bV9pbnRlcm5hbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHlmcm9tX2ludGVybmFs LmgKQEAgLTE2LDYgKzE2LDcgQEAKIAogI2luY2x1ZGUgImNvbW1hbmRzL2NvcHkuaCIKICNpbmNs dWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZU1vZGlmeVRh YmxlLmgiCiAjaW5jbHVkZSAibm9kZXMvbWlzY25vZGVzLmgiCiAKIC8qCkBAIC03Myw2ICs3NCw3 IEBAIHR5cGVkZWYgc3RydWN0IENvcHlGcm9tU3RhdGVEYXRhCiAKIAkvKiBwYXJhbWV0ZXJzIGZy b20gdGhlIENPUFkgY29tbWFuZCAqLwogCVJlbGF0aW9uCXJlbDsJCQkvKiByZWxhdGlvbiB0byBj b3B5IGZyb20gKi8KKwlSZWxhdGlvbgllcnJvcl9yZWw7CQkvKiByZWxhdGlvbiBmb3IgY29weSBm cm9tIGVycm9yIHNhdmluZyAqLwogCUxpc3QJICAgKmF0dG51bWxpc3Q7CQkvKiBpbnRlZ2VyIGxp c3Qgb2YgYXR0bnVtcyB0byBjb3B5ICovCiAJY2hhcgkgICAqZmlsZW5hbWU7CQkvKiBmaWxlbmFt ZSwgb3IgTlVMTCBmb3IgU1RESU4gKi8KIAlib29sCQlpc19wcm9ncmFtOwkJLyogaXMgJ2ZpbGVu YW1lJyBhIHByb2dyYW0gdG8gcG9wZW4/ICovCkBAIC0xODksNiArMTkxLDEzIEBAIHR5cGVkZWYg c3RydWN0IENvcHlGcm9tU3RhdGVEYXRhCiAjZGVmaW5lIFJBV19CVUZfQllURVMoY3N0YXRlKSAo KGNzdGF0ZSktPnJhd19idWZfbGVuIC0gKGNzdGF0ZSktPnJhd19idWZfaW5kZXgpCiAKIAl1aW50 NjQJCWJ5dGVzX3Byb2Nlc3NlZDsJLyogbnVtYmVyIG9mIGJ5dGVzIHByb2Nlc3NlZCBzbyBmYXIg Ki8KKworCS8qCisJICogSU5TRVJUIG9wZXJhdGlvbiBjb250ZXh0IGZvciBpbnNlcnRpbmcgQ09Q WSBGUk9NIGlucHV0IGNvbnZlcnNpb24KKwkgKiBmYWlsdXJlIGVycm9yIGluZm9ybWF0aW9uIHRv IGVycm9yX3RhYmxlLiBQb3B1bGF0ZWQgb25seSB3aGVuIE9OX0VSUk9SCisJICogaXMgc3BlY2lm aWVkIGFzICdUQUJMRScuCisJICovCisJTW9kaWZ5VGFibGVDb250ZXh0ICptdGNvbnRleHQ7CiB9 IENvcHlGcm9tU3RhdGVEYXRhOwogCiBleHRlcm4gdm9pZCBSZWNlaXZlQ29weUJlZ2luKENvcHlG cm9tU3RhdGUgY3N0YXRlKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y29weS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkub3V0CmluZGV4IDM3NDk4 Y2RkNmU3Li41MzBhODNhMzFmYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9jb3B5Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkub3V0CkBAIC00 MzMsNiArNDMzLDEyIEBAIElORk86ICBwcm9ncmVzczogeyJ0eXBlIjogIkZJTEUiLCAiY29tbWFu ZCI6ICJDT1BZIEZST00iLCAicmVsbmFtZSI6ICJ0YWJfcHJvZ3JlCiBjb3B5IHRhYl9wcm9ncmVz c19yZXBvcnRpbmcgZnJvbSBzdGRpbihvbl9lcnJvciBpZ25vcmUpOwogTk9USUNFOiAgMiByb3dz IHdlcmUgc2tpcHBlZCBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eQogSU5GTzogIHBy b2dyZXNzOiB7InR5cGUiOiAiUElQRSIsICJjb21tYW5kIjogIkNPUFkgRlJPTSIsICJyZWxuYW1l IjogInRhYl9wcm9ncmVzc19yZXBvcnRpbmciLCAidHVwbGVzX3NraXBwZWQiOiAyLCAiaGFzX2J5 dGVzX3RvdGFsIjogZmFsc2UsICJ0dXBsZXNfZXhjbHVkZWQiOiAwLCAidHVwbGVzX3Byb2Nlc3Nl ZCI6IDEsICJoYXNfYnl0ZXNfcHJvY2Vzc2VkIjogdHJ1ZX0KK2JlZ2luOworY3JlYXRlIHRlbXAg dGFibGUgZXJyX3RibCBPRiBjb3B5X2Vycm9yX3NhdmluZzsKK2NvcHkgdGFiX3Byb2dyZXNzX3Jl cG9ydGluZyBmcm9tIHN0ZGluKG9uX2Vycm9yIHRhYmxlLCBlcnJvcl90YWJsZSBlcnJfdGJsKTsK K05PVElDRTogIDIgcm93cyB3ZXJlIHNhdmVkIHRvIHRhYmxlICJlcnJfdGJsIiBkdWUgdG8gZGF0 YSB0eXBlIGluY29tcGF0aWJpbGl0eQorSU5GTzogIHByb2dyZXNzOiB7InR5cGUiOiAiUElQRSIs ICJjb21tYW5kIjogIkNPUFkgRlJPTSIsICJyZWxuYW1lIjogInRhYl9wcm9ncmVzc19yZXBvcnRp bmciLCAidHVwbGVzX3NraXBwZWQiOiAyLCAiaGFzX2J5dGVzX3RvdGFsIjogZmFsc2UsICJ0dXBs ZXNfZXhjbHVkZWQiOiAwLCAidHVwbGVzX3Byb2Nlc3NlZCI6IDEsICJoYXNfYnl0ZXNfcHJvY2Vz c2VkIjogdHJ1ZX0KK3JvbGxiYWNrOwogZHJvcCB0cmlnZ2VyIGNoZWNrX2FmdGVyX3RhYl9wcm9n cmVzc19yZXBvcnRpbmcgb24gdGFiX3Byb2dyZXNzX3JlcG9ydGluZzsKIGRyb3AgZnVuY3Rpb24g bm90aWNlX2FmdGVyX3RhYl9wcm9ncmVzc19yZXBvcnRpbmcoKTsKIGRyb3AgdGFibGUgdGFiX3By b2dyZXNzX3JlcG9ydGluZzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y29weTIub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKaW5kZXggNzYw MGU1MjM5ZDIuLjRmYmNlNDc4ZjlmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NvcHkyLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dApA QCAtODg0LDcgKzg4NCwyMDggQEAgRVJST1I6ICBza2lwcGVkIG1vcmUgdGhhbiBSRUpFQ1RfTElN SVQgKDMpIHJvd3MgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkKIENPTlRFWFQ6ICBD T1BZIGNoZWNrX2lnbl9lcnIsIGxpbmUgNSwgY29sdW1uIG46ICIiCiBDT1BZIGNoZWNrX2lnbl9l cnIgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBpZ25vcmUsIHJlamVjdF9saW1pdCA0KTsKIE5P VElDRTogIDQgcm93cyB3ZXJlIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxp dHkKKy0tIFRlc3RzIGZvciBvbl9lcnJvciB0YWJsZSwgc2F2ZSBDT1BZIEZST00gaW5wdXQgZGF0 YSB0eXBlIGNvbnZlcnNpb24gZXJyb3IKKy0tIGluZm9ybWF0aW9uIHRvIGEgdXNlci1kZWZpbmVk IHRhYmxlCistLSBEaXJlY3QgbW9kaWZpY2F0aW9uIG9mIHN5c3RlbSBjYXRhbG9nIGNvbXBvc2l0 ZSB0eXBlIGNvcHlfZXJyb3Jfc2F2aW5nIGlzCistLSBub3QgYWxsb3dlZAorQUxURVIgVFlQRSBj b3B5X2Vycm9yX3NhdmluZyBBREQgQVRUUklCVVRFIGIgdGV4dDsKK0VSUk9SOiAgcGVybWlzc2lv biBkZW5pZWQ6ICJjb3B5X2Vycm9yX3NhdmluZyIgaXMgYSBzeXN0ZW0gY2F0YWxvZworQUxURVIg VFlQRSBjb3B5X2Vycm9yX3NhdmluZyBEUk9QIEFUVFJJQlVURSB1c2VyaWQ7CitFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkOiAiY29weV9lcnJvcl9zYXZpbmciIGlzIGEgc3lzdGVtIGNhdGFsb2cK K0FMVEVSIFRZUEUgY29weV9lcnJvcl9zYXZpbmcgUkVOQU1FIEFUVFJJQlVURSB1c2VyaWQgdG8g dXNlcmlkMTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQ6ICJjb3B5X2Vycm9yX3NhdmluZyIg aXMgYSBzeXN0ZW0gY2F0YWxvZworQUxURVIgVFlQRSBjb3B5X2Vycm9yX3NhdmluZyBBTFRFUiBB VFRSSUJVVEUgdXNlcmlkIFNFVCBEQVRBIFRZUEUgT0lEODsKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQ6ICJjb3B5X2Vycm9yX3NhdmluZyIgaXMgYSBzeXN0ZW0gY2F0YWxvZworQ1JFQVRFIFRB QkxFIHRfb25fZXJyb3JfdGFibGUoYSBqc29uYiwgYiBpbnQsIGMgaW50LCBkIGRjaGVja19pZ25f ZXJyMik7CitDUkVBVEUgVEFCTEUgZXJyX3RibCBPRiBjb3B5X2Vycm9yX3NhdmluZzsKK0NSRUFU RSBUQUJMRSBlcnJfdGJsMSBPRiBjb3B5X2Vycm9yX3NhdmluZzsKK0NSRUFURSBUQUJMRSBlcnJf dGJsMiBPRiBjb3B5X2Vycm9yX3NhdmluZyBQQVJUSVRJT04gQlkgUkFOR0UgKGxpbmVubyk7CitD UkVBVEUgVU5JUVVFIElOREVYIGVycl90YmxfaWR4IE9OIGVycl90YmwoY29sbmFtZSk7CitDUkVB VEUgVEVNUCBUQUJMRSBlcnJfdGJsMyBBUyBTRUxFQ1QgKiBGUk9NIGVycl90Ymw7CitDUkVBVEUg VFlQRSB0X2NvcHlfdHlwIEFTIChhIGludCwgYiBpbnQsIGMgaW50KTsKK0NSRUFURSBUQUJMRSB0 X2NvcHlfdGJsMSBPRiB0X2NvcHlfdHlwOworQ1JFQVRFIFRFTVAgVklFVyB0X2NvcHlfdjEgQVMg U0VMRUNUICogRlJPTSB0X29uX2Vycm9yX3RhYmxlOworLS0gYWxsIG9mIHRoZSBmb2xsb3dpbmcg c2hvdWxkIGZhaWwKK0NPUFkgdF9vbl9lcnJvcl90YWJsZSBGUk9NIFNURElOIFdJVEggKGZvcm1h dCBiaW5hcnksIG9uX2Vycm9yIHRhYmxlLCBlcnJvcl90YWJsZSBlcnJfdGJsKTsKK0VSUk9SOiAg b25seSBPTl9FUlJPUiBTVE9QIGlzIGFsbG93ZWQgaW4gQklOQVJZIG1vZGUKK0NPUFkgdF9vbl9l cnJvcl90YWJsZSBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIHRhYmxlLCBlcnJvcl90YWJsZSB0 X29uX2Vycm9yX3RhYmxlKTsKK0VSUk9SOiAgY2Fubm90IHVzZSByZWxhdGlvbiAidF9vbl9lcnJv cl90YWJsZSIgZm9yIENPUFkgZXJyb3Igc2F2aW5nIHdoaWxlIGNvcHlpbmcgZGF0YSB0byBpdAor Q09QWSB0X29uX2Vycm9yX3RhYmxlIEZST00gU1RESU4gV0lUSCAob25fZXJyb3IgdGFibGUsIGVy cm9yX3RhYmxlIHRfY29weV90YmwxKTsKK0VSUk9SOiAgY2Fubm90IHVzZSByZWxhdGlvbiAidF9j b3B5X3RibDEiIGZvciBDT1BZIGVycm9yIHNhdmluZworREVUQUlMOiAgUmVsYXRpb24gInRfY29w eV90YmwxIiBpcyBhIHR5cGVkIHRhYmxlIGJhc2VkIG9uIHR5cGUgInB1YmxpYy50X2NvcHlfdHlw Ii4KK0hJTlQ6ICBUaGUgQ09QWSBlcnJvciBzYXZpbmcgdGFibGUgbXVzdCBiZSBhIHR5cGVkIHRh YmxlIGJhc2VkIG9uIHR5cGUgInBnX2NhdGFsb2cuY29weV9lcnJvcl9zYXZpbmciLgorQ09QWSB0 X29uX2Vycm9yX3RhYmxlIEZST00gU1RESU4gV0lUSCAob25fZXJyb3IgdGFibGUsIGVycm9yX3Rh YmxlIHRfY29weV92MSk7CitFUlJPUjogIGNhbm5vdCB1c2UgcmVsYXRpb24gInRfY29weV92MSIg Zm9yIENPUFkgZXJyb3Igc2F2aW5nCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3Vw cG9ydGVkIGZvciB2aWV3cy4KK0NPUFkgdF9vbl9lcnJvcl90YWJsZSBGUk9NIFNURElOIFdJVEgg KG9uX2Vycm9yIHRhYmxlLCByZWplY3RfbGltaXQgMTAsIGVycm9yX3RhYmxlIGVycl90YmwpOwor RVJST1I6ICBDT1BZIFJFSkVDVF9MSU1JVCByZXF1aXJlcyBPTl9FUlJPUiB0byBiZSBzZXQgdG8g SUdOT1JFCitDT1BZIHRfb25fZXJyb3JfdGFibGUgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciB0 YWJsZSwgZXJyb3JfdGFibGUgbm90X2V4aXN0c3gpOworRVJST1I6ICByZWxhdGlvbiAibm90X2V4 aXN0c3giIGRvZXMgbm90IGV4aXN0CitDT1BZIHRfb25fZXJyb3JfdGFibGUgRlJPTSBTVERJTiBX SVRIIChvbl9lcnJvciB0YWJsZSk7CitFUlJPUjogIGNhbm5vdCBzZXQgb3B0aW9uIE9OX0VSUk9S IHRvICJUQUJMRSIgd2hlbiAiRVJST1JfVEFCTEUiIGlzIG5vdCBzcGVjaWZpZWQKK0hJTlQ6ICAi RVJST1JfVEFCTEUiIG9wdGlvbiBpcyByZXF1aXJlZAorQ09QWSB0X29uX2Vycm9yX3RhYmxlIEZS T00gU1RESU4gV0lUSCAoZXJyb3JfdGFibGUgZXJyX3RibCk7CitFUlJPUjogIENPUFkgRVJST1Jf VEFCTEUgY2FuIG9ubHkgYmUgdXNlZCB3aGVuIG9wdGlvbiBPTl9FUlJPUiBpcyBzZXQgdG8gIlRB QkxFIgorQ09QWSB0X29uX2Vycm9yX3RhYmxlIFRPIFNURElOIFdJVEggKG9uX2Vycm9yIHRhYmxl KTsKK0VSUk9SOiAgQ09QWSBPTl9FUlJPUiBjYW5ub3QgYmUgdXNlZCB3aXRoIENPUFkgVE8KK0xJ TkUgMTogQ09QWSB0X29uX2Vycm9yX3RhYmxlIFRPIFNURElOIFdJVEggKG9uX2Vycm9yIHRhYmxl KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIGFs bCBvZiB0aGUgYWJvdmUgc2hvdWxkIGZhaWwKKy0tIGVycm9yLCBlcnJvcl90YWJsZSBjYW5ub3Qg YmUgcGFydGl0aW9uZWQgdGFibGUKK0NPUFkgdF9vbl9lcnJvcl90YWJsZShhLGIpIEZST00gU1RE SU4gV0lUSCAob25fZXJyb3IgdGFibGUsIGVycm9yX3RhYmxlIGVycl90YmwyKTsKK0VSUk9SOiAg Y2Fubm90IHVzZSByZWxhdGlvbiAiZXJyX3RibDIiIGZvciBDT1BZIGVycm9yIHNhdmluZworREVU QUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgcGFydGl0aW9uZWQgdGFi bGVzLgorQ1JFQVRFIFJVTEUgcmVndGVzdF90ZXN0X3J1bGUgQVMgT04gSU5TRVJUIFRPIGVycl90 YmwxIERPIEFMU08gTk9USElORzsKKy0tIGVycm9yLCBlcnJvcl90YWJsZSBjYW5ub3QgYmUgaGF2 ZSBydWxlcworQ09QWSB0X29uX2Vycm9yX3RhYmxlKGEsYikgRlJPTSBTVERJTiBXSVRIIChvbl9l cnJvciB0YWJsZSwgZXJyb3JfdGFibGUgZXJyX3RibDEpOworRVJST1I6ICBjYW5ub3QgdXNlIHJl bGF0aW9uICJlcnJfdGJsMSIgZm9yIENPUFkgZXJyb3Igc2F2aW5nCitERVRBSUw6ICBUaGUgZXJy b3Igc2F2aW5nIHRhYmxlIGNhbm5vdCBoYXZlIHJ1bGVzLgorRFJPUCBSVUxFIHJlZ3Rlc3RfdGVz dF9ydWxlIE9OIGVycl90YmwxOworQ1JFQVRFIFBPTElDWSBwMSBPTiBlcnJfdGJsMSBGT1IgU0VM RUNUIFVTSU5HICh0cnVlKTsKK0FMVEVSIFRBQkxFIGVycl90YmwxIEVOQUJMRSBST1cgTEVWRUwg U0VDVVJJVFk7CitBTFRFUiBUQUJMRSBlcnJfdGJsMSBGT1JDRSBST1cgTEVWRUwgU0VDVVJJVFk7 CistLSBlcnJvciwgZXJyb3JfdGFibGUgY2Fubm90IGJlIGhhdmUgUkxTIHBvbGljaWVzCitDT1BZ IHRfb25fZXJyb3JfdGFibGUoYSxiKSBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIHRhYmxlLCBl cnJvcl90YWJsZSBlcnJfdGJsMSk7CitFUlJPUjogIGNhbm5vdCB1c2UgcmVsYXRpb24gImVycl90 YmwxIiBmb3IgQ09QWSBlcnJvciBzYXZpbmcKK0RFVEFJTDogIFRoZSBlcnJvciBzYXZpbmcgdGFi bGUgY2Fubm90IGhhdmUgcm93LWxldmVsIHNlY3VyaXR5IHBvbGljaWVzLgorRFJPUCBQT0xJQ1kg SUYgRVhJU1RTIHAxIE9OIGVycl90YmwxOworQUxURVIgVEFCTEUgZXJyX3RibDEgRElTQUJMRSBS T1cgTEVWRUwgU0VDVVJJVFk7CitBTFRFUiBUQUJMRSBlcnJfdGJsIEFERCBDT05TVFJBSU5UIGNj MiBDSEVDSyhsaW5lbm8gPiAwKTsKK0FMVEVSIFRBQkxFIGVycl90YmwgQUREIENPTlNUUkFJTlQg Y2MzIE5PVCBOVUxMIHVzZXJpZDsKKy0tIG9rLCBjb25zdHJhaW50cyBvbiB0YWJsZSBlcnJfdGJs MSB3aWxsIGJlIHZlcmlmaWVkCitDT1BZIHRfb25fZXJyb3JfdGFibGUoYiwgYSkgRlJPTSBTVERJ TiBXSVRIIChERUxJTUlURVIgJywnLCBvbl9lcnJvciB0YWJsZSwgZXJyb3JfdGFibGUgZXJyX3Ri bDEpOworTk9USUNFOiAgMSByb3cgd2FzIHNhdmVkIHRvIHRhYmxlICJlcnJfdGJsMSIgZHVlIHRv IGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkKK0FMVEVSIFRBQkxFIGVycl90YmwgRFJPUCBDT05T VFJBSU5UIGNjMjsKK0FMVEVSIFRBQkxFIGVycl90YmwgRFJPUCBDT05TVFJBSU5UIGNjMzsKK1RS VU5DQVRFIGVycl90Ymw7CistLSBmYWlsLCBjb3BpZWQgZGF0YSBoYXZlIGV4dHJhIGNvbHVtbnMK K0NPUFkgdF9vbl9lcnJvcl90YWJsZShhLGIpIEZST00gU1RESU4gV0lUSCAoREVMSU1JVEVSICcs Jywgb25fZXJyb3IgdGFibGUsIGVycm9yX3RhYmxlIGVycl90YmwpOworRVJST1I6ICBleHRyYSBk YXRhIGFmdGVyIGxhc3QgZXhwZWN0ZWQgY29sdW1uCitDT05URVhUOiAgQ09QWSB0X29uX2Vycm9y X3RhYmxlLCBsaW5lIDE6ICIxLDIsMyw0LDUiCistLSBmYWlsLCBjb3BpZWQgZGF0YSBoYXZlIGxl c3MgY29sdW1ucworQ09QWSB0X29uX2Vycm9yX3RhYmxlKGEsYikgRlJPTSBTVERJTiBXSVRIIChE RUxJTUlURVIgJywnLCBvbl9lcnJvciB0YWJsZSwgZXJyb3JfdGFibGUgZXJyX3RibCk7CitFUlJP UjogIGV4dHJhIGRhdGEgYWZ0ZXIgbGFzdCBleHBlY3RlZCBjb2x1bW4KK0NPTlRFWFQ6ICBDT1BZ IHRfb25fZXJyb3JfdGFibGUsIGxpbmUgMTogIjEsMiwzIgorLS0gcGVybWlzc2lvbiBjaGVjawor QkVHSU47CitDUkVBVEUgVVNFUiByZWdyZXNzX3VzZXIzMDsKK0dSQU5UIElOU0VSVCh1c2VyaWQs IGNvcHlfdGJsLCBmaWxlbmFtZSwgbGluZW5vLCBsaW5lLCBjb2xuYW1lLCByYXdfZmllbGRfdmFs dWUsIGVycl9tZXNzYWdlLCBlcnJfZGV0YWlsKQorCU9OIFRBQkxFIGVycl90YmwgVE8gcmVncmVz c191c2VyMzA7CitHUkFOVCBJTlNFUlQgT04gVEFCTEUgdF9vbl9lcnJvcl90YWJsZSBUTyByZWdy ZXNzX3VzZXIzMDsKK0dSQU5UIFNFTEVDVCBPTiBUQUJMRSBlcnJfdGJsIFRPIHJlZ3Jlc3NfdXNl cjMwOworU0FWRVBPSU5UIHMxOworU0VUIFJPTEUgcmVncmVzc191c2VyMzA7CitDT1BZIHRfb25f ZXJyb3JfdGFibGUgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciB0YWJsZSwgZXJyb3JfdGFibGUg ZXJyX3RibCk7IC0tIGVycm9yLCBpbnN1ZmZpY2llbnQgcHJpdmlsZWdlCitFUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciB0YWJsZSBlcnJfdGJsCitST0xMQkFDSyBUTyBTQVZFUE9JTlQgczE7 CitSRVNFVCBST0xFOworR1JBTlQgSU5TRVJUIG9uIFRBQkxFIGVycl90YmwgdG8gcmVncmVzc191 c2VyMzA7CitHUkFOVCBJTlNFUlQoZXJyb3Jjb2RlKSBPTiBUQUJMRSBlcnJfdGJsIFRPIHJlZ3Jl c3NfdXNlcjMwOworU0VUIFJPTEUgcmVncmVzc191c2VyMzA7CitDT1BZIHRfb25fZXJyb3JfdGFi bGUgRlJPTSBTVERJTiBXSVRIIChERUxJTUlURVIgJywnLCBvbl9lcnJvciB0YWJsZSwgZXJyb3Jf dGFibGUgZXJyX3RibCwgbG9nX3ZlcmJvc2l0eSB2ZXJib3NlKTsgLS0gb2sKK05PVElDRTogIHNh dmluZyBlcnJvciBpbmZvcm1hdGlvbiB0byB0YWJsZSAiZXJyX3RibCIgcm93IGR1ZSB0byBkYXRh IHR5cGUgaW5jb21wYXRpYmlsaXR5IGF0IGxpbmUgMSBmb3IgY29sdW1uICJhIjogImEiCitOT1RJ Q0U6ICAxIHJvdyB3YXMgc2F2ZWQgdG8gdGFibGUgImVycl90YmwiIGR1ZSB0byBkYXRhIHR5cGUg aW5jb21wYXRpYmlsaXR5CitTRUxFQ1QgY29weV90Ymw6OnJlZ2NsYXNzLCBmaWxlbmFtZSwgbGlu ZW5vLCBsaW5lLCBjb2xuYW1lLCByYXdfZmllbGRfdmFsdWUsIGVycl9tZXNzYWdlLCBlcnJfZGV0 YWlsLCBlcnJvcmNvZGUKK0ZST00gZXJyX3RibDsKKyAgICAgY29weV90YmwgICAgIHwgZmlsZW5h bWUgfCBsaW5lbm8gfCAgbGluZSAgIHwgY29sbmFtZSB8IHJhd19maWVsZF92YWx1ZSB8ICAgICAg ICAgICAgZXJyX21lc3NhZ2UgICAgICAgICAgICAgfCAgICAgIGVycl9kZXRhaWwgICAgICAgfCBl cnJvcmNvZGUgCistLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHRfb25fZXJy b3JfdGFibGUgfCBTVERJTiAgICB8ICAgICAgMSB8IGEsYiwzLDQgfCBhICAgICAgIHwgYSAgICAg ICAgICAgICAgIHwgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUganNvbiB8IFRva2VuICJh IiBpcyBpbnZhbGlkLiB8IDIyUDAyCisoMSByb3cpCisKKy0tIGVycm9yLCB1bmlxdWUgY29uc3Ry YWludCB2aW9sYXRpb24gb24gdGFibGUgZXJyX3RibAorQ09QWSB0X29uX2Vycm9yX3RhYmxlIEZS T00gU1RESU4gV0lUSCAoREVMSU1JVEVSICcsJywgb25fZXJyb3IgdGFibGUsIGVycm9yX3RhYmxl IGVycl90YmwpOworRVJST1I6ICBkdXBsaWNhdGUga2V5IHZhbHVlIHZpb2xhdGVzIHVuaXF1ZSBj b25zdHJhaW50ICJlcnJfdGJsX2lkeCIKK0RFVEFJTDogIEtleSAoY29sbmFtZSk9KGEpIGFscmVh ZHkgZXhpc3RzLgorQ09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl90YWJsZSwgbGluZSAxLCBjb2x1 bW4gYTogImEiCitST0xMQkFDSzsKK0RST1AgSU5ERVggZXJyX3RibF9pZHg7CitDUkVBVEUgRlVO Q1RJT04gdHJpZ19jb3B5X2Vycm9yX3NhdmluZ19pbnNlcnQoKQorUkVUVVJOUyBUUklHR0VSIExB TkdVQUdFIHBscGdzcWwgQVMKKyQkCitCRUdJTgorICBpZiAoVEdfTEVWRUwgPSAnU1RBVEVNRU5U JyBhbmQgVEdfV0hFTiA9ICdBRlRFUicpIHRoZW4KKyAgICBSQUlTRSBOT1RJQ0UgRSd0cmlnZ2Vy IG5hbWU6ICUsICUgJSBGT1IgRUFDSCAlXG4nLCBUR19OQU1FLCAgVEdfV0hFTiwgVEdfT1AsIFRH X0xFVkVMOworICBlbHNlCisgICAgUkFJU0UgTk9USUNFICd0cmlnZ2VyIG5hbWU6ICUsICUgJSBG T1IgRUFDSCAlJywgVEdfTkFNRSwgIFRHX1dIRU4sIFRHX09QLCBUR19MRVZFTDsKKyAgZW5kIGlm OworICBpZiBUR19MRVZFTCA9ICdST1cnIHRoZW4KKyAgICBSQUlTRSBOT1RJQ0UgJ05FVyByYXdf ZmllbGRfdmFsdWU6ICUsIGVycl9tZXNzYWdlOiAlJywgTkVXLnJhd19maWVsZF92YWx1ZSwgTkVX LmVycl9tZXNzYWdlOworICBlbmQgaWY7CisgIFJFVFVSTiBORVc7CitFTkQ7CiskJDsKK0NSRUFU RSBUUklHR0VSIGVycl90YmxfYWZ0ZXJfaW5zX3JvdworICBBRlRFUiBJTlNFUlQgT04gZXJyX3Ri bAorICBGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgdHJpZ19jb3B5X2Vycm9yX3Nhdmlu Z19pbnNlcnQoKTsKK0NSRUFURSBUUklHR0VSIGVycl90YmxfYmVmb3JlX2luc19yb3cKKyAgQkVG T1JFIElOU0VSVCBPTiBlcnJfdGJsCisgIEZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSB0 cmlnX2NvcHlfZXJyb3Jfc2F2aW5nX2luc2VydCgpOworQ1JFQVRFIFRSSUdHRVIgZXJyX3RibF9i Zm9yZV9pbnNfc3RtdAorICBCRUZPUkUgSU5TRVJUIE9OIGVycl90YmwKKyAgRk9SIEVBQ0ggU1RB VEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIHRyaWdfY29weV9lcnJvcl9zYXZpbmdfaW5zZXJ0KCk7 CitDUkVBVEUgVFJJR0dFUiBlcnJfdGJsX2FmdGVyX2luc19zdG10CisgIEFGVEVSIElOU0VSVCBP TiBlcnJfdGJsCisgIFJFRkVSRU5DSU5HIE5FVyBUQUJMRSBBUyBuZXdfcm93cworICBGT1IgRUFD SCBTVEFURU1FTlQgRVhFQ1VURSBQUk9DRURVUkUgdHJpZ19jb3B5X2Vycm9yX3NhdmluZ19pbnNl cnQoKTsKKy0tIEVhY2ggaW5zZXJ0IG9uIHRoZSBlcnJvcl90YWJsZSBpbnZva2VzIGJvdGggdGhl IHN0YXRlbWVudC1sZXZlbCBhbmQgcm93LWxldmVsIHRyaWdnZXJzLgorQ09QWSB0X29uX2Vycm9y X3RhYmxlIEZST00gU1RESU4gV0lUSCAoREVMSU1JVEVSICcsJywgb25fZXJyb3IgdGFibGUsIGVy cm9yX3RhYmxlIGVycl90YmwpOworTk9USUNFOiAgdHJpZ2dlciBuYW1lOiBlcnJfdGJsX2Jmb3Jl X2luc19zdG10LCBCRUZPUkUgSU5TRVJUIEZPUiBFQUNIIFNUQVRFTUVOVAorTk9USUNFOiAgdHJp Z2dlciBuYW1lOiBlcnJfdGJsX2JlZm9yZV9pbnNfcm93LCBCRUZPUkUgSU5TRVJUIEZPUiBFQUNI IFJPVworTk9USUNFOiAgTkVXIHJhd19maWVsZF92YWx1ZTogYSwgZXJyX21lc3NhZ2U6IGludmFs aWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJhIgorTk9USUNFOiAgdHJpZ2dlciBu YW1lOiBlcnJfdGJsX2FmdGVyX2luc19yb3csIEFGVEVSIElOU0VSVCBGT1IgRUFDSCBST1cKK05P VElDRTogIE5FVyByYXdfZmllbGRfdmFsdWU6IGEsIGVycl9tZXNzYWdlOiBpbnZhbGlkIGlucHV0 IHN5bnRheCBmb3IgdHlwZSBpbnRlZ2VyOiAiYSIKK05PVElDRTogIHRyaWdnZXIgbmFtZTogZXJy X3RibF9hZnRlcl9pbnNfc3RtdCwgQUZURVIgSU5TRVJUIEZPUiBFQUNIIFNUQVRFTUVOVAorCitO T1RJQ0U6ICB0cmlnZ2VyIG5hbWU6IGVycl90YmxfYmZvcmVfaW5zX3N0bXQsIEJFRk9SRSBJTlNF UlQgRk9SIEVBQ0ggU1RBVEVNRU5UCitOT1RJQ0U6ICB0cmlnZ2VyIG5hbWU6IGVycl90YmxfYmVm b3JlX2luc19yb3csIEJFRk9SRSBJTlNFUlQgRk9SIEVBQ0ggUk9XCitOT1RJQ0U6ICBORVcgcmF3 X2ZpZWxkX3ZhbHVlOiA8TlVMTD4sIGVycl9tZXNzYWdlOiBkb21haW4gZGNoZWNrX2lnbl9lcnIy IGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCitOT1RJQ0U6ICB0cmlnZ2VyIG5hbWU6IGVycl90 YmxfYWZ0ZXJfaW5zX3JvdywgQUZURVIgSU5TRVJUIEZPUiBFQUNIIFJPVworTk9USUNFOiAgTkVX IHJhd19maWVsZF92YWx1ZTogPE5VTEw+LCBlcnJfbWVzc2FnZTogZG9tYWluIGRjaGVja19pZ25f ZXJyMiBkb2VzIG5vdCBhbGxvdyBudWxsIHZhbHVlcworTk9USUNFOiAgdHJpZ2dlciBuYW1lOiBl cnJfdGJsX2FmdGVyX2luc19zdG10LCBBRlRFUiBJTlNFUlQgRk9SIEVBQ0ggU1RBVEVNRU5UCisK K05PVElDRTogIHRyaWdnZXIgbmFtZTogZXJyX3RibF9iZm9yZV9pbnNfc3RtdCwgQkVGT1JFIElO U0VSVCBGT1IgRUFDSCBTVEFURU1FTlQKK05PVElDRTogIHRyaWdnZXIgbmFtZTogZXJyX3RibF9i ZWZvcmVfaW5zX3JvdywgQkVGT1JFIElOU0VSVCBGT1IgRUFDSCBST1cKK05PVElDRTogIE5FVyBy YXdfZmllbGRfdmFsdWU6IF9qdW5rLCBlcnJfbWVzc2FnZTogaW52YWxpZCBpbnB1dCBzeW50YXgg Zm9yIHR5cGUgaW50ZWdlcjogIl9qdW5rIgorTk9USUNFOiAgdHJpZ2dlciBuYW1lOiBlcnJfdGJs X2FmdGVyX2luc19yb3csIEFGVEVSIElOU0VSVCBGT1IgRUFDSCBST1cKK05PVElDRTogIE5FVyBy YXdfZmllbGRfdmFsdWU6IF9qdW5rLCBlcnJfbWVzc2FnZTogaW52YWxpZCBpbnB1dCBzeW50YXgg Zm9yIHR5cGUgaW50ZWdlcjogIl9qdW5rIgorTk9USUNFOiAgdHJpZ2dlciBuYW1lOiBlcnJfdGJs X2FmdGVyX2luc19zdG10LCBBRlRFUiBJTlNFUlQgRk9SIEVBQ0ggU1RBVEVNRU5UCisKK05PVElD RTogIHRyaWdnZXIgbmFtZTogZXJyX3RibF9iZm9yZV9pbnNfc3RtdCwgQkVGT1JFIElOU0VSVCBG T1IgRUFDSCBTVEFURU1FTlQKK05PVElDRTogIHRyaWdnZXIgbmFtZTogZXJyX3RibF9iZWZvcmVf aW5zX3JvdywgQkVGT1JFIElOU0VSVCBGT1IgRUFDSCBST1cKK05PVElDRTogIE5FVyByYXdfZmll bGRfdmFsdWU6IGNvbGEsIGVycl9tZXNzYWdlOiBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlw ZSBqc29uCitOT1RJQ0U6ICB0cmlnZ2VyIG5hbWU6IGVycl90YmxfYWZ0ZXJfaW5zX3JvdywgQUZU RVIgSU5TRVJUIEZPUiBFQUNIIFJPVworTk9USUNFOiAgTkVXIHJhd19maWVsZF92YWx1ZTogY29s YSwgZXJyX21lc3NhZ2U6IGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIGpzb24KK05PVElD RTogIHRyaWdnZXIgbmFtZTogZXJyX3RibF9hZnRlcl9pbnNfc3RtdCwgQUZURVIgSU5TRVJUIEZP UiBFQUNIIFNUQVRFTUVOVAorCitOT1RJQ0U6ICB0cmlnZ2VyIG5hbWU6IGVycl90YmxfYmZvcmVf aW5zX3N0bXQsIEJFRk9SRSBJTlNFUlQgRk9SIEVBQ0ggU1RBVEVNRU5UCitOT1RJQ0U6ICB0cmln Z2VyIG5hbWU6IGVycl90YmxfYmVmb3JlX2luc19yb3csIEJFRk9SRSBJTlNFUlQgRk9SIEVBQ0gg Uk9XCitOT1RJQ0U6ICBORVcgcmF3X2ZpZWxkX3ZhbHVlOiA0MjM4Njc5NzMyNDg5ODc5ODc5LCBl cnJfbWVzc2FnZTogdmFsdWUgIjQyMzg2Nzk3MzI0ODk4Nzk4NzkiIGlzIG91dCBvZiByYW5nZSBm b3IgdHlwZSBpbnRlZ2VyCitOT1RJQ0U6ICB0cmlnZ2VyIG5hbWU6IGVycl90YmxfYWZ0ZXJfaW5z X3JvdywgQUZURVIgSU5TRVJUIEZPUiBFQUNIIFJPVworTk9USUNFOiAgTkVXIHJhd19maWVsZF92 YWx1ZTogNDIzODY3OTczMjQ4OTg3OTg3OSwgZXJyX21lc3NhZ2U6IHZhbHVlICI0MjM4Njc5NzMy NDg5ODc5ODc5IiBpcyBvdXQgb2YgcmFuZ2UgZm9yIHR5cGUgaW50ZWdlcgorTk9USUNFOiAgdHJp Z2dlciBuYW1lOiBlcnJfdGJsX2FmdGVyX2luc19zdG10LCBBRlRFUiBJTlNFUlQgRk9SIEVBQ0gg U1RBVEVNRU5UCisKK05PVElDRTogIDUgcm93cyB3ZXJlIHNhdmVkIHRvIHRhYmxlICJlcnJfdGJs IiBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eQorU0VMRUNUIGNvcHlfdGJsOjpyZWdj bGFzcywgZmlsZW5hbWUsIGxpbmVubywgbGluZSwgY29sbmFtZSAscmF3X2ZpZWxkX3ZhbHVlLCBl cnJfbWVzc2FnZSwgZXJyX2RldGFpbCwgZXJyb3Jjb2RlCitGUk9NIGVycl90Ymw7CisgICAgIGNv cHlfdGJsICAgICB8IGZpbGVuYW1lIHwgbGluZW5vIHwgICAgICAgICAgICBsaW5lICAgICAgICAg ICAgfCBjb2xuYW1lIHwgICByYXdfZmllbGRfdmFsdWUgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgIGVycl9tZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICBlcnJfZGV0 YWlsICAgICAgICB8IGVycm9yY29kZSAKKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IHRfb25fZXJyb3JfdGFibGUgfCBTVERJTiAgICB8ICAgICAgMSB8IDEsMixhLDEgICAgICAgICAg ICAgICAgICAgIHwgYyAgICAgICB8IGEgICAgICAgICAgICAgICAgICAgfCBpbnZhbGlkIGlucHV0 IHN5bnRheCBmb3IgdHlwZSBpbnRlZ2VyOiAiYSIgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAyMlAwMgorIHRfb25fZXJyb3JfdGFibGUgfCBTVERJTiAgICB8 ICAgICAgMiB8IDEsMiwzLFxOICAgICAgICAgICAgICAgICAgIHwgZCAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgfCBkb21haW4gZGNoZWNrX2lnbl9lcnIyIGRvZXMgbm90IGFsbG93IG51bGwg dmFsdWVzICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMzUwMgorIHRf b25fZXJyb3JfdGFibGUgfCBTVERJTiAgICB8ICAgICAgMyB8IDEsX2p1bmssdGVzdCwxMSAgICAg ICAgICAgIHwgYiAgICAgICB8IF9qdW5rICAgICAgICAgICAgICAgfCBpbnZhbGlkIGlucHV0IHN5 bnRheCBmb3IgdHlwZSBpbnRlZ2VyOiAiX2p1bmsiICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAyMlAwMgorIHRfb25fZXJyb3JfdGFibGUgfCBTVERJTiAgICB8ICAg ICAgNCB8IGNvbGEsY29sYixjb2xjLDEyICAgICAgICAgIHwgYSAgICAgICB8IGNvbGEgICAgICAg ICAgICAgICAgfCBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSBqc29uICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCBUb2tlbiAiY29sYSIgaXMgaW52YWxpZC4gfCAyMlAwMgorIHRfb25f ZXJyb3JfdGFibGUgfCBTVERJTiAgICB8ICAgICAgNiB8IDEsMTEsNDIzODY3OTczMjQ4OTg3OTg3 OSwyIHwgYyAgICAgICB8IDQyMzg2Nzk3MzI0ODk4Nzk4NzkgfCB2YWx1ZSAiNDIzODY3OTczMjQ4 OTg3OTg3OSIgaXMgb3V0IG9mIHJhbmdlIGZvciB0eXBlIGludGVnZXIgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAyMjAwMworKDUgcm93cykKKwogLS0gY2xlYW4gdXAKK0RST1AgVEFCTEUg ZXJyX3RibDsKK0RST1AgVEFCTEUgZXJyX3RibDE7CitEUk9QIFRBQkxFIGVycl90YmwyOworRFJP UCBUQUJMRSBlcnJfdGJsMzsKK0RST1AgVklFVyB0X2NvcHlfdjE7CitEUk9QIFRBQkxFIHRfb25f ZXJyb3JfdGFibGU7CitEUk9QIFRBQkxFIHRfY29weV90YmwxOworRFJPUCBUWVBFIHRfY29weV90 eXA7CitEUk9QIEZVTkNUSU9OIHRyaWdfY29weV9lcnJvcl9zYXZpbmdfaW5zZXJ0KCk7CiBEUk9Q IFRBQkxFIGZvcmNldGVzdDsKIERST1AgVEFCTEUgdmlzdGVzdDsKIERST1AgRlVOQ1RJT04gdHJ1 bmNhdGVfaW5fc3VieGFjdCgpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29w eS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5LnNxbAppbmRleCAwOTRmZDc2YzEyYi4u NzYyN2E1YTA5Y2EgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkuc3FsCkBAIC0zNzYsNiArMzc2LDE1IEBAIHNo YXJvbgkyNQkoMTUsMTIpCTEwMDAJc2FtCiBzaGFyb24JeQkoMTUsMTIpCXgJc2FtCiBcLgogCiti ZWdpbjsKK2NyZWF0ZSB0ZW1wIHRhYmxlIGVycl90YmwgT0YgY29weV9lcnJvcl9zYXZpbmc7Citj b3B5IHRhYl9wcm9ncmVzc19yZXBvcnRpbmcgZnJvbSBzdGRpbihvbl9lcnJvciB0YWJsZSwgZXJy b3JfdGFibGUgZXJyX3RibCk7CitzaGFyb24JeAkoMTUsMTIpCXgJc2FtCitzaGFyb24JMjUJKDE1 LDEyKQkxMDAwCXNhbQorc2hhcm9uCXkJKDE1LDEyKQl4CXNhbQorXC4KK3JvbGxiYWNrOworCiBk cm9wIHRyaWdnZXIgY2hlY2tfYWZ0ZXJfdGFiX3Byb2dyZXNzX3JlcG9ydGluZyBvbiB0YWJfcHJv Z3Jlc3NfcmVwb3J0aW5nOwogZHJvcCBmdW5jdGlvbiBub3RpY2VfYWZ0ZXJfdGFiX3Byb2dyZXNz X3JlcG9ydGluZygpOwogZHJvcCB0YWJsZSB0YWJfcHJvZ3Jlc3NfcmVwb3J0aW5nOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvY29weTIuc3FsCmluZGV4IGUwODEwMTA5NDczLi5mOTNhZjAzYzk5NiAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2NvcHkyLnNxbApAQCAtNjM2LDcgKzYzNiwxNTcgQEAgYQl7N30JNwogMTAJezEwfQkxMAogXC4K IAorLS0gVGVzdHMgZm9yIG9uX2Vycm9yIHRhYmxlLCBzYXZlIENPUFkgRlJPTSBpbnB1dCBkYXRh IHR5cGUgY29udmVyc2lvbiBlcnJvcgorLS0gaW5mb3JtYXRpb24gdG8gYSB1c2VyLWRlZmluZWQg dGFibGUKKworLS0gRGlyZWN0IG1vZGlmaWNhdGlvbiBvZiBzeXN0ZW0gY2F0YWxvZyBjb21wb3Np dGUgdHlwZSBjb3B5X2Vycm9yX3NhdmluZyBpcworLS0gbm90IGFsbG93ZWQKK0FMVEVSIFRZUEUg Y29weV9lcnJvcl9zYXZpbmcgQUREIEFUVFJJQlVURSBiIHRleHQ7CitBTFRFUiBUWVBFIGNvcHlf ZXJyb3Jfc2F2aW5nIERST1AgQVRUUklCVVRFIHVzZXJpZDsKK0FMVEVSIFRZUEUgY29weV9lcnJv cl9zYXZpbmcgUkVOQU1FIEFUVFJJQlVURSB1c2VyaWQgdG8gdXNlcmlkMTsKK0FMVEVSIFRZUEUg Y29weV9lcnJvcl9zYXZpbmcgQUxURVIgQVRUUklCVVRFIHVzZXJpZCBTRVQgREFUQSBUWVBFIE9J RDg7CisKK0NSRUFURSBUQUJMRSB0X29uX2Vycm9yX3RhYmxlKGEganNvbmIsIGIgaW50LCBjIGlu dCwgZCBkY2hlY2tfaWduX2VycjIpOworQ1JFQVRFIFRBQkxFIGVycl90YmwgT0YgY29weV9lcnJv cl9zYXZpbmc7CitDUkVBVEUgVEFCTEUgZXJyX3RibDEgT0YgY29weV9lcnJvcl9zYXZpbmc7CitD UkVBVEUgVEFCTEUgZXJyX3RibDIgT0YgY29weV9lcnJvcl9zYXZpbmcgUEFSVElUSU9OIEJZIFJB TkdFIChsaW5lbm8pOworQ1JFQVRFIFVOSVFVRSBJTkRFWCBlcnJfdGJsX2lkeCBPTiBlcnJfdGJs KGNvbG5hbWUpOworQ1JFQVRFIFRFTVAgVEFCTEUgZXJyX3RibDMgQVMgU0VMRUNUICogRlJPTSBl cnJfdGJsOworQ1JFQVRFIFRZUEUgdF9jb3B5X3R5cCBBUyAoYSBpbnQsIGIgaW50LCBjIGludCk7 CitDUkVBVEUgVEFCTEUgdF9jb3B5X3RibDEgT0YgdF9jb3B5X3R5cDsKK0NSRUFURSBURU1QIFZJ RVcgdF9jb3B5X3YxIEFTIFNFTEVDVCAqIEZST00gdF9vbl9lcnJvcl90YWJsZTsKKworLS0gYWxs IG9mIHRoZSBmb2xsb3dpbmcgc2hvdWxkIGZhaWwKK0NPUFkgdF9vbl9lcnJvcl90YWJsZSBGUk9N IFNURElOIFdJVEggKGZvcm1hdCBiaW5hcnksIG9uX2Vycm9yIHRhYmxlLCBlcnJvcl90YWJsZSBl cnJfdGJsKTsKK0NPUFkgdF9vbl9lcnJvcl90YWJsZSBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9y IHRhYmxlLCBlcnJvcl90YWJsZSB0X29uX2Vycm9yX3RhYmxlKTsKK0NPUFkgdF9vbl9lcnJvcl90 YWJsZSBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIHRhYmxlLCBlcnJvcl90YWJsZSB0X2NvcHlf dGJsMSk7CitDT1BZIHRfb25fZXJyb3JfdGFibGUgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciB0 YWJsZSwgZXJyb3JfdGFibGUgdF9jb3B5X3YxKTsKK0NPUFkgdF9vbl9lcnJvcl90YWJsZSBGUk9N IFNURElOIFdJVEggKG9uX2Vycm9yIHRhYmxlLCByZWplY3RfbGltaXQgMTAsIGVycm9yX3RhYmxl IGVycl90YmwpOworQ09QWSB0X29uX2Vycm9yX3RhYmxlIEZST00gU1RESU4gV0lUSCAob25fZXJy b3IgdGFibGUsIGVycm9yX3RhYmxlIG5vdF9leGlzdHN4KTsKK0NPUFkgdF9vbl9lcnJvcl90YWJs ZSBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIHRhYmxlKTsKK0NPUFkgdF9vbl9lcnJvcl90YWJs ZSBGUk9NIFNURElOIFdJVEggKGVycm9yX3RhYmxlIGVycl90YmwpOworQ09QWSB0X29uX2Vycm9y X3RhYmxlIFRPIFNURElOIFdJVEggKG9uX2Vycm9yIHRhYmxlKTsKKy0tIGFsbCBvZiB0aGUgYWJv dmUgc2hvdWxkIGZhaWwKKworLS0gZXJyb3IsIGVycm9yX3RhYmxlIGNhbm5vdCBiZSBwYXJ0aXRp b25lZCB0YWJsZQorQ09QWSB0X29uX2Vycm9yX3RhYmxlKGEsYikgRlJPTSBTVERJTiBXSVRIIChv bl9lcnJvciB0YWJsZSwgZXJyb3JfdGFibGUgZXJyX3RibDIpOworQ1JFQVRFIFJVTEUgcmVndGVz dF90ZXN0X3J1bGUgQVMgT04gSU5TRVJUIFRPIGVycl90YmwxIERPIEFMU08gTk9USElORzsKKy0t IGVycm9yLCBlcnJvcl90YWJsZSBjYW5ub3QgYmUgaGF2ZSBydWxlcworQ09QWSB0X29uX2Vycm9y X3RhYmxlKGEsYikgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciB0YWJsZSwgZXJyb3JfdGFibGUg ZXJyX3RibDEpOworRFJPUCBSVUxFIHJlZ3Rlc3RfdGVzdF9ydWxlIE9OIGVycl90YmwxOworCitD UkVBVEUgUE9MSUNZIHAxIE9OIGVycl90YmwxIEZPUiBTRUxFQ1QgVVNJTkcgKHRydWUpOworQUxU RVIgVEFCTEUgZXJyX3RibDEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKK0FMVEVSIFRBQkxF IGVycl90YmwxIEZPUkNFIFJPVyBMRVZFTCBTRUNVUklUWTsKKy0tIGVycm9yLCBlcnJvcl90YWJs ZSBjYW5ub3QgYmUgaGF2ZSBSTFMgcG9saWNpZXMKK0NPUFkgdF9vbl9lcnJvcl90YWJsZShhLGIp IEZST00gU1RESU4gV0lUSCAob25fZXJyb3IgdGFibGUsIGVycm9yX3RhYmxlIGVycl90YmwxKTsK K0RST1AgUE9MSUNZIElGIEVYSVNUUyBwMSBPTiBlcnJfdGJsMTsKK0FMVEVSIFRBQkxFIGVycl90 YmwxIERJU0FCTEUgUk9XIExFVkVMIFNFQ1VSSVRZOworCitBTFRFUiBUQUJMRSBlcnJfdGJsIEFE RCBDT05TVFJBSU5UIGNjMiBDSEVDSyhsaW5lbm8gPiAwKTsKK0FMVEVSIFRBQkxFIGVycl90Ymwg QUREIENPTlNUUkFJTlQgY2MzIE5PVCBOVUxMIHVzZXJpZDsKKy0tIG9rLCBjb25zdHJhaW50cyBv biB0YWJsZSBlcnJfdGJsMSB3aWxsIGJlIHZlcmlmaWVkCitDT1BZIHRfb25fZXJyb3JfdGFibGUo YiwgYSkgRlJPTSBTVERJTiBXSVRIIChERUxJTUlURVIgJywnLCBvbl9lcnJvciB0YWJsZSwgZXJy b3JfdGFibGUgZXJyX3RibDEpOworYSxiCitcLgorQUxURVIgVEFCTEUgZXJyX3RibCBEUk9QIENP TlNUUkFJTlQgY2MyOworQUxURVIgVEFCTEUgZXJyX3RibCBEUk9QIENPTlNUUkFJTlQgY2MzOwor VFJVTkNBVEUgZXJyX3RibDsKKworLS0gZmFpbCwgY29waWVkIGRhdGEgaGF2ZSBleHRyYSBjb2x1 bW5zCitDT1BZIHRfb25fZXJyb3JfdGFibGUoYSxiKSBGUk9NIFNURElOIFdJVEggKERFTElNSVRF UiAnLCcsIG9uX2Vycm9yIHRhYmxlLCBlcnJvcl90YWJsZSBlcnJfdGJsKTsKKzEsMiwzLDQsNQor XC4KKworLS0gZmFpbCwgY29waWVkIGRhdGEgaGF2ZSBsZXNzIGNvbHVtbnMKK0NPUFkgdF9vbl9l cnJvcl90YWJsZShhLGIpIEZST00gU1RESU4gV0lUSCAoREVMSU1JVEVSICcsJywgb25fZXJyb3Ig dGFibGUsIGVycm9yX3RhYmxlIGVycl90YmwpOworMSwyLDMKK1wuCisKKy0tIHBlcm1pc3Npb24g Y2hlY2sKK0JFR0lOOworQ1JFQVRFIFVTRVIgcmVncmVzc191c2VyMzA7CitHUkFOVCBJTlNFUlQo dXNlcmlkLCBjb3B5X3RibCwgZmlsZW5hbWUsIGxpbmVubywgbGluZSwgY29sbmFtZSwgcmF3X2Zp ZWxkX3ZhbHVlLCBlcnJfbWVzc2FnZSwgZXJyX2RldGFpbCkKKwlPTiBUQUJMRSBlcnJfdGJsIFRP IHJlZ3Jlc3NfdXNlcjMwOworR1JBTlQgSU5TRVJUIE9OIFRBQkxFIHRfb25fZXJyb3JfdGFibGUg VE8gcmVncmVzc191c2VyMzA7CitHUkFOVCBTRUxFQ1QgT04gVEFCTEUgZXJyX3RibCBUTyByZWdy ZXNzX3VzZXIzMDsKK1NBVkVQT0lOVCBzMTsKKworU0VUIFJPTEUgcmVncmVzc191c2VyMzA7CitD T1BZIHRfb25fZXJyb3JfdGFibGUgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciB0YWJsZSwgZXJy b3JfdGFibGUgZXJyX3RibCk7IC0tIGVycm9yLCBpbnN1ZmZpY2llbnQgcHJpdmlsZWdlCitcLgor Uk9MTEJBQ0sgVE8gU0FWRVBPSU5UIHMxOworCitSRVNFVCBST0xFOworR1JBTlQgSU5TRVJUIG9u IFRBQkxFIGVycl90YmwgdG8gcmVncmVzc191c2VyMzA7CitHUkFOVCBJTlNFUlQoZXJyb3Jjb2Rl KSBPTiBUQUJMRSBlcnJfdGJsIFRPIHJlZ3Jlc3NfdXNlcjMwOworU0VUIFJPTEUgcmVncmVzc191 c2VyMzA7CitDT1BZIHRfb25fZXJyb3JfdGFibGUgRlJPTSBTVERJTiBXSVRIIChERUxJTUlURVIg JywnLCBvbl9lcnJvciB0YWJsZSwgZXJyb3JfdGFibGUgZXJyX3RibCwgbG9nX3ZlcmJvc2l0eSB2 ZXJib3NlKTsgLS0gb2sKK2EsYiwzLDQKK1wuCisKK1NFTEVDVCBjb3B5X3RibDo6cmVnY2xhc3Ms IGZpbGVuYW1lLCBsaW5lbm8sIGxpbmUsIGNvbG5hbWUsIHJhd19maWVsZF92YWx1ZSwgZXJyX21l c3NhZ2UsIGVycl9kZXRhaWwsIGVycm9yY29kZQorRlJPTSBlcnJfdGJsOworCistLSBlcnJvciwg dW5pcXVlIGNvbnN0cmFpbnQgdmlvbGF0aW9uIG9uIHRhYmxlIGVycl90YmwKK0NPUFkgdF9vbl9l cnJvcl90YWJsZSBGUk9NIFNURElOIFdJVEggKERFTElNSVRFUiAnLCcsIG9uX2Vycm9yIHRhYmxl LCBlcnJvcl90YWJsZSBlcnJfdGJsKTsKK2EsYiwzLDQKK1wuCitST0xMQkFDSzsKK0RST1AgSU5E RVggZXJyX3RibF9pZHg7CisKK0NSRUFURSBGVU5DVElPTiB0cmlnX2NvcHlfZXJyb3Jfc2F2aW5n X2luc2VydCgpCitSRVRVUk5TIFRSSUdHRVIgTEFOR1VBR0UgcGxwZ3NxbCBBUworJCQKK0JFR0lO CisgIGlmIChUR19MRVZFTCA9ICdTVEFURU1FTlQnIGFuZCBUR19XSEVOID0gJ0FGVEVSJykgdGhl bgorICAgIFJBSVNFIE5PVElDRSBFJ3RyaWdnZXIgbmFtZTogJSwgJSAlIEZPUiBFQUNIICVcbics IFRHX05BTUUsICBUR19XSEVOLCBUR19PUCwgVEdfTEVWRUw7CisgIGVsc2UKKyAgICBSQUlTRSBO T1RJQ0UgJ3RyaWdnZXIgbmFtZTogJSwgJSAlIEZPUiBFQUNIICUnLCBUR19OQU1FLCAgVEdfV0hF TiwgVEdfT1AsIFRHX0xFVkVMOworICBlbmQgaWY7CisgIGlmIFRHX0xFVkVMID0gJ1JPVycgdGhl bgorICAgIFJBSVNFIE5PVElDRSAnTkVXIHJhd19maWVsZF92YWx1ZTogJSwgZXJyX21lc3NhZ2U6 ICUnLCBORVcucmF3X2ZpZWxkX3ZhbHVlLCBORVcuZXJyX21lc3NhZ2U7CisgIGVuZCBpZjsKKyAg UkVUVVJOIE5FVzsKK0VORDsKKyQkOworCitDUkVBVEUgVFJJR0dFUiBlcnJfdGJsX2FmdGVyX2lu c19yb3cKKyAgQUZURVIgSU5TRVJUIE9OIGVycl90YmwKKyAgRk9SIEVBQ0ggUk9XIEVYRUNVVEUg UFJPQ0VEVVJFIHRyaWdfY29weV9lcnJvcl9zYXZpbmdfaW5zZXJ0KCk7CitDUkVBVEUgVFJJR0dF UiBlcnJfdGJsX2JlZm9yZV9pbnNfcm93CisgIEJFRk9SRSBJTlNFUlQgT04gZXJyX3RibAorICBG T1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgdHJpZ19jb3B5X2Vycm9yX3NhdmluZ19pbnNl cnQoKTsKK0NSRUFURSBUUklHR0VSIGVycl90YmxfYmZvcmVfaW5zX3N0bXQKKyAgQkVGT1JFIElO U0VSVCBPTiBlcnJfdGJsCisgIEZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSB0 cmlnX2NvcHlfZXJyb3Jfc2F2aW5nX2luc2VydCgpOworQ1JFQVRFIFRSSUdHRVIgZXJyX3RibF9h ZnRlcl9pbnNfc3RtdAorICBBRlRFUiBJTlNFUlQgT04gZXJyX3RibAorICBSRUZFUkVOQ0lORyBO RVcgVEFCTEUgQVMgbmV3X3Jvd3MKKyAgRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VE VVJFIHRyaWdfY29weV9lcnJvcl9zYXZpbmdfaW5zZXJ0KCk7CisKKy0tIEVhY2ggaW5zZXJ0IG9u IHRoZSBlcnJvcl90YWJsZSBpbnZva2VzIGJvdGggdGhlIHN0YXRlbWVudC1sZXZlbCBhbmQgcm93 LWxldmVsIHRyaWdnZXJzLgorQ09QWSB0X29uX2Vycm9yX3RhYmxlIEZST00gU1RESU4gV0lUSCAo REVMSU1JVEVSICcsJywgb25fZXJyb3IgdGFibGUsIGVycm9yX3RhYmxlIGVycl90YmwpOworMSwy LGEsMQorMSwyLDMsXE4KKzEsX2p1bmssdGVzdCwxMQorY29sYSxjb2xiLGNvbGMsMTIKKzQsNSw2 LDExMTEKKzEsMTEsNDIzODY3OTczMjQ4OTg3OTg3OSwyCitcLgorU0VMRUNUIGNvcHlfdGJsOjpy ZWdjbGFzcywgZmlsZW5hbWUsIGxpbmVubywgbGluZSwgY29sbmFtZSAscmF3X2ZpZWxkX3ZhbHVl LCBlcnJfbWVzc2FnZSwgZXJyX2RldGFpbCwgZXJyb3Jjb2RlCitGUk9NIGVycl90Ymw7CisKIC0t IGNsZWFuIHVwCitEUk9QIFRBQkxFIGVycl90Ymw7CitEUk9QIFRBQkxFIGVycl90YmwxOworRFJP UCBUQUJMRSBlcnJfdGJsMjsKK0RST1AgVEFCTEUgZXJyX3RibDM7CitEUk9QIFZJRVcgdF9jb3B5 X3YxOworRFJPUCBUQUJMRSB0X29uX2Vycm9yX3RhYmxlOworRFJPUCBUQUJMRSB0X2NvcHlfdGJs MTsKK0RST1AgVFlQRSB0X2NvcHlfdHlwOworRFJPUCBGVU5DVElPTiB0cmlnX2NvcHlfZXJyb3Jf c2F2aW5nX2luc2VydCgpOwogRFJPUCBUQUJMRSBmb3JjZXRlc3Q7CiBEUk9QIFRBQkxFIHZpc3Rl c3Q7CiBEUk9QIEZVTkNUSU9OIHRydW5jYXRlX2luX3N1YnhhY3QoKTsKLS0gCjIuMzQuMQoK --0000000000003d729406529ff7c2 Content-Type: text/x-patch; charset="US-ASCII"; name="v13-0001-export-ExecInsert.patch" Content-Disposition: attachment; filename="v13-0001-export-ExecInsert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpkxih941 RnJvbSA5OWE1NTYwYjVmNzg5NTljMzRiM2Q5ODFlZWIxYjVmYTI2YzU0YTMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFN1biwgMTAgTWF5IDIwMjYgMTE6NTQ6MzAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAxLzJdIGV4cG9ydCBFeGVjSW5zZXJ0CgpUaGUgRXhlY0luc2VydCBmdW5jdGlvbiBlbmNhcHN1 bGF0ZXMgY29yZSBsb2dpYyBmb3IgdGhlIGluc2VydGlvbiBwaXBlbGluZSwKaW5jbHVkaW5nIHBh cnRpdGlvbiByb3V0aW5nLCBCRUZPUkUgUk9XIHRyaWdnZXJzLCBJTlNURUFEIE9GIHRyaWdnZXJz LCBhbmQgQUZURVIKUk9XIHRyaWdnZXJzIGFuZCBvdGhlcnMuCgpyZWZlcmVuY2U6IGh0dHBzOi8v cG9zdGdyLmVzL20vQ0FDSnVmeEhpNTNPcEdZUEFlNlNkQ2I0bT0tK0g4TCs3TERiVVd2VGlKcD1W NFlZRXFBQG1haWwuZ21haWwuY29tCnJlZmVyZW5jZTogaHR0cHM6Ly9wb3N0Z3IuZXMvbS83NTI2 NzIuMTY5OTQ3NDMzNiU0MHNzcy5wZ2gucGEudXMKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3Iu ZXMvbS9DQUNKdWZ4SF9PSnBWcmE9MGM0b3c4ZmJ4SGo3aGVNY1ZhVE5FUGE1dkF1clNlTkEtNlFA bWFpbC5nbWFpbC5jb20KY29tbWl0ZmVzdCBlbnRyeTogaHR0cHM6Ly9jb21taXRmZXN0LnBvc3Rn cmVzcWwub3JnL3BhdGNoLzQ4MTcKLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5 VGFibGUuYyB8IDQwICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9leGVjdXRv ci9ub2RlTW9kaWZ5VGFibGUuaCB8IDQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZp bGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKaW5kZXggNDc4Y2IwMTc4M2MuLjg1ZjNkZjdjMDlh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwpAQCAtODQsNDQgKzg0LDYg QEAgdHlwZWRlZiBzdHJ1Y3QgTVRUYXJnZXRSZWxMb29rdXAKIAlpbnQJCQlyZWxhdGlvbkluZGV4 OwkvKiByZWwncyBpbmRleCBpbiByZXN1bHRSZWxJbmZvW10gYXJyYXkgKi8KIH0gTVRUYXJnZXRS ZWxMb29rdXA7CiAKLS8qCi0gKiBDb250ZXh0IHN0cnVjdCBmb3IgYSBNb2RpZnlUYWJsZSBvcGVy YXRpb24sIGNvbnRhaW5pbmcgYmFzaWMgZXhlY3V0aW9uCi0gKiBzdGF0ZSBhbmQgc29tZSBvdXRw dXQgdmFyaWFibGVzIHBvcHVsYXRlZCBieSBFeGVjVXBkYXRlQWN0KCkgYW5kCi0gKiBFeGVjRGVs ZXRlQWN0KCkgdG8gcmVwb3J0IHRoZSByZXN1bHQgb2YgdGhlaXIgYWN0aW9ucyB0byBjYWxsZXJz LgotICovCi10eXBlZGVmIHN0cnVjdCBNb2RpZnlUYWJsZUNvbnRleHQKLXsKLQkvKiBPcGVyYXRp b24gc3RhdGUgKi8KLQlNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlOwotCUVQUVN0YXRlICAgKmVw cXN0YXRlOwotCUVTdGF0ZQkgICAqZXN0YXRlOwotCi0JLyoKLQkgKiBTbG90IGNvbnRhaW5pbmcg dHVwbGUgb2J0YWluZWQgZnJvbSBNb2RpZnlUYWJsZSdzIHN1YnBsYW4uICBVc2VkIHRvCi0JICog YWNjZXNzICJqdW5rIiBjb2x1bW5zIHRoYXQgYXJlIG5vdCBnb2luZyB0byBiZSBzdG9yZWQuCi0J ICovCi0JVHVwbGVUYWJsZVNsb3QgKnBsYW5TbG90OwotCi0JLyoKLQkgKiBJbmZvcm1hdGlvbiBh Ym91dCB0aGUgY2hhbmdlcyB0aGF0IHdlcmUgbWFkZSBjb25jdXJyZW50bHkgdG8gYSB0dXBsZQot CSAqIGJlaW5nIHVwZGF0ZWQgb3IgZGVsZXRlZAotCSAqLwotCVRNX0ZhaWx1cmVEYXRhIHRtZmQ7 Ci0KLQkvKgotCSAqIFRoZSB0dXBsZSBkZWxldGVkIHdoZW4gZG9pbmcgYSBjcm9zcy1wYXJ0aXRp b24gVVBEQVRFIHdpdGggYSBSRVRVUk5JTkcKLQkgKiBjbGF1c2UgdGhhdCByZWZlcnMgdG8gT0xE IGNvbHVtbnMgKGNvbnZlcnRlZCB0byB0aGUgcm9vdCdzIHR1cGxlCi0JICogZGVzY3JpcHRvciku Ci0JICovCi0JVHVwbGVUYWJsZVNsb3QgKmNwRGVsZXRlZFNsb3Q7Ci0KLQkvKgotCSAqIFRoZSB0 dXBsZSBwcm9qZWN0ZWQgYnkgdGhlIElOU0VSVCdzIFJFVFVSTklORyBjbGF1c2UsIHdoZW4gZG9p bmcgYQotCSAqIGNyb3NzLXBhcnRpdGlvbiBVUERBVEUKLQkgKi8KLQlUdXBsZVRhYmxlU2xvdCAq Y3BVcGRhdGVSZXR1cm5pbmdTbG90OwotfSBNb2RpZnlUYWJsZUNvbnRleHQ7Ci0KIC8qCiAgKiBD b250ZXh0IHN0cnVjdCBjb250YWluaW5nIG91dHB1dCBkYXRhIHNwZWNpZmljIHRvIFVQREFURSBv cGVyYXRpb25zLgogICovCkBAIC04NjgsNyArODMwLDcgQEAgRXhlY0dldFVwZGF0ZU5ld1R1cGxl KFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAgKgkJc2F2ZSB0aGUgcHJldmlvdXMgdmFsdWUgdG8g YXZvaWQgbG9zaW5nIHRyYWNrIG9mIGl0LgogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi1zdGF0aWMgVHVwbGVU YWJsZVNsb3QgKgorVHVwbGVUYWJsZVNsb3QgKgogRXhlY0luc2VydChNb2RpZnlUYWJsZUNvbnRl eHQgKmNvbnRleHQsCiAJCSAgIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCSAgIFR1 cGxlVGFibGVTbG90ICpzbG90LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9k ZU1vZGlmeVRhYmxlLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuaApp bmRleCBmNjA3MGUxY2RmMy4uMjUwYmQ2NGFkMTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4 ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVN b2RpZnlUYWJsZS5oCkBAIC0xMyw4ICsxMyw0NyBAQAogI2lmbmRlZiBOT0RFTU9ESUZZVEFCTEVf SAogI2RlZmluZSBOT0RFTU9ESUZZVEFCTEVfSAogCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlYW0u aCIKICNpbmNsdWRlICJub2Rlcy9leGVjbm9kZXMuaCIKIAorLyoKKyAqIENvbnRleHQgc3RydWN0 IGZvciBhIE1vZGlmeVRhYmxlIG9wZXJhdGlvbiwgY29udGFpbmluZyBiYXNpYyBleGVjdXRpb24K KyAqIHN0YXRlIGFuZCBzb21lIG91dHB1dCB2YXJpYWJsZXMgcG9wdWxhdGVkIGJ5IEV4ZWNVcGRh dGVBY3QoKSBhbmQKKyAqIEV4ZWNEZWxldGVBY3QoKSB0byByZXBvcnQgdGhlIHJlc3VsdCBvZiB0 aGVpciBhY3Rpb25zIHRvIGNhbGxlcnMuCisgKi8KK3R5cGVkZWYgc3RydWN0IE1vZGlmeVRhYmxl Q29udGV4dAoreworCS8qIE9wZXJhdGlvbiBzdGF0ZSAqLworCU1vZGlmeVRhYmxlU3RhdGUgKm10 c3RhdGU7CisJRVBRU3RhdGUgICAqZXBxc3RhdGU7CisJRVN0YXRlCSAgICplc3RhdGU7CisKKwkv KgorCSAqIFNsb3QgY29udGFpbmluZyB0dXBsZSBvYnRhaW5lZCBmcm9tIE1vZGlmeVRhYmxlJ3Mg c3VicGxhbi4gIFVzZWQgdG8KKwkgKiBhY2Nlc3MgImp1bmsiIGNvbHVtbnMgdGhhdCBhcmUgbm90 IGdvaW5nIHRvIGJlIHN0b3JlZC4KKwkgKi8KKwlUdXBsZVRhYmxlU2xvdCAqcGxhblNsb3Q7CisK KwkvKgorCSAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBjaGFuZ2VzIHRoYXQgd2VyZSBtYWRlIGNv bmN1cnJlbnRseSB0byBhIHR1cGxlCisJICogYmVpbmcgdXBkYXRlZCBvciBkZWxldGVkCisJICov CisJVE1fRmFpbHVyZURhdGEgdG1mZDsKKworCS8qCisJICogVGhlIHR1cGxlIGRlbGV0ZWQgd2hl biBkb2luZyBhIGNyb3NzLXBhcnRpdGlvbiBVUERBVEUgd2l0aCBhIFJFVFVSTklORworCSAqIGNs YXVzZSB0aGF0IHJlZmVycyB0byBPTEQgY29sdW1ucyAoY29udmVydGVkIHRvIHRoZSByb290J3Mg dHVwbGUKKwkgKiBkZXNjcmlwdG9yKS4KKwkgKi8KKwlUdXBsZVRhYmxlU2xvdCAqY3BEZWxldGVk U2xvdDsKKworCS8qCisJICogVGhlIHR1cGxlIHByb2plY3RlZCBieSB0aGUgSU5TRVJUJ3MgUkVU VVJOSU5HIGNsYXVzZSwgd2hlbiBkb2luZyBhCisJICogY3Jvc3MtcGFydGl0aW9uIFVQREFURQor CSAqLworCVR1cGxlVGFibGVTbG90ICpjcFVwZGF0ZVJldHVybmluZ1Nsb3Q7Cit9IE1vZGlmeVRh YmxlQ29udGV4dDsKKwogZXh0ZXJuIHZvaWQgRXhlY0luaXRHZW5lcmF0ZWQoUmVzdWx0UmVsSW5m byAqcmVzdWx0UmVsSW5mbywKIAkJCQkJCQkgIEVTdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSAgQ21k VHlwZSBjbWR0eXBlKTsKQEAgLTI0LDYgKzYzLDEyIEBAIGV4dGVybiB2b2lkIEV4ZWNDb21wdXRl U3RvcmVkR2VuZXJhdGVkKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCQkJCQkJCQkg ICBDbWRUeXBlIGNtZHR5cGUpOwogCiBleHRlcm4gTW9kaWZ5VGFibGVTdGF0ZSAqRXhlY0luaXRN b2RpZnlUYWJsZShNb2RpZnlUYWJsZSAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3Mp OworZXh0ZXJuIFR1cGxlVGFibGVTbG90ICpFeGVjSW5zZXJ0KE1vZGlmeVRhYmxlQ29udGV4dCAq Y29udGV4dCwKKwkJCQkJCQkJICBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAorCQkJCQkJ CQkgIFR1cGxlVGFibGVTbG90ICpzbG90LAorCQkJCQkJCQkgIGJvb2wgY2FuU2V0VGFnLAorCQkJ CQkJCQkgIFR1cGxlVGFibGVTbG90ICoqaW5zZXJ0ZWRfdHVwbGUsCisJCQkJCQkJCSAgUmVzdWx0 UmVsSW5mbyAqKmluc2VydF9kZXN0cmVsKTsKIGV4dGVybiB2b2lkIEV4ZWNFbmRNb2RpZnlUYWJs ZShNb2RpZnlUYWJsZVN0YXRlICpub2RlKTsKIGV4dGVybiB2b2lkIEV4ZWNSZVNjYW5Nb2RpZnlU YWJsZShNb2RpZnlUYWJsZVN0YXRlICpub2RlKTsKIAotLSAKMi4zNC4xCgo= --0000000000003d729406529ff7c2--