Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pIoD2-0000AL-Pr for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Jan 2023 10:01:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pIoD0-0001ea-2B for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Jan 2023 10:01:18 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pIoCz-0001eQ-HI for pgsql-hackers@lists.postgresql.org; Fri, 20 Jan 2023 10:01:17 +0000 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pIoCu-0008Lg-LH for pgsql-hackers@lists.postgresql.org; Fri, 20 Jan 2023 10:01:17 +0000 Received: by mail-oi1-x229.google.com with SMTP id r132so3960801oif.10 for ; Fri, 20 Jan 2023 02:01:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=jzxYYT3jeMwyJJTdil4HAhNJ8EpSHFG4yICzHVkkOdg=; b=AJFasnloDm8IUpohpG4gqk90gYLNfFsZT7Fa3+gCgFFqxZDzj8Cx2GOKGCXEsefZzr 3crqs7QUCa5CEpCm46HlDUT1VzPnupzi9OtiUCKDz4b3AtN7QFq/xGUBmFLOIrNp0Hlb w0V6DPRjA43+eGGLdKsnUHcMt80rahv5JKDTZiwE8RWEtjhs2b+fjTLpKVgVnyFlpgSV XGpVTPJ4qsOGyXVn4NBLyVJ9CfisvjDT+hjObTfeuJ0ByDBoN1VHZV1PJ0725KI8kXUL XLr4eLWIY2nNuKzCBlrqYaGkWkoo77a5AWXlDNdv32PjVuSr9WldSOwsDxHjs2LWBUCD tZgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=jzxYYT3jeMwyJJTdil4HAhNJ8EpSHFG4yICzHVkkOdg=; b=xNC1NWWMVFuauCgwpXv3IZBfHKC7Oj7e4VRxZzTkmHypq95ptq9aZAPXjaDrpd7JmM ENeA3FLcNBqRrxt72QIlf2KioAZswUmFIL+1qbFe7HMyiH5zMpmSPBAwdBl/dpEPOkKm IkvP9nN7zBsI+nTQkBubhHC0++bW9OLH88aFw1nTybDpbw+XgxSvZV2XQqmDQ+j+AMZq 8Fc0mqJ3EcA+e3razX/oEKjhF5n2nTQFF2DRffwZaZNK4ybGMTAtKdvFsRpN6GCCnaMd /h6IvbocdbSTt+sys0zXE+sYucEaVyE3CVhx5ZWU5a5InWnVGZ1v4Ukgm2RB3kum0/jx k76g== X-Gm-Message-State: AFqh2ko9FaJElbkhdlynhxNv6s9DgZkeK8Mb8fClpvLjRc+YmYj/q17E n6VCQufZSrMjyfq6w0mzLFI0soMtTywWOlzl10s= X-Google-Smtp-Source: AMrXdXuHd72mwZsj05KIP+58vGSdqCPW/LFoYzJvxoKPSsPeImb018Yi5ex+P0dNgb/RWSd22Jlc5/7OeIO8DG0ymok= X-Received: by 2002:aca:5b0a:0:b0:364:5ff7:4e9f with SMTP id p10-20020aca5b0a000000b003645ff74e9fmr1014234oib.160.1674208870201; Fri, 20 Jan 2023 02:01:10 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: vignesh C Date: Fri, 20 Jan 2023 15:30:54 +0530 Message-ID: Subject: Re: Skipping schema changes in publication To: Ian Lawrence Barwick Cc: "osumi.takamichi@fujitsu.com" , Peter Smith , Amit Kapila , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000fd751705f2af20bd" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000fd751705f2af20bd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 16 Nov 2022 at 15:35, vignesh C wrote: > > On Wed, 16 Nov 2022 at 09:34, Ian Lawrence Barwick wr= ote: > > > > 2022=E5=B9=B411=E6=9C=887=E6=97=A5(=E6=9C=88) 22:39 vignesh C : > > > > > > On Fri, 4 Nov 2022 at 08:19, Ian Lawrence Barwick = wrote: > > > > > > > > Hi > > > > > > > > cfbot reports the patch no longer applies [1]. As CommitFest 2022-1= 1 is > > > > currently underway, this would be an excellent time to update the p= atch. > > > > > > > > [1] http://cfbot.cputube.org/patch_40_3646.log > > > > > > Here is an updated patch which is rebased on top of HEAD. > > > > Thanks for the updated patch. > > > > While reviewing the patch backlog, we have determined that this patch a= dds > > one or more TAP tests but has not added the test to the "meson.build" f= ile. > > Thanks, I have updated the meson.build to include the TAP test. The > attached patch has the changes for the same. The patch was not applying on top of HEAD, attached a rebased version. Regards, Vignesh --000000000000fd751705f2af20bd Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v10-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ld4cpxgm0 RnJvbSA1ODg5ZWIwYjQyYjZmNTk1ODczZTRhMWQzODIzY2M0OWI1MDcwNjIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTkgSmFuIDIwMjMgMTg6MTM6NTQgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxMCAxLzJd IEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbAogcmVzZXQg dGhlIHB1YmxpY2F0aW9uIHdpdGggZGVmYXVsdCB2YWx1ZXMuCgpUaGlzIHBhdGNoIGFkZHMgYSBu ZXcgUkVTRVQgY2xhdXNlIHRvIEFMVEVSIFBVQkxJQ0FUSU9OIHdoaWNoIHdpbGwgcmVzZXQKdGhl IHB1YmxpY2F0aW9uIHRvIHRoZSBkZWZhdWx0IHN0YXRlIHdoaWNoIGluY2x1ZGVzIHJlc2V0dGlu ZyB0aGUgcHVibGljYXRpb24KcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVTIGZsYWcgdG8g ZmFsc2UgYW5kIGRyb3BwaW5nIHRoZSByZWxhdGlvbnMgYW5kCnNjaGVtYXMgdGhhdCBhcmUgYXNz b2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KVXNhZ2U6CkFMVEVSIFBVQkxJQ0FUSU9OIHB1 YjEgUkVTRVQ7Ci0tLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sICAg fCAgMzUgKysrKysrLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jICAg IHwgMTA1ICsrKysrKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkg ICAgICAgICAgICAgICAgIHwgICA5ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAg ICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAg ICAgICAgfCAgIDMgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0 IHwgMTAxICsrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGlj YXRpb24uc3FsICAgICAgfCAgNTAgKysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMjkxIGlu c2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGlj YXRpb24uc2dtbAppbmRleCBjZDIwODY4YmNhLi5hYjNjZWJkNzFjIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yNyw2ICsyNyw3IEBAIEFMVEVSIFBVQkxJQ0FU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gRFJP UCA8cmVwbGFjCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0gKQogQUxURVIgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZT5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJF TlRfUk9MRSB8IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9CiBBTFRFUiBQVUJMSUNBVElP TiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFN RSBUTyA8cmVwbGFjZWFibGU+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgUFVCTElDQVRJ T04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRVNF VAogCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNh dGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKQEAgLTY3LDE4 ICs2OCwzMiBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogICA8L3BhcmE+CiAKICAgPHBhcmE+ Ci0gICBUaGUgcmVtYWluaW5nIHZhcmlhbnRzIGNoYW5nZSB0aGUgb3duZXIgYW5kIHRoZSBuYW1l IG9mIHRoZSBwdWJsaWNhdGlvbi4KKyAgIFRoZSA8bGl0ZXJhbD5PV05FUjwvbGl0ZXJhbD4gY2xh dXNlIHdpbGwgY2hhbmdlIHRoZSBvd25lciBvZiB0aGUKKyAgIHB1YmxpY2F0aW9uLgorICA8L3Bh cmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSA8bGl0ZXJhbD5SRU5BTUU8L2xpdGVyYWw+IGNsYXVz ZSB3aWxsIGNoYW5nZSB0aGUgbmFtZSBvZiB0aGUKKyAgICBwdWJsaWNhdGlvbi4KKyAgIDwvcGFy YT4KKworICAgPHBhcmE+CisgICAgVGhlIDxsaXRlcmFsPlJFU0VUPC9saXRlcmFsPiBjbGF1c2Ug d2lsbCByZXNldCB0aGUgcHVibGljYXRpb24gdG8gdGhlCisgICAgZGVmYXVsdCBzdGF0ZSB3aGlj aCBpbmNsdWRlcyByZXNldHRpbmcgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcK KyAgICA8bGl0ZXJhbD5BTEwgVEFCTEVTPC9saXRlcmFsPiBmbGFnIHRvIDxsaXRlcmFsPmZhbHNl PC9saXRlcmFsPiBhbmQKKyAgICBkcm9wcGluZyBhbGwgcmVsYXRpb25zIGFuZCBzY2hlbWFzIHRo YXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUKKyAgICBwdWJsaWNhdGlvbi4KICAgPC9wYXJhPgog CiAgIDxwYXJhPgogICAgWW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1h bmQ+QUxURVIgUFVCTElDQVRJT048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFibGUgdG8gYSBw dWJsaWNhdGlvbiBhZGRpdGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBU aGUgPGxpdGVyYWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAotICAgPGxpdGVy YWw+U0VUIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRpb24gcmVxdWly ZXMgdGhlCi0gICBpbnZva2luZyB1c2VyIHRvIGJlIGEgc3VwZXJ1c2VyLgotICAgVG8gYWx0ZXIg dGhlIG93bmVyLCB5b3UgbXVzdCBiZSBhYmxlIHRvIDxsaXRlcmFsPlNFVCBST0xFPC9saXRlcmFs PiB0byB0aGUKLSAgIG5ldyBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUgPGxp dGVyYWw+Q1JFQVRFPC9saXRlcmFsPgotICAgcHJpdmlsZWdlIG9uIHRoZSBkYXRhYmFzZS4KKyAg IFRoZSA8bGl0ZXJhbD5BREQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisgICA8bGl0ZXJh bD5TRVQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQKKyAg IDxsaXRlcmFsPlJFU0VUPC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUgaW52 b2tpbmcgdXNlciB0byBiZSBhCisgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwgeW91 IG11c3QgYmUgYWJsZSB0bworICAgPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+IHRvIHRoZSBu ZXcgb3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlCisgICA8bGl0ZXJhbD5DUkVB VEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgZGF0YWJhc2UuCiAgICBBbHNvLCB0aGUgbmV3 IG93bmVyIG9mIGEgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IG9yCiAgICA8bGl0 ZXJhbD5GT1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4KICAgIHB1YmxpY2F0aW9uIG11c3Qg YmUgYSBzdXBlcnVzZXIuIEhvd2V2ZXIsIGEgc3VwZXJ1c2VyIGNhbgpAQCAtMjEyLDYgKzIyNywx MiBAQCBBTFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBBREQgVEFCTEVTIElOIFND SEVNQSBtYXJrZXRpbmcsIHNhbGVzOwogICAgPHN0cnVjdG5hbWU+cHJvZHVjdGlvbl9wdWJsaWNh dGlvbjwvc3RydWN0bmFtZT46CiA8cHJvZ3JhbWxpc3Rpbmc+CiBBTFRFUiBQVUJMSUNBVElPTiBw cm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBUQUJMRSB1c2VycywgZGVwYXJ0bWVudHMsIFRBQkxF UyBJTiBTQ0hFTUEgcHJvZHVjdGlvbjsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCisgIDxw YXJhPgorICAgUmVzZXQgdGhlIHB1YmxpY2F0aW9uIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rpb25fcHVi bGljYXRpb248L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgUFVCTElDQVRJ T04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBSRVNFVDsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJh PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1Ymxp Y2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5k ZXggZjRiYTU3MjY5Ny4uZTllZTc3ZWNkMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRp b25jbWRzLmMKQEAgLTU1LDYgKzU1LDE0IEBACiAjaW5jbHVkZSAidXRpbHMvdmFybGVuYS5oIgog CiAKKy8qIENSRUFURSBQVUJMSUNBVElPTiBkZWZhdWx0IHZhbHVlcyBmb3IgZmxhZ3MgYW5kIHB1 YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUNUSU9OX0lOU0VS VCB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUgdHJ1ZQorI2RlZmluZSBQ VUJfREVGQVVMVF9BQ1RJT05fREVMRVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUNUSU9O X1RSVU5DQVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRfVklBX1JPT1QgZmFsc2UKKyNkZWZp bmUgUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyBmYWxzZQorCiAvKgogICogSW5mb3JtYXRpb24gdXNl ZCB0byB2YWxpZGF0ZSB0aGUgY29sdW1ucyBpbiB0aGUgcm93IGZpbHRlciBleHByZXNzaW9uLiBT ZWUKICAqIGNvbnRhaW5faW52YWxpZF9yZmNvbHVtbl93YWxrZXIgZm9yIGRldGFpbHMuCkBAIC05 MywxMSArMTAxLDExIEBAIHBhcnNlX3B1YmxpY2F0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdF9naXZlbiA9IGZhbHNlOwogCiAJLyog ZGVmYXVsdHMgKi8KLQlwdWJhY3Rpb25zLT5wdWJpbnNlcnQgPSB0cnVlOwotCXB1YmFjdGlvbnMt PnB1YnVwZGF0ZSA9IHRydWU7Ci0JcHViYWN0aW9ucy0+cHViZGVsZXRlID0gdHJ1ZTsKLQlwdWJh Y3Rpb25zLT5wdWJ0cnVuY2F0ZSA9IHRydWU7Ci0JKnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290 ID0gZmFsc2U7CisJcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gUFVCX0RFRkFVTFRfQUNUSU9OX0lO U0VSVDsKKwlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVVBEQVRF OworCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9ERUxFVEU7CisJ cHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNBVEU7CisJ KnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gUFVCX0RFRkFVTFRfVklBX1JPT1Q7CiAKIAkv KiBQYXJzZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywgb3B0aW9ucykKQEAgLTEwNzksNiArMTA4 Nyw5MSBAQCBJbnZhbGlkYXRlUHVibGljYXRpb25SZWxzKExpc3QgKnJlbGlkcykKIAkJQ2FjaGVJ bnZhbGlkYXRlUmVsY2FjaGVBbGwoKTsKIH0KIAorLyoKKyAqIFJlc2V0IHRoZSBwdWJsaWNhdGlv bi4KKyAqCisgKiBSZXNldCB0aGUgcHVibGljYXRpb24gcGFyYW1ldGVycywgc2V0dGluZyBBTEwg VEFCTEVTIGZsYWcgdG8gZmFsc2UgYW5kIGRyb3AKKyAqIGFsbCByZWxhdGlvbnMgYW5kIHNjaGVt YXMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KKyAqLworc3RhdGlj IHZvaWQKK0FsdGVyUHVibGljYXRpb25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVi bGljYXRpb25TdG10ICpzdG10LAorCQkJCQkgIFJlbGF0aW9uIHJlbCwgSGVhcFR1cGxlIHR1cCkK K3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikg R0VUU1RSVUNUKHR1cCk7CisJT2lkCQkJcHViaWQgPSBwdWJmb3JtLT5vaWQ7CisJTGlzdAkgICAq c2NoZW1hcyA9IE5JTDsKKwlMaXN0CSAgICpyZWxzID0gTklMOworCWJvb2wJCW51bGxzW05hdHRz X3BnX3B1YmxpY2F0aW9uXTsKKwlib29sCQlyZXBsYWNlc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07 CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJT2JqZWN0QWRkcmVzcyBv Ymo7CisJTGlzdENlbGwgICAqbGM7CisJT2lkCQkJcHJpZDsKKworCS8qIFJFU0VUIHB1YmxpY2F0 aW9uIHJlcXVpcmVzIHN1cGVydXNlciAqLworCWlmICghc3VwZXJ1c2VyKCkpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJ CWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gUkVTRVQgcHVibGljYXRpb24iKSk7CisKKwlt ZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVtc2V0KG51bGxzLCBmYWxzZSwg c2l6ZW9mKG51bGxzKSk7CisJbWVtc2V0KHJlcGxhY2VzLCBmYWxzZSwgc2l6ZW9mKHJlcGxhY2Vz KSk7CisKKwkvKiBSZXNldCB0aGUgcHVibGljYXRpb24gcGFyYW1ldGVycyAqLworCXZhbHVlc1tB bnVtX3BnX3B1YmxpY2F0aW9uX3B1Ymluc2VydCAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZB VUxUX0FDVElPTl9JTlNFUlQpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViaW5z ZXJ0IC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHVidXBkYXRl IC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX1VQREFURSk7CisJcmVwbGFj ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ1cGRhdGUgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNb QW51bV9wZ19wdWJsaWNhdGlvbl9wdWJkZWxldGUgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVG QVVMVF9BQ1RJT05fREVMRVRFKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmRl bGV0ZSAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnRydW5j YXRlIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5DQVRFKTsKKwly ZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnRydW5jYXRlIC0gMV0gPSB0cnVlOworCisJ dmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHVidmlhcm9vdCAtIDFdID0gQm9vbEdldERhdHVt KFBVQl9ERUZBVUxUX1ZJQV9ST09UKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1 YnZpYXJvb3QgLSAxXSA9IHRydWU7CisKKwkvKiBTZXQgQUxMIFRBQkxFUyBmbGFnIHRvIGZhbHNl ICovCisJaWYgKHB1YmZvcm0tPnB1YmFsbHRhYmxlcykKKwl7CisJCXZhbHVlc1tBbnVtX3BnX3B1 YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FM TF9UQUJMRVMpOworCQlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAt IDFdID0gdHJ1ZTsKKwkJQ2FjaGVJbnZhbGlkYXRlUmVsY2FjaGVBbGwoKTsKKwl9CisKKwl0dXAg PSBoZWFwX21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBu dWxscywKKwkJCQkJCQlyZXBsYWNlcyk7CisKKwkvKiBVcGRhdGUgdGhlIGNhdGFsb2cuICovCisJ Q2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXApOworCisJLyogRHJvcCB0 aGUgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uICovCisJc2NoZW1hcyA9 IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7CisJUHVibGljYXRpb25Ecm9wU2NoZW1hcyhw dWJpZCwgc2NoZW1hcywgZmFsc2UpOworCisJLyogRHJvcCB0aGUgcmVsYXRpb25zIGFzc29jaWF0 ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gKi8KKwlyZWxzID0gR2V0UHVibGljYXRpb25SZWxhdGlv bnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisJZm9yZWFjaChsYywgcmVscykKKwl7 CisJCU9pZAkJCXJlbGlkID0gbGZpcnN0X29pZChsYyk7CisKKwkJcHJpZCA9IEdldFN5c0NhY2hl T2lkMihQVUJMSUNBVElPTlJFTE1BUCwgQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfb2lkLAorCQkJ CQkJCSAgIE9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAorCQkJCQkJCSAgIE9iamVjdElkR2V0RGF0 dW0ocHViaWQpKTsKKwkJaWYgKCFPaWRJc1ZhbGlkKHByaWQpKQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygi cmVsYXRpb24gXCIlc1wiIGlzIG5vdCBwYXJ0IG9mIHRoZSBwdWJsaWNhdGlvbiIsCisJCQkJCQkJ Z2V0X3JlbF9uYW1lKHJlbGlkKSkpKTsKKworCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHVibGlj YXRpb25SZWxSZWxhdGlvbklkLCBwcmlkKTsKKwkJcGVyZm9ybURlbGV0aW9uKCZvYmosIERST1Bf Q0FTQ0FERSwgMCk7CisJfQorfQorCiAvKgogICogQWRkIG9yIHJlbW92ZSB0YWJsZSB0by9mcm9t IHB1YmxpY2F0aW9uLgogICovCkBAIC0xNDAxLDYgKzE0OTQsOCBAQCBBbHRlclB1YmxpY2F0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAKIAlpZiAo c3RtdC0+b3B0aW9ucykKIAkJQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMocHN0YXRlLCBzdG10LCBy ZWwsIHR1cCk7CisJZWxzZSBpZiAoc3RtdC0+YWN0aW9uID09IEFQX1Jlc2V0UHVibGljYXRpb24p CisJCUFsdGVyUHVibGljYXRpb25SZXNldChwc3RhdGUsIHN0bXQsIHJlbCwgdHVwKTsKIAllbHNl CiAJewogCQlMaXN0CSAgICpyZWxhdGlvbnMgPSBOSUw7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBhMDEzODM4 MmExLi5hZmJlNDA4ZmUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTEwNTAxLDYgKzEwNTAxLDggQEAgcHVi X29ial9saXN0OglQdWJsaWNhdGlvbk9ialNwZWMKICAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBu YW1lIFNFVCBwdWJfb2JqIFssIC4uLl0KICAqCisgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFJF U0VUCisgKgogICogcHViX29iaiBpcyBvbmUgb2Y6CiAgKgogICoJCVRBQkxFIHRhYmxlX25hbWUg WywgLi4uXQpAQCAtMTA1NDcsNiArMTA1NDksMTMgQEAgQWx0ZXJQdWJsaWNhdGlvblN0bXQ6CiAJ CQkJCW4tPmFjdGlvbiA9IEFQX0Ryb3BPYmplY3RzOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJ CQkJfQorCQkJfCBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFJFU0VUCisJCQkJeworCQkJCQlBbHRl clB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHVibGljYXRpb25TdG10KTsKKwkJ CQkJbi0+cHVibmFtZSA9ICQzOworCQkJCQluLT5hY3Rpb24gPSBBUF9SZXNldFB1YmxpY2F0aW9u OworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsKIAogLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmMKaW5kZXggNWUxODgyZWFlYS4uYmRmYzZkOGU4OCAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuYwpAQCAtMTg2OSw3ICsxODY5LDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIg KnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1l PiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnkp KQotCQlDT01QTEVURV9XSVRIKCJBREQiLCAiRFJPUCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8i LCAiU0VUIik7CisJCUNPTVBMRVRFX1dJVEgoIkFERCIsICJEUk9QIiwgIk9XTkVSIFRPIiwgIlJF TkFNRSBUTyIsICJSRVNFVCIsICJTRVQiKTsKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4g QUREICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFu eSwgIkFERCIpKQogCQlDT01QTEVURV9XSVRIKCJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggZjM5YWI4NTg2YS4uNzcyZmVhMGY4MiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaApAQCAtMzc4OSw3ICszNzg5LDggQEAgdHlwZWRlZiBlbnVtIEFsdGVy UHVibGljYXRpb25BY3Rpb24KIHsKIAlBUF9BZGRPYmplY3RzLAkJCQkvKiBhZGQgb2JqZWN0cyB0 byBwdWJsaWNhdGlvbiAqLwogCUFQX0Ryb3BPYmplY3RzLAkJCQkvKiByZW1vdmUgb2JqZWN0cyBm cm9tIHB1YmxpY2F0aW9uICovCi0JQVBfU2V0T2JqZWN0cwkJCQkvKiBzZXQgbGlzdCBvZiBvYmpl Y3RzICovCisJQVBfU2V0T2JqZWN0cywJCQkJLyogc2V0IGxpc3Qgb2Ygb2JqZWN0cyAqLworCUFQ X1Jlc2V0UHVibGljYXRpb24JCQkvKiByZXNldCB0aGUgcHVibGljYXRpb24gKi8KIH0gQWx0ZXJQ dWJsaWNhdGlvbkFjdGlvbjsKIAogdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQdWJsaWNhdGlvblN0bXQK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggNDI3Zjg3ZWEw Ny4uNzA4Y2RiYmQ3NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJs aWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5v dXQKQEAgLTE3MjMsNiArMTcyMywxMDcgQEAgRFJPUCBQVUJMSUNBVElPTiBwdWI7CiBEUk9QIFRB QkxFIHNjaDEudGJsMTsKIERST1AgU0NIRU1BIHNjaDEgY2FzY2FkZTsKIERST1AgU0NIRU1BIHNj aDIgY2FzY2FkZTsKKy0tIFRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQKK0NS RUFURSBTQ0hFTUEgcHViX3NjaDE7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMSAoYSBpbnQp OworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJMRVM7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2Vz OworLS0gVmVyaWZ5IHRoYXQgJ0FMTCBUQUJMRVMnIGZsYWcgaXMgcmVzZXQKK1xkUnArIHRlc3Rw dWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBm CisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJw KyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNh dGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxl cyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBU QUJMRSBwdWJfc2NoMS50YmwxOworLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29jaWF0ZWQgd2l0 aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJf cmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCitU YWJsZXM6CisgICAgInB1Yl9zY2gxLnRibDEiCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CistLSBWZXJpZnkg dGhhdCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQg YWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJl Z3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgICAgfCBmCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJs aWMiCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0 cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwg ZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElT SCA9ICcnKTsKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xk UnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3Qg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAg ICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVT RVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg QWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZp YSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworLS0gVmVyaWZ5 IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xk UnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3Qg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgICAgfCB0CisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVT RVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg QWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZp YSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgZgorKDEgcm93KQorCistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNl ciBjYW4gcmVzZXQgYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworU0VUIFJPTEUgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorRVJST1I6ICBtdXN0IGJlIHN1cGVydXNlciB0 byBSRVNFVCBwdWJsaWNhdGlvbgorU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOwor RFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OworRFJPUCBUQUJMRSBwdWJfc2NoMS50Ymwx OworRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBE Uk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyLCByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIyOwogRFJPUCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcl9kdW1teTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCBhNDdjNTkzOWQ1Li5lYzcxMGZmMzNkIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC0xMDkzLDYgKzEwOTMsNTYgQEAgRFJP UCBUQUJMRSBzY2gxLnRibDE7CiBEUk9QIFNDSEVNQSBzY2gxIGNhc2NhZGU7CiBEUk9QIFNDSEVN QSBzY2gyIGNhc2NhZGU7CiAKKy0tIFRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVT RVQKK0NSRUFURSBTQ0hFTUEgcHViX3NjaDE7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMSAo YSBpbnQpOworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJMRVM7CitSRVNFVCBjbGllbnRfbWluX21l c3NhZ2VzOworCistLSBWZXJpZnkgdGhhdCAnQUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAorXGRS cCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsK K1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgVEFCTEUgcHViX3NjaDEudGJsMTsKKworLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29jaWF0 ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnArIHRl c3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJw KyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFM TCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKKworLS0gVmVyaWZ5IHRoYXQgc2NoZW1hcyBhc3Nv Y2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uIGFyZSBkcm9wcGVkIGFmdGVyIFJFU0VUCitcZFJw KyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwor XGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNF VCAoUFVCTElTSCA9ICcnKTsKKworLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0gnIHBhcmFtZXRlciBp cyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UID0gJ3RydWUnKTsKKwor LS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIgaXMg cmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3Vw ZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBS RVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCitTRVQgUk9MRSByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXI7CisKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKK0RST1AgVEFC TEUgcHViX3NjaDEudGJsMTsKK0RST1AgU0NIRU1BIHB1Yl9zY2gxOworCiBSRVNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT047CiBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyLCByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogRFJPUCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl cl9kdW1teTsKLS0gCjIuMzQuMQoK --000000000000fd751705f2af20bd Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v10-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ld4cpxih1 RnJvbSA5NGY0ZmMxODRiMGVkMDY1MzNkYWQyNDFkYWZhMDcwMjk1ZDM3ODU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTkgSmFuIDIwMjMgMTg6MTQ6NDcgKzA1MzAKU3ViamVjdDogW1BBVENIIHYxMCAyLzJd IFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFCTEUuCgpB IG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURS9BTFRFUiBQVUJMSUNBVElPTiBh bGxvd3Mgb25lIG9yCm1vcmUgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlzaGVyIHdp bGwgbm90IHNlbmQgdGhlIGRhdGEgb2YKZXhjbHVkZWQgdGFibGVzIHRvIHRoZSBzdWJzY3JpYmVy LgoKVGhlIG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRpb25zIHdo ZW4gY3JlYXRpbmcgb3IgYWx0ZXJpbmcKYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6CkNSRUFU RSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0MSx0MjsKb3IK QUxURVIgUFVCTElDQVRJT04gcHViMSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdDEsdDI7 CgpBIG5ldyBjb2x1bW4gInByZXhjZXB0IiBpcyBhZGRlZCB0byB0YWJsZSAicGdfcHVibGljYXRp b25fcmVsIiwgdG8gbWFpbnRhaW4KdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdhbnRzIHRv IGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRhdGVkIHRvIGlk ZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1YmxpY2F0aW9ucy4K ClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhjbHVkZWQg dGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5IGFzc29jaWF0 ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgotLS0KIGRv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSArCiBkb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDggKy0KIGRvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAxOSArLQogZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDI5ICsrLQogZG9jL3Ny Yy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgICAgICAgICAgfCAgNjggKysrKy0tCiBzcmMv YmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgICAgfCAxOTcgKysrKysrKysr KysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAg fCAgIDIgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8 ICA0MSArKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jICAg fCAgMjUgKy0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAgICAgICAg fCAgMTcgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8 ICA1NiArKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAgICAgICB8 ICAgNyArCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAg MjYgKysrCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAg NjIgKysrKystCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAg fCAgMTAgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgICAgICB8 ICAgNyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCAgICAgIHwg ICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oICAgICAgICB8ICAg NyArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAy ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgICB8ICA5MSAr KysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgICAgIHwg IDQ4ICsrKystCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAgICAgICAg fCAgIDEgKwogLi4uL3QvMDMyX3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCAgICAgICAgIHwg IDgwICsrKysrKysKIDI1IGZpbGVzIGNoYW5nZWQsIDY5MCBpbnNlcnRpb25zKCspLCAxMjkgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMy X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggYzFlNDA0ODA1 NC4uYzhjMTNjN2E5NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTY0NzYsNiArNjQ3NiwxNSBAQCBTQ1JB TS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFi bGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgaWYgdGhlcmUgaXMgbm8gcHVibGljYXRpb24gcXVh bGlmeWluZyBjb25kaXRpb24uPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgPHN0cnVjdGZpZWxkPnByZXhjZXB0PC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIFRydWUgaWYgdGhlIHJlbGF0aW9uIG11c3QgYmUgZXhjbHVkZWQKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAg ICA8c3RydWN0ZmllbGQ+cHJhdHRyczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDJ2ZWN0b3I8L3R5 cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIv ZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAppbmRleCAxYmQ1NjYwYzg3Li5h ZDI1ZjQzMTg2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTE3MzYs MTAgKzE3MzYsMTAgQEAgQ09OVEVYVDogIHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxp Y2F0aW9uIG9yaWdpbiAicGdfMTYzOTUiIGR1cmluZyAiSU5TRVIKICAgPC9wYXJhPgogCiAgIDxw YXJhPgotICAgVG8gYWRkIHRhYmxlcyB0byBhIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGhh dmUgb3duZXJzaGlwIHJpZ2h0cyBvbiB0aGUKLSAgIHRhYmxlLiBUbyBhZGQgYWxsIHRhYmxlcyBp biBzY2hlbWEgdG8gYSBwdWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVzdCBiZSBhCi0gICBzdXBlcnVz ZXIuIFRvIGNyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCB0YWJsZXMgb3Ig YWxsIHRhYmxlcyBpbgotICAgc2NoZW1hIGF1dG9tYXRpY2FsbHksIHRoZSB1c2VyIG11c3QgYmUg YSBzdXBlcnVzZXIuCisgICBUbyBjcmVhdGUgYSBwdWJsaWNhdGlvbiB1c2luZyBGT1IgQUxMIFRB QkxFUyBvciBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEsCisgICB0aGUgdXNlciBtdXN0IGJlIGEg c3VwZXJ1c2VyLiBUbyBhZGQgQUxMIFRBQkxFUyBvciBBTEwgVEFCTEVTIElOIFNDSEVNQSB0byBh CisgICBwdWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVzdCBiZSBhIHN1cGVydXNlci4gVG8gYWRkIHRh YmxlcyB0byBhIHB1YmxpY2F0aW9uLAorICAgdGhlIHVzZXIgbXVzdCBoYXZlIG93bmVyc2hpcCBy aWdodHMgb24gdGhlIHRhYmxlLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggYWIzY2ViZDcxYy4uZjA5YjNhNDkwMiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMjIsNiArMjIsNyBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBB TFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+IEFERCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25f b2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uXQorQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBBREQgQUxMIFRBQkxFUyBb IEVYQ0VQVCBbIFRBQkxFIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdGlv bl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBdCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4g WywgLi4uXQogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9QIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w dWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCiBBTFRFUiBQVUJMSUNBVElP TiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCAo IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8L3Jl cGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxh Y2VhYmxlPl0gWywgLi4uIF0gKQpAQCAtMzMsNiArMzQsMTEgQEAgQUxURVIgUFVCTElDQVRJT04g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRVNFVAog CiAgICAgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxl X25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBb LCAuLi4gXQogICAgIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4u IF0KKworPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0 aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAgWyBPTkxZIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICog XQorCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAKQEAgLTg3LDggKzkzLDkgQEAg QUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBSRVNFVAogCiAgIDxwYXJhPgogICAgWW91IG11c3Qgb3duIHRoZSBwdWJsaWNh dGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxURVIgUFVCTElDQVRJT048L2NvbW1hbmQ+LgotICAgQWRk aW5nIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhZGRpdGlvbmFsbHkgcmVxdWlyZXMgb3duaW5n IHRoYXQgdGFibGUuCi0gICBUaGUgPGxpdGVyYWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVy YWw+LAorICAgQWRkaW5nIGEgdGFibGUgdG8gb3IgZXhjbHVkaW5nIGEgdGFibGUgZnJvbSBhIHB1 YmxpY2F0aW9uIGFkZGl0aW9uYWxseQorICAgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuIFRo ZSA8bGl0ZXJhbD5BREQgQUxMIFRBQkxFUzwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5BREQgQUxM IFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LAogICAgPGxpdGVyYWw+U0VUIFRBQkxFUyBJTiBT Q0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRpb24gYW5kCiAgICA8bGl0ZXJhbD5SRVNFVDwv bGl0ZXJhbD4gb2YgcHVibGljYXRpb24gcmVxdWlyZXMgdGhlIGludm9raW5nIHVzZXIgdG8gYmUg YQogICAgc3VwZXJ1c2VyLiBUbyBhbHRlciB0aGUgb3duZXIsIHlvdSBtdXN0IGJlIGFibGUgdG8K QEAgLTIyMCw2ICsyMjcsMTQgQEAgQUxURVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24g QUREIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKIDwvcHJvZ3JhbWxpc3Rpbmc+ CiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIEFsdGVyIHB1YmxpY2F0aW9uIDxzdHJ1Y3RuYW1l PnByb2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+IHRvIHB1Ymxpc2gKKyAgIGFsbCB0 YWJsZXMgZXhjZXB0IDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiBhbmQKKyAgIDxzdHJ1 Y3RuYW1lPmRlcGFydG1lbnRzPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVS IFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gQUREIEFMTCBUQUJMRVMgRVhDRVBU IHVzZXJzLCBkZXBhcnRtZW50czsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCiAgIDxwYXJh PgogICAgQWRkIHRhYmxlcyA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICA8c3Ry dWN0bmFtZT5kZXBhcnRtZW50czwvc3RydWN0bmFtZT4gYW5kIHNjaGVtYQpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggZTIyOTM4NGU2Zi4uNGM0NjdjMjU2MyAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yMiw3ICsyMiw3 IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNp cz4KIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+Ci0gICAgWyBGT1IgQUxMIFRBQkxFUworICAgIFsgRk9SIEFMTCBUQUJM RVMgWyBFWENFUFQgWyBUQUJMRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNl cHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogICAgICAgfCBGT1IgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+ IFssIC4uLiBdIF0KICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQogCkBAIC0zMCw2 ICszMCwxMCBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogCiAgICAgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywg Li4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVz c2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRBQkxFUyBJTiBTQ0hFTUEgeyA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8 IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KKworPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhy YXNlPgorCisgICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxl X25hbWU8L3JlcGxhY2VhYmxlPiBbICogXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2 PgogCkBAIC0xMjIsNyArMTI2LDkgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8bGlzdGl0ZW0+CiAgICAg IDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1YmxpY2F0aW9uIGFzIG9uZSB0aGF0IHJlcGxpY2F0 ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgotICAgICAgdGhlIGRhdGFiYXNlLCBpbmNsdWRp bmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4KKyAgICAgIHRoZSBkYXRhYmFzZSwgaW5j bHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUuIElmCisgICAgICA8bGl0ZXJhbD5F WENFUFQgVEFCTEU8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlbiBleGNsdWRlIHJlcGxpY2F0 aW5nCisgICAgICB0aGUgY2hhbmdlcyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZXMuCiAgICAgIDwv cGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CkBAIC0xNTgsNiArMTY0 LDE2IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkVYQ0VQVCBUQUJMRTwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgY2xh dXNlIHNwZWNpZmllcyBhIGxpc3Qgb2YgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkIGZyb20gdGhlCisg ICAgICBwdWJsaWNhdGlvbi4gSXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIDxsaXRlcmFsPkZPUiBB TEwgVEFCTEVTPC9saXRlcmFsPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48bGl0ZXJhbD5X SVRIICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRl cjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwv cmVwbGFjZWFibGU+XSBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+ CkBAIC0zNzIsNiArMzg4LDE1IEBAIENSRUFURSBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1Ymxp Y2F0aW9uIEZPUiBUQUJMRSB1c2VycywgZGVwYXJ0bWVudHMsIFRBQkxFUyBJCiBDUkVBVEUgUFVC TElDQVRJT04gc2FsZXNfcHVibGljYXRpb24gRk9SIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5n LCBzYWxlczsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRl IGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgaW4gYWxsIHRoZSB0YWJs ZXMgZXhjZXB0IGZvcgorICAgdGhlIGNoYW5nZXMgb2YgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVj dG5hbWU+IGFuZAorICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+OgorPHBy b2dyYW1saXN0aW5nPgorQ1JFQVRFIFBVQkxJQ0FUSU9OIG15cHVibGljYXRpb24gRk9SIEFMTCBU QUJMRVMgRVhDRVBUIHVzZXJzLCBkZXBhcnRtZW50czsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwv cGFyYT4KKwogICA8cGFyYT4KICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVz IGFsbCBjaGFuZ2VzIGZvciB0YWJsZSA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAg ICBidXQgcmVwbGljYXRlcyBvbmx5IGNvbHVtbnMgPHN0cnVjdG5hbWU+dXNlcl9pZDwvc3RydWN0 bmFtZT4gYW5kCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggZGM2NTI4ZGMxMS4uNDY0MmFiMDE1 ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbApAQCAtMTkxNyw4ICsxOTE3LDkgQEAgSU5TRVJUIElO VE8gdGJsMSBWQUxVRVMgKCQxLCAkMikgXGJpbmQgJ2ZpcnN0IHZhbHVlJyAnc2Vjb25kIHZhbHVl JyBcZwogICAgICAgICBJZiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwv cmVwbGFjZWFibGU+IGlzCiAgICAgICAgIHNwZWNpZmllZCwgb25seSB0aG9zZSBwdWJsaWNhdGlv bnMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHBhdHRlcm4gYXJlCiAgICAgICAgIGxpc3RlZC4KLSAg ICAgICAgSWYgPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQg bmFtZSwgdGhlIHRhYmxlcyBhbmQKLSAgICAgICAgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggZWFj aCBwdWJsaWNhdGlvbiBhcmUgc2hvd24gYXMgd2VsbC4KKyAgICAgICAgSWYgPGxpdGVyYWw+Kzwv bGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwgdGhlIHRhYmxlcywKKyAg ICAgICAgZXhjbHVkZWQgdGFibGVzIGFuZCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1 YmxpY2F0aW9uIGFyZSBzaG93biBhcworICAgICAgICB3ZWxsLgogICAgICAgICA8L3BhcmE+CiAg ICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfcHVibGljYXRpb24uYwppbmRleCBhOThmY2FkNDIxLi40OTYyMjlmMzU3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCkBAIC0yOTAsNyArMjkwLDggQEAgR2V0UHViUGFydGl0 aW9uT3B0aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9w YXJ0b3B0LAogICogYW5jZXN0b3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KICAqLwogT2lk Ci1HZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2Vz dG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbCkKK0dldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRp b24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAorCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xl dmVsLCBib29sIHB1YmFsbHRhYmxlcykKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAlPaWQJCQl0b3Bt b3N0X3JlbGlkID0gSW52YWxpZE9pZDsKQEAgLTMwMiwzMiArMzAzLDQ0IEBAIEdldFRvcE1vc3RB bmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLCBpbnQgKmFu Y2VzdG9yX2xldmVsCiAJZm9yZWFjaChsYywgYW5jZXN0b3JzKQogCXsKIAkJT2lkCQkJYW5jZXN0 b3IgPSBsZmlyc3Rfb2lkKGxjKTsKLQkJTGlzdAkgICAqYXB1YmlkcyA9IEdldFJlbGF0aW9uUHVi bGljYXRpb25zKGFuY2VzdG9yKTsKLQkJTGlzdAkgICAqYXNjaGVtYVB1YmlkcyA9IE5JTDsKKwkJ TGlzdAkgICAqYXB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCBmYWxz ZSk7CisJCUxpc3QJICAgKmFzY2hlbWFwdWJpZHMgPSBOSUw7CisJCUxpc3QJICAgKmFleGNlcHRw dWJpZHMgPSBOSUw7CisJCWJvb2wJCXNldF90b3AgPSBmYWxzZTsKIAogCQlsZXZlbCsrOwogCi0J CWlmIChsaXN0X21lbWJlcl9vaWQoYXB1YmlkcywgcHVib2lkKSkKKwkJLyogY2hlY2sgaWYgbWVt YmVyIG9mIHRhYmxlIHB1YmxpY2F0aW9ucyAqLworCQlzZXRfdG9wID0gbGlzdF9tZW1iZXJfb2lk KGFwdWJpZHMsIHB1Ym9pZCk7CisJCWlmICghc2V0X3RvcCkKIAkJewotCQkJdG9wbW9zdF9yZWxp ZCA9IGFuY2VzdG9yOworCQkJYXNjaGVtYXB1YmlkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhn ZXRfcmVsX25hbWVzcGFjZShhbmNlc3RvcikpOwogCi0JCQlpZiAoYW5jZXN0b3JfbGV2ZWwpCi0J CQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7CisJCQkvKiBjaGVjayBpZiBtZW1iZXIgb2Ygc2No ZW1hIHB1YmxpY2F0aW9ucyAqLworCQkJc2V0X3RvcCA9IGxpc3RfbWVtYmVyX29pZChhc2NoZW1h cHViaWRzLCBwdWJvaWQpOworCisJCQkvKgorCQkJICogSWYgdGhlIHB1YmxpY2F0aW9uIGlzIGFs bCB0YWJsZXMgcHVibGljYXRpb24gYW5kIHRoZSB0YWJsZQorCQkJICogaXMgbm90IHBhcnQgb2Yg ZXhjZXB0aW9uIHRhYmxlcy4KKwkJCSAqLworCQkJaWYgKCFzZXRfdG9wICYmIHB1YmFsbHRhYmxl cykKKwkJCXsKKwkJCQlhZXhjZXB0cHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5j ZXN0b3IsIHRydWUpOworCQkJCXNldF90b3AgPSAhbGlzdF9tZW1iZXJfb2lkKGFleGNlcHRwdWJp ZHMsIHB1Ym9pZCk7CisJCQl9CiAJCX0KLQkJZWxzZQorCisJCWlmIChzZXRfdG9wKQogCQl7Ci0J CQlhc2NoZW1hUHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKGdldF9yZWxfbmFtZXNwYWNl KGFuY2VzdG9yKSk7Ci0JCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFzY2hlbWFQdWJpZHMsIHB1Ym9p ZCkpCi0JCQl7Ci0JCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9yOworCQkJdG9wbW9zdF9yZWxp ZCA9IGFuY2VzdG9yOwogCi0JCQkJaWYgKGFuY2VzdG9yX2xldmVsKQotCQkJCQkqYW5jZXN0b3Jf bGV2ZWwgPSBsZXZlbDsKLQkJCX0KKwkJCWlmIChhbmNlc3Rvcl9sZXZlbCkKKwkJCQkqYW5jZXN0 b3JfbGV2ZWwgPSBsZXZlbDsKIAkJfQogCiAJCWxpc3RfZnJlZShhcHViaWRzKTsKLQkJbGlzdF9m cmVlKGFzY2hlbWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoYXNjaGVtYXB1Ymlkcyk7CisJCWxpc3Rf ZnJlZShhZXhjZXB0cHViaWRzKTsKIAl9CiAKIAlyZXR1cm4gdG9wbW9zdF9yZWxpZDsKQEAgLTM5 Niw2ICs0MDksOCBAQCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJsaWNh dGlvblJlbEluZm8gKnByaSwKIAkJT2JqZWN0SWRHZXREYXR1bShwdWJpZCk7CiAJdmFsdWVzW0Fu dW1fcGdfcHVibGljYXRpb25fcmVsX3BycmVsaWQgLSAxXSA9CiAJCU9iamVjdElkR2V0RGF0dW0o cmVsaWQpOworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2VwdCAtIDFdID0K KwkJQm9vbEdldERhdHVtKHByaS0+ZXhjZXB0KTsKIAogCS8qIEFkZCBxdWFsaWZpY2F0aW9ucywg aWYgYXZhaWxhYmxlICovCiAJaWYgKHByaS0+d2hlcmVDbGF1c2UgIT0gTlVMTCkKQEAgLTY2NCw5 ICs2NzksOSBAQCBwdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBwdWJpZCwgT2lkIHNjaGVtYWlk LCBib29sIGlmX25vdF9leGlzdHMpCiAJcmV0dXJuIG15c2VsZjsKIH0KIAotLyogR2V0cyBsaXN0 IG9mIHB1YmxpY2F0aW9uIG9pZHMgZm9yIGEgcmVsYXRpb24gKi8KKy8qIEdldHMgbGlzdCBvZiBw dWJsaWNhdGlvbiBvaWRzIGZvciBhIHJlbGF0aW9uIHRoYXQgbWF0Y2hlcyB0aGUgZXhjZXB0X2Zs YWcgKi8KIExpc3QgKgotR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKQorR2V0UmVs YXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkLCBib29sIGV4Y2VwdF9mbGFnKQogewogCUxpc3QJ ICAgKnJlc3VsdCA9IE5JTDsKIAlDYXRDTGlzdCAgICpwdWJyZWxsaXN0OwpAQCAtNjgwLDcgKzY5 NSw4IEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkKIAkJSGVhcFR1cGxlCXR1 cCA9ICZwdWJyZWxsaXN0LT5tZW1iZXJzW2ldLT50dXBsZTsKIAkJT2lkCQkJcHViaWQgPSAoKEZv cm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnBycHViaWQ7CiAKLQkJcmVz dWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CisJCWlmIChleGNlcHRfZmxhZyA9PSAo KEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0KQorCQkJ cmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CiAJfQogCiAJUmVsZWFzZVN5c0Nh Y2hlTGlzdChwdWJyZWxsaXN0KTsKQEAgLTc3OSwxMyArNzk1LDE2IEBAIEdldEFsbFRhYmxlc1B1 YmxpY2F0aW9ucyh2b2lkKQogICogcm9vdCBwYXJ0aXRpb25lZCB0YWJsZXMuCiAgKi8KIExpc3Qg KgotR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KQorR2V0 QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBib29sIHB1YnZpYXJvb3Qp CiB7CiAJUmVsYXRpb24JY2xhc3NSZWw7CiAJU2NhbktleURhdGEga2V5WzFdOwogCVRhYmxlU2Nh bkRlc2Mgc2NhbjsKIAlIZWFwVHVwbGUJdHVwbGU7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwor CUxpc3QJICAgKmV4Y2VwdGxpc3Q7CisKKwlleGNlcHRsaXN0ID0gR2V0UHVibGljYXRpb25SZWxh dGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKIAogCWNsYXNzUmVsID0gdGFibGVf b3BlbihSZWxhdGlvblJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CiAKQEAgLTgwMiw3ICs4 MjEsOCBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhib29sIHB1YnZpYXJvb3Qp CiAJCU9pZAkJCXJlbGlkID0gcmVsRm9ybS0+b2lkOwogCiAJCWlmIChpc19wdWJsaXNoYWJsZV9j bGFzcyhyZWxpZCwgcmVsRm9ybSkgJiYKLQkJCSEocmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYg cHVidmlhcm9vdCkpCisJCQkhKHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZpYXJvb3Qp ICYmCisJCQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKIAkJCXJlc3VsdCA9 IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOwogCX0KIApAQCAtODIzLDcgKzg0Myw4IEBAIEdl dEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCkKIAkJCU9pZAkJ CXJlbGlkID0gcmVsRm9ybS0+b2lkOwogCiAJCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVs aWQsIHJlbEZvcm0pICYmCi0JCQkJIXJlbEZvcm0tPnJlbGlzcGFydGl0aW9uKQorCQkJCSFyZWxG b3JtLT5yZWxpc3BhcnRpdGlvbiAmJgorCQkJCSFsaXN0X21lbWJlcl9vaWQoZXhjZXB0bGlzdCwg cmVsaWQpKQogCQkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOwogCQl9CiAK QEAgLTEwNTgsNyArMTA3OSw4IEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJ T05fQVJHUykKIAkJICovCiAJCWlmIChwdWJsaWNhdGlvbi0+YWxsdGFibGVzKQogCQl7Ci0JCQl0 YWJsZXMgPSBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJsaWNhdGlvbi0+cHVi dmlhcm9vdCk7CisJCQl0YWJsZXMgPSBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhw dWJsaWNhdGlvbi0+b2lkLAorCQkJCQkJCQkJCQkJCSAgcHVibGljYXRpb24tPnB1YnZpYXJvb3Qp OwogCQl9CiAJCWVsc2UKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVi bGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpp bmRleCBlOWVlNzdlY2QzLi5iZTFmZTY2NDI5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNh dGlvbmNtZHMuYwpAQCAtMTk3LDYgKzE5NywxMSBAQCBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lk cyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJc3dpdGNoIChw dWJvYmotPnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEU6CisJ CQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CisJCQkJKnJlbHMgPSBsYXBwZW5k KCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgUFVCTElDQVRJ T05PQkpfRVhDRVBUX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7 CiAJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKIAkJCQlicmVh azsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVNQToKQEAgLTI3MSw3ICsy NzYsNyBAQCBjb250YWluX2ludmFsaWRfcmZjb2x1bW5fd2Fsa2VyKE5vZGUgKm5vZGUsIHJmX2Nv bnRleHQgKmNvbnRleHQpCiAgKi8KIGJvb2wKIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVt bihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCi0JCQkJCQkJ ICAgYm9vbCBwdWJ2aWFyb290KQorCQkJCQkJCSAgIGJvb2wgcHVidmlhcm9vdCwgYm9vbCBwdWJh bGx0YWJsZXMpCiB7CiAJSGVhcFR1cGxlCXJmdHVwbGU7CiAJT2lkCQkJcmVsaWQgPSBSZWxhdGlv bkdldFJlbGlkKHJlbGF0aW9uKTsKQEAgLTI5OCw3ICszMDMsOCBAQCBwdWJfcmZfY29udGFpbnNf aW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0 b3JzLAogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9u KQogCXsKIAkJcHVibGlzaF9hc19yZWxpZAotCQkJPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1Ymxp Y2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwpOworCQkJPSBHZXRUb3BNb3N0QW5jZXN0b3JJ blB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsCisJCQkJCQkJCQkJCSAgcHViYWxs dGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJs aXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC0zNDcsNyArMzUzLDcgQEAgcHViX3JmX2NvbnRhaW5z X2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2Vz dG9ycywKICAqLwogYm9vbAogcHViX2NvbGxpc3RfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lk IHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAotCQkJCQkJCQkJYm9v bCBwdWJ2aWFyb290KQorCQkJCQkJCQkJYm9vbCBwdWJ2aWFyb290LCBib29sIHB1YmFsbHRhYmxl cykKIHsKIAlIZWFwVHVwbGUJdHVwbGU7CiAJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlk KHJlbGF0aW9uKTsKQEAgLTM2Niw3ICszNzIsOCBAQCBwdWJfY29sbGlzdF9jb250YWluc19pbnZh bGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3Rvcgog CSAqLwogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9u KQogCXsKLQkJcHVibGlzaF9hc19yZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRp b24ocHViaWQsIGFuY2VzdG9ycywgTlVMTCk7CisJCXB1Ymxpc2hfYXNfcmVsaWQgPSBHZXRUb3BN b3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsCisJCQkJCQkJCQkJCQkJ CSAgIE5VTEwsIHB1YmFsbHRhYmxlcyk7CiAKIAkJaWYgKCFPaWRJc1ZhbGlkKHB1Ymxpc2hfYXNf cmVsaWQpKQogCQkJcHVibGlzaF9hc19yZWxpZCA9IHJlbGlkOwpAQCAtODIyLDUyICs4MjksNTAg QEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlv blN0bXQgKnN0bXQpCiAJLyogTWFrZSB0aGUgY2hhbmdlcyB2aXNpYmxlLiAqLwogCUNvbW1hbmRD b3VudGVySW5jcmVtZW50KCk7CiAKLQkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRoIHRoZSBwdWJs aWNhdGlvbi4gKi8KLQlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCi0JewotCQkvKiBJbnZhbGlk YXRlIHJlbGNhY2hlIHNvIHRoYXQgcHVibGljYXRpb24gaW5mbyBpcyByZWJ1aWx0LiAqLwotCQlD YWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOwotCX0KLQllbHNlCi0JewotCQlPYmplY3RzSW5Q dWJsaWNhdGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCi0J CQkJCQkJCSAgICZzY2hlbWFpZGxpc3QpOworCU9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0 bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0aW9ucywKKwkJCQkJCQkgICAmc2NoZW1haWRs aXN0KTsKIAotCQkvKiBGT1IgVEFCTEVTIElOIFNDSEVNQSByZXF1aXJlcyBzdXBlcnVzZXIgKi8K LQkJaWYgKHNjaGVtYWlkbGlzdCAhPSBOSUwgJiYgIXN1cGVydXNlcigpKQotCQkJZXJlcG9ydChF UlJPUiwKLQkJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAotCQkJ CQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIGNyZWF0ZSBGT1IgVEFCTEVTIElOIFNDSEVN QSBwdWJsaWNhdGlvbiIpKTsKKwkvKiBGT1IgVEFCTEVTIElOIFNDSEVNQSByZXF1aXJlcyBzdXBl cnVzZXIgKi8KKwlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCAmJiAhc3VwZXJ1c2VyKCkpCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0Up LAorCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gY3JlYXRlIEZPUiBUQUJMRVMgSU4g U0NIRU1BIHB1YmxpY2F0aW9uIikpOwogCi0JCWlmIChyZWxhdGlvbnMgIT0gTklMKQotCQl7Ci0J CQlMaXN0CSAgICpyZWxzOworCWlmIChyZWxhdGlvbnMgIT0gTklMKQorCXsKKwkJTGlzdAkgICAq cmVsczsKIAotCQkJcmVscyA9IE9wZW5UYWJsZUxpc3QocmVsYXRpb25zKTsKLQkJCVRyYW5zZm9y bVB1YldoZXJlQ2xhdXNlcyhyZWxzLCBwc3RhdGUtPnBfc291cmNldGV4dCwKLQkJCQkJCQkJCSBw dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJCXJlbHMgPSBPcGVuVGFibGVMaXN0KHJlbGF0 aW9ucyk7CisJCVRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhyZWxzLCBwc3RhdGUtPnBfc291cmNl dGV4dCwKKwkJCQkJCQkJCXB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKIAotCQkJQ2hlY2tQ dWJSZWxhdGlvbkNvbHVtbkxpc3Qoc3RtdC0+cHVibmFtZSwgcmVscywKLQkJCQkJCQkJCSAgIHNj aGVtYWlkbGlzdCAhPSBOSUwsCi0JCQkJCQkJCQkgICBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9v dCk7CisJCUNoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0KHN0bXQtPnB1Ym5hbWUsIHJlbHMsCisJ CQkJCQkJCQlzY2hlbWFpZGxpc3QgIT0gTklMLAorCQkJCQkJCQkJcHVibGlzaF92aWFfcGFydGl0 aW9uX3Jvb3QpOwogCi0JCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQsIHJlbHMsIHRydWUs IE5VTEwpOwotCQkJQ2xvc2VUYWJsZUxpc3QocmVscyk7Ci0JCX0KKwkJUHVibGljYXRpb25BZGRU YWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsKKwkJQ2xvc2VUYWJsZUxpc3QocmVscyk7 CisJfQogCi0JCWlmIChzY2hlbWFpZGxpc3QgIT0gTklMKQotCQl7Ci0JCQkvKgotCQkJICogU2No ZW1hIGxvY2sgaXMgaGVsZCB1bnRpbCB0aGUgcHVibGljYXRpb24gaXMgY3JlYXRlZCB0byBwcmV2 ZW50Ci0JCQkgKiBjb25jdXJyZW50IHNjaGVtYSBkZWxldGlvbi4KLQkJCSAqLwotCQkJTG9ja1Nj aGVtYUxpc3Qoc2NoZW1haWRsaXN0KTsKLQkJCVB1YmxpY2F0aW9uQWRkU2NoZW1hcyhwdWJvaWQs IHNjaGVtYWlkbGlzdCwgdHJ1ZSwgTlVMTCk7Ci0JCX0KKwlpZiAoc2NoZW1haWRsaXN0ICE9IE5J TCkKKwl7CisJCS8qCisJCSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQgdW50aWwgdGhlIHB1YmxpY2F0 aW9uIGlzIGNyZWF0ZWQgdG8gcHJldmVudAorCQkgKiBjb25jdXJyZW50IHNjaGVtYSBkZWxldGlv bi4KKwkJICovCisJCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkbGlzdCk7CisJCVB1YmxpY2F0aW9u QWRkU2NoZW1hcyhwdWJvaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwgTlVMTCk7CiAJfQogCiAJdGFi bGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAorCS8qIEFzc29jaWF0ZSBvYmplY3Rz IHdpdGggdGhlIHB1YmxpY2F0aW9uLiAqLworCWlmIChzdG10LT5mb3JfYWxsX3RhYmxlcykKKwl7 CisJCS8qIEludmFsaWRhdGUgcmVsY2FjaGUgc28gdGhhdCBwdWJsaWNhdGlvbiBpbmZvIGlzIHJl YnVpbHQuICovCisJCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CisJfQorCiAJSW52b2tl T2JqZWN0UG9zdENyZWF0ZUhvb2soUHVibGljYXRpb25SZWxhdGlvbklkLCBwdWJvaWQsIDApOwog CiAJaWYgKHdhbF9sZXZlbCAhPSBXQUxfTEVWRUxfTE9HSUNBTCkKQEAgLTExMzQsNiArMTEzOSwy NyBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1Ymxp Y2F0aW9uU3RtdCAqc3RtdCwKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2aWFyb290 IC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfVklBX1JPT1QpOwogCXJlcGxhY2VzW0Fu dW1fcGdfcHVibGljYXRpb25fcHVidmlhcm9vdCAtIDFdID0gdHJ1ZTsKIAorCS8qCisJICogTG9j ayB0aGUgcHVibGljYXRpb24gc28gbm9ib2R5IGVsc2UgY2FuIGRvIGFueXRoaW5nIHdpdGggaXQu IFRoaXMKKwkgKiBwcmV2ZW50cyBjb25jdXJyZW50IHB1YmxpY2F0aW9uIHBhcmFtZXRlciBjaGFu Z2VzLCBhZGQvZHJvcCB0YWJsZXMocykgdG8KKwkgKiB0aGUgcHVibGljYXRpb24gYW5kIGFkZC9k cm9wIHNjaGVtYShzKSB0byB0aGUgcHVibGljYXRpb24uCisJICovCisJTG9ja0RhdGFiYXNlT2Jq ZWN0KFB1YmxpY2F0aW9uUmVsYXRpb25JZCwgcHViaWQsIDAsCisJCQkJCQlBY2Nlc3NFeGNsdXNp dmVMb2NrKTsKKworCS8qCisJICogSXQgaXMgcG9zc2libGUgdGhhdCBieSB0aGUgdGltZSB3ZSBh Y3F1aXJlIHRoZSBsb2NrIG9uIHB1YmxpY2F0aW9uLAorCSAqIGNvbmN1cnJlbnQgRERMIGhhcyBy ZW1vdmVkIGl0LiBXZSBjYW4gdGVzdCB0aGlzIGJ5IGNoZWNraW5nIHRoZQorCSAqIGV4aXN0ZW5j ZSBvZiBwdWJsaWNhdGlvbi4gV2UgZ2V0IHRoZSB0dXBsZSBhZ2FpbiB0byBhdm9pZCB0aGUgcmlz aworCSAqIG9mIGFueSBwdWJsaWNhdGlvbiBvcHRpb24gZ2V0dGluZyBjaGFuZ2VkLgorCSAqLwor CXR1cCA9IFNlYXJjaFN5c0NhY2hlQ29weTEoUFVCTElDQVRJT05PSUQsIE9iamVjdElkR2V0RGF0 dW0ocHViaWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJZXJybXNnKCJw dWJsaWNhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJc3RtdC0+cHVibmFtZSkp OworCiAJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyB0byBmYWxzZSAqLwogCWlmIChwdWJmb3JtLT5w dWJhbGx0YWJsZXMpCiAJewpAQCAtMTE3Miw2ICsxMTk4LDc5IEBAIEFsdGVyUHVibGljYXRpb25S ZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCX0K IH0KIAorLyoKKyAqIENoZWNrIGlmIHRoZSBwdWJsaWNhdGlvbiBoYXMgZGVmYXVsdCB2YWx1ZXMu CisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBwdWJsaWNhdGlvbiBzYXRpc2ZpZXMgYWxsIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqIGEpIFB1YmxpY2F0aW9uIGlzIG5vdCBzZXQgd2l0 aCAiRk9SIEFMTCBUQUJMRVMiCisgKiBiKSBQdWJsaWNhdGlvbiBpcyBoYXZpbmcgZGVmYXVsdCBw dWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCisgKiBjKSBQdWJsaWNhdGlvbiBpcyBub3QgYXNz b2NpYXRlZCB3aXRoIHNjaGVtYXMKKyAqIGQpIFB1YmxpY2F0aW9uIGlzIG5vdCBhc3NvY2lhdGVk IHdpdGggcmVsYXRpb25zCisgKi8KK3N0YXRpYyBib29sCitDaGVja1B1YmxpY2F0aW9uRGVmVmFs dWVzKEhlYXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZv cm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJCXB1YmlkID0gcHViZm9y bS0+b2lkOworCUxpc3QJICAgKnB1Ym9ianMgPSBOSUw7CisKKwlpZiAocHViZm9ybS0+cHViYWxs dGFibGVzICE9IFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMpCisJCXJldHVybiBmYWxzZTsKKworCWlm IChwdWJmb3JtLT5wdWJpbnNlcnQgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX0lOU0VSVCB8fAorCQlw dWJmb3JtLT5wdWJ1cGRhdGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX1VQREFURSB8fAorCQlwdWJm b3JtLT5wdWJkZWxldGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURSB8fAorCQlwdWJmb3Jt LT5wdWJ0cnVuY2F0ZSAhPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNBVEUgfHwKKwkJcHViZm9y bS0+cHVidmlhcm9vdCAhPSBQVUJfREVGQVVMVF9WSUFfUk9PVCkKKwkJcmV0dXJuIGZhbHNlOwor CisJcHVib2JqcyA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7CisJaWYgKGxpc3RfbGVu Z3RoKHB1Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwdWJvYmpzID0gR2V0UHVibGljYXRp b25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisJaWYgKGxpc3RfbGVu Z3RoKHB1Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoK KyAqIFNldCBwdWJsaWNhdGlvbiB0byBwdWJsaXNoIGFsbCB0YWJsZXMuCisgKi8KK3N0YXRpYyB2 b2lkCitBbHRlclB1YmxpY2F0aW9uU2V0QWxsVGFibGVzKFJlbGF0aW9uIHJlbCwgSGVhcFR1cGxl IHR1cCkKK3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gUEdfVVNFRF9GT1JfQVNTRVJU U19PTkxZID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCWJvb2wJCW51 bGxzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKwlib29sCQlyZXBsYWNlc1tOYXR0c19wZ19wdWJs aWNhdGlvbl07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisKKyNpZmRl ZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisJQXNzZXJ0KCFwdWJmb3JtLT5wdWJhbGx0YWJsZXMpOwor I2VuZGlmCisKKwkvKiBBZGQgQUxMIFRBQkxFUyB0byB0aGUgcHVibGljYXRpb24gcmVxdWlyZXMg c3VwZXJ1c2VyICovCisJaWYgKCFzdXBlcnVzZXIoKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQll cnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJZXJybXNnKCJtdXN0 IGJlIHN1cGVydXNlciB0byBBREQgQUxMIFRBQkxFUyB0byB0aGUgcHVibGljYXRpb24iKSk7CisK KwltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVtc2V0KG51bGxzLCBmYWxz ZSwgc2l6ZW9mKG51bGxzKSk7CisJbWVtc2V0KHJlcGxhY2VzLCBmYWxzZSwgc2l6ZW9mKHJlcGxh Y2VzKSk7CisKKwkvKiBTZXQgQUxMIFRBQkxFUyBmbGFnICovCisJdmFsdWVzW0FudW1fcGdfcHVi bGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSBCb29sR2V0RGF0dW0odHJ1ZSk7CisJcmVwbGFj ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMgLSAxXSA9IHRydWU7CisKKwl0dXAg PSBoZWFwX21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBu dWxscywKKwkJCQkJCQlyZXBsYWNlcyk7CisKKwkvKiBVcGRhdGUgdGhlIGNhdGFsb2cuICovCisJ Q2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXApOworfQorCiAvKgogICog QWRkIG9yIHJlbW92ZSB0YWJsZSB0by9mcm9tIHB1YmxpY2F0aW9uLgogICovCkBAIC0xNDkyLDYg KzE1OTEsMjAgQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVi bGljYXRpb25TdG10ICpzdG10KQogCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIs IE9CSkVDVF9QVUJMSUNBVElPTiwKIAkJCQkJICAgc3RtdC0+cHVibmFtZSk7CiAKKwlpZiAoc3Rt dC0+Zm9yX2FsbF90YWJsZXMpCisJeworCQlib29sCQlpc2RlZmF1bHQgPSBDaGVja1B1YmxpY2F0 aW9uRGVmVmFsdWVzKHR1cCk7CisKKwkJaWYgKCFpc2RlZmF1bHQpCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJ CWVycm1zZygiYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhh dmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzIiksCisJCQkJCWVycmRldGFp bCgiQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFuZCBubyB0YWJsZXMvc2NoZW1h cyBzaG91bGQgYmUgYXNzb2NpYXRlZC4iKTsKKwkJCQkJZXJyaGludCgiVXNlIEFMVEVSIFBVQkxJ Q0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24iKSk7CisKKwkJQWx0ZXJQ dWJsaWNhdGlvblNldEFsbFRhYmxlcyhyZWwsIHR1cCk7CisJfQorCiAJaWYgKHN0bXQtPm9wdGlv bnMpCiAJCUFsdGVyUHVibGljYXRpb25PcHRpb25zKHBzdGF0ZSwgc3RtdCwgcmVsLCB0dXApOwog CWVsc2UgaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9SZXNldFB1YmxpY2F0aW9uKQpAQCAtMTcwNCw2 ICsxODE3LDcgQEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAJCXB1Yl9yZWwtPnJlbGF0 aW9uID0gcmVsOwogCQlwdWJfcmVsLT53aGVyZUNsYXVzZSA9IHQtPndoZXJlQ2xhdXNlOwogCQlw dWJfcmVsLT5jb2x1bW5zID0gdC0+Y29sdW1uczsKKwkJcHViX3JlbC0+ZXhjZXB0ID0gdC0+ZXhj ZXB0OwogCQlyZWxzID0gbGFwcGVuZChyZWxzLCBwdWJfcmVsKTsKIAkJcmVsaWRzID0gbGFwcGVu ZF9vaWQocmVsaWRzLCBteXJlbGlkKTsKIApAQCAtMTc3Niw2ICsxODkwLDcgQEAgT3BlblRhYmxl TGlzdChMaXN0ICp0YWJsZXMpCiAKIAkJCQkvKiBjaGlsZCBpbmhlcml0cyBjb2x1bW4gbGlzdCBm cm9tIHBhcmVudCAqLwogCQkJCXB1Yl9yZWwtPmNvbHVtbnMgPSB0LT5jb2x1bW5zOworCQkJCXB1 Yl9yZWwtPmV4Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJCQlyZWxzID0gbGFwcGVuZChyZWxzLCBwdWJf cmVsKTsKIAkJCQlyZWxpZHMgPSBsYXBwZW5kX29pZChyZWxpZHMsIGNoaWxkcmVsaWQpOwogCkBA IC0xODUxLDggKzE5NjYsNiBAQCBQdWJsaWNhdGlvbkFkZFRhYmxlcyhPaWQgcHViaWQsIExpc3Qg KnJlbHMsIGJvb2wgaWZfbm90X2V4aXN0cywKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAotCUFzc2Vy dCghc3RtdCB8fCAhc3RtdC0+Zm9yX2FsbF90YWJsZXMpOwotCiAJZm9yZWFjaChsYywgcmVscykK IAl7CiAJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHViX3JlbCA9IChQdWJsaWNhdGlvblJlbEluZm8g KikgbGZpcnN0KGxjKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggN2M2OTdhMjg1Yi4u N2VlNTM2NDVjZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTE2MjQ2LDcgKzE2MjQ2 LDcgQEAgQVRQcmVwQ2hhbmdlUGVyc2lzdGVuY2UoUmVsYXRpb24gcmVsLCBib29sIHRvTG9nZ2Vk KQogCSAqIFVOTE9HR0VELCBhcyBVTkxPR0dFRCB0YWJsZXMgY2FuJ3QgYmUgcHVibGlzaGVkLgog CSAqLwogCWlmICghdG9Mb2dnZWQgJiYKLQkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRp b25HZXRSZWxpZChyZWwpKSAhPSBOSUwpCisJCWxpc3RfbGVuZ3RoKEdldFJlbGF0aW9uUHVibGlj YXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgZmFsc2UpKSA+IDApCiAJCWVyZXBvcnQoRVJS T1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFU RSksCiAJCQkJIGVycm1zZygiY2Fubm90IGNoYW5nZSB0YWJsZSBcIiVzXCIgdG8gdW5sb2dnZWQg YmVjYXVzZSBpdCBpcyBwYXJ0IG9mIGEgcHVibGljYXRpb24iLApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYWZi ZTQwOGZlMS4uM2IwYjUzZGY3YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC00NTAsNyArNDUwLDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQl0cmFuc2Zvcm1fZWxlbWVudF9saXN0IHRyYW5zZm9y bV90eXBlX2xpc3QKIAkJCQlUcmlnZ2VyVHJhbnNpdGlvbnMgVHJpZ2dlclJlZmVyZW5jaW5nCiAJ CQkJdmFjdXVtX3JlbGF0aW9uX2xpc3Qgb3B0X3ZhY3V1bV9yZWxhdGlvbl9saXN0Ci0JCQkJZHJv cF9vcHRpb25fbGlzdCBwdWJfb2JqX2xpc3QKKwkJCQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpf bGlzdCBleGNlcHRfcHViX29ial9saXN0CiAKICV0eXBlIDxub2RlPglvcHRfcm91dGluZV9ib2R5 CiAldHlwZSA8Z3JvdXBjbGF1c2U+IGdyb3VwX2NsYXVzZQpAQCAtNTg0LDYgKzU4NCw3IEBAIHN0 YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICph bGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bm9kZT4JdmFyX3ZhbHVlIHpvbmVfdmFsdWUK ICV0eXBlIDxyb2xlc3BlYz4gYXV0aF9pZGVudCBSb2xlU3BlYyBvcHRfZ3JhbnRlZF9ieQogJXR5 cGUgPHB1YmxpY2F0aW9ub2JqZWN0c3BlYz4gUHVibGljYXRpb25PYmpTcGVjCisldHlwZSA8cHVi bGljYXRpb25vYmplY3RzcGVjPiBFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWMKIAogJXR5cGUgPGtl eXdvcmQ+IHVucmVzZXJ2ZWRfa2V5d29yZCB0eXBlX2Z1bmNfbmFtZV9rZXl3b3JkCiAldHlwZSA8 a2V5d29yZD4gY29sX25hbWVfa2V5d29yZCByZXNlcnZlZF9rZXl3b3JkCkBAIC0xMDM1Myw3ICsx MDM1NCw3IEBAIEFsdGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhf YXJndHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKICAqCiAgKiBDUkVBVEUgUFVCTElDQVRJT04gbmFt ZSBbV0lUSCBvcHRpb25zXQogICoKLSAqIENSRUFURSBQVUJMSUNBVElPTiBGT1IgQUxMIFRBQkxF UyBbV0lUSCBvcHRpb25zXQorICogQ1JFQVRFIFBVQkxJQ0FUSU9OIEZPUiBBTEwgVEFCTEVTIFtF WENFUFQgW1RBQkxFXSB0YWJsZSBbLCAuLi5dXSBbV0lUSCBvcHRpb25zXQogICoKICAqIENSRUFU RSBQVUJMSUNBVElPTiBGT1IgcHViX29iaiBbLCAuLi5dIFtXSVRIIG9wdGlvbnNdCiAgKgpAQCAt MTAzNzMsMTIgKzEwMzc0LDEzIEBAIENyZWF0ZVB1YmxpY2F0aW9uU3RtdDoKIAkJCQkJbi0+b3B0 aW9ucyA9ICQ0OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgUFVC TElDQVRJT04gbmFtZSBGT1IgQUxMIFRBQkxFUyBvcHRfZGVmaW5pdGlvbgorCQkJfCBDUkVBVEUg UFVCTElDQVRJT04gbmFtZSBGT1IgQUxMIFRBQkxFUyBleGNlcHRfcHViX29ial9saXN0IG9wdF9k ZWZpbml0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9k ZShDcmVhdGVQdWJsaWNhdGlvblN0bXQpOwogCiAJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKLQkJCQkJ bi0+b3B0aW9ucyA9ICQ3OworCQkJCQluLT5vcHRpb25zID0gJDg7CisJCQkJCW4tPnB1Ym9iamVj dHMgPSAoTGlzdCAqKSQ3OwogCQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9IHRydWU7CiAJCQkJCSQk ID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC0xMDQxNiw2ICsxMDQxOCw3IEBAIFB1YmxpY2F0aW9u T2JqU3BlYzoKIAkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQyOwogCQkJCQkkJC0+cHVi dGFibGUtPmNvbHVtbnMgPSAkMzsKIAkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0 OworCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9CiAJCQl8IFRBQkxFUyBJTl9QIFNDSEVN QSBDb2xJZAogCQkJCXsKQEAgLTEwNDkxLDYgKzEwNDk0LDI1IEBAIHB1Yl9vYmpfbGlzdDoJUHVi bGljYXRpb25PYmpTcGVjCiAJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KIAk7CiAKK0V4 Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYzoKKwkJCSByZWxhdGlvbl9leHByCisJCQkJeworCQkJCQkk JCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJCSQkLT5wdWJvYmp0eXBlID0g UFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOworCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9k ZShQdWJsaWNhdGlvblRhYmxlKTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5leGNlcHQgPSB0cnVlOwor CQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDE7CisJCQkJCSQkLT5sb2NhdGlvbiA9IEAx OworCQkJCX0KKwk7CisKK2V4Y2VwdF9wdWJfb2JqX2xpc3Q6CUVYQ0VQVCBvcHRfdGFibGUgRXhj ZXB0UHVibGljYXRpb25PYmpTcGVjCisJCQkJCXsgJCQgPSBsaXN0X21ha2UxKCQzKTsgfQorCQkJ fCBleGNlcHRfcHViX29ial9saXN0ICcsJyBFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWMKKwkJCQkJ eyAkJCA9IGxhcHBlbmQoJDEsICQzKTsgfQorCQkJfCAgLypFTVBUWSovCQkJCQkJCQl7ICQkID0g TlVMTDsgfQorCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgUFVCTElD QVRJT04gbmFtZSBTRVQgKCBvcHRpb25zICkKQEAgLTEwNTAzLDYgKzEwNTI1LDggQEAgcHViX29i al9saXN0OglQdWJsaWNhdGlvbk9ialNwZWMKICAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1l IFJFU0VUCiAgKgorICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBBREQgQUxMIFRBQkxFUyBFWENF UFQgW1RBQkxFXSB0YWJsZV9uYW1lIFssIC4uLl0KKyAqCiAgKiBwdWJfb2JqIGlzIG9uZSBvZjoK ICAqCiAgKgkJVEFCTEUgdGFibGVfbmFtZSBbLCAuLi5dCkBAIC0xMDUyOSw2ICsxMDU1MywxNSBA QCBBbHRlclB1YmxpY2F0aW9uU3RtdDoKIAkJCQkJbi0+YWN0aW9uID0gQVBfQWRkT2JqZWN0czsK IAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgUFVCTElDQVRJT04gbmFt ZSBBRERfUCBBTEwgVEFCTEVTIGV4Y2VwdF9wdWJfb2JqX2xpc3QKKwkJCQl7CisJCQkJCUFsdGVy UHVibGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQdWJsaWNhdGlvblN0bXQpOworCQkJ CQluLT5wdWJuYW1lID0gJDM7CisJCQkJCW4tPnB1Ym9iamVjdHMgPSAkNzsKKwkJCQkJbi0+Zm9y X2FsbF90YWJsZXMgPSB0cnVlOworCQkJCQluLT5hY3Rpb24gPSBBUF9BZGRPYmplY3RzOworCQkJ CQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCQl8IEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgU0VU IHB1Yl9vYmpfbGlzdAogCQkJCXsKIAkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtl Tm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdv dXRwdXQvcGdvdXRwdXQuYwppbmRleCAxYTgwZDY3YmI5Li5mNDhiNjRiNTJlIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTIwNTEsNyArMjA1MSw4 IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0 aW9uKQogCWlmICghZW50cnktPnJlcGxpY2F0ZV92YWxpZCkKIAl7CiAJCU9pZAkJCXNjaGVtYUlk ID0gZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpOwotCQlMaXN0CSAgICpwdWJpZHMgPSBHZXRSZWxh dGlvblB1YmxpY2F0aW9ucyhyZWxpZCk7CisJCUxpc3QJICAgKnB1YmlkcyA9IEdldFJlbGF0aW9u UHVibGljYXRpb25zKHJlbGlkLCBmYWxzZSk7CisJCUxpc3QJICAgKmV4Y2VwdFRhYmxlUHViaWRz ID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQsIHRydWUpOwogCiAJCS8qCiAJCSAqIFdl IGRvbid0IGFjcXVpcmUgYSBsb2NrIG9uIHRoZSBuYW1lc3BhY2Ugc3lzdGVtIHRhYmxlIGFzIHdl IGJ1aWxkCkBAIC0yMTQwLDIyICsyMTQxLDYgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0 RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCQlPaWQJCQlwdWJfcmVsaWQgPSByZWxp ZDsKIAkJCWludAkJCWFuY2VzdG9yX2xldmVsID0gMDsKIAotCQkJLyoKLQkJCSAqIElmIHRoaXMg aXMgYSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiwgcGljayB0aGUgcGFydGl0aW9uCi0JCQkg KiByb290IGFuZCBzZXQgdGhlIGFuY2VzdG9yIGxldmVsIGFjY29yZGluZ2x5LgotCQkJICovCi0J CQlpZiAocHViLT5hbGx0YWJsZXMpCi0JCQl7Ci0JCQkJcHVibGlzaCA9IHRydWU7Ci0JCQkJaWYg KHB1Yi0+cHVidmlhcm9vdCAmJiBhbV9wYXJ0aXRpb24pCi0JCQkJewotCQkJCQlMaXN0CSAgICph bmNlc3RvcnMgPSBnZXRfcGFydGl0aW9uX2FuY2VzdG9ycyhyZWxpZCk7Ci0KLQkJCQkJcHViX3Jl bGlkID0gbGxhc3Rfb2lkKGFuY2VzdG9ycyk7Ci0JCQkJCWFuY2VzdG9yX2xldmVsID0gbGlzdF9s ZW5ndGgoYW5jZXN0b3JzKTsKLQkJCQl9Ci0JCQl9Ci0KIAkJCWlmICghcHVibGlzaCkKIAkJCXsK IAkJCQlib29sCQlhbmNlc3Rvcl9wdWJsaXNoZWQgPSBmYWxzZTsKQEAgLTIxNzQsNyArMjE1OSw4 IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0 aW9uKQogCiAJCQkJCWFuY2VzdG9yID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihw dWItPm9pZCwKIAkJCQkJCQkJCQkJCQkJCSAgIGFuY2VzdG9ycywKLQkJCQkJCQkJCQkJCQkJCSAg ICZsZXZlbCk7CisJCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwsCisJCQkJCQkJCQkJCQkJCQkgICBw dWItPmFsbHRhYmxlcyk7CiAKIAkJCQkJaWYgKGFuY2VzdG9yICE9IEludmFsaWRPaWQpCiAJCQkJ CXsKQEAgLTIxODksNiArMjE3NSw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEg KmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCQkJaWYgKGxpc3RfbWVtYmVyX29pZChwdWJp ZHMsIHB1Yi0+b2lkKSB8fAogCQkJCQlsaXN0X21lbWJlcl9vaWQoc2NoZW1hUHViaWRzLCBwdWIt Pm9pZCkgfHwKKwkJCQkJKHB1Yi0+YWxsdGFibGVzICYmCisJCQkJCSAhbGlzdF9tZW1iZXJfb2lk KGV4Y2VwdFRhYmxlUHViaWRzLCBwdWItPm9pZCkpIHx8CiAJCQkJCWFuY2VzdG9yX3B1Ymxpc2hl ZCkKIAkJCQkJcHVibGlzaCA9IHRydWU7CiAJCQl9CkBAIC0yMjY0LDYgKzIyNTIsNyBAQCBnZXRf cmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAog CQlsaXN0X2ZyZWUocHViaWRzKTsKIAkJbGlzdF9mcmVlKHNjaGVtYVB1Ymlkcyk7CisJCWxpc3Rf ZnJlZShleGNlcHRUYWJsZVB1Ymlkcyk7CiAJCWxpc3RfZnJlZShyZWxfcHVibGljYXRpb25zKTsK IAogCQllbnRyeS0+cmVwbGljYXRlX3ZhbGlkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxj YWNoZS5jCmluZGV4IGQxNzFjZmNmMmYuLjgxZTdlZjlhN2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv cmVsY2FjaGUuYwpAQCAtNTYxOCw2ICs1NjE4LDggQEAgdm9pZAogUmVsYXRpb25CdWlsZFB1Ymxp Y2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQog ewogCUxpc3QJICAgKnB1Ym9pZHM7CisJTGlzdAkgICAqYWxsdGFibGVzcHVib2lkczsKKwlMaXN0 CSAgICpleGNlcHRwdWJvaWRzID0gTklMOwogCUxpc3RDZWxsICAgKmxjOwogCU1lbW9yeUNvbnRl eHQgb2xkY3h0OwogCU9pZAkJCXNjaGVtYWlkOwpAQCAtNTY1MSw3ICs1NjUzLDcgQEAgUmVsYXRp b25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNj ICpwdWJkZXNjKQogCXB1YmRlc2MtPmNvbHNfdmFsaWRfZm9yX2RlbGV0ZSA9IHRydWU7CiAKIAkv KiBGZXRjaCB0aGUgcHVibGljYXRpb24gbWVtYmVyc2hpcCBpbmZvLiAqLwotCXB1Ym9pZHMgPSBH ZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCk7CisJcHVib2lkcyA9IEdldFJlbGF0aW9uUHVi bGljYXRpb25zKHJlbGlkLCBmYWxzZSk7CiAJc2NoZW1haWQgPSBSZWxhdGlvbkdldE5hbWVzcGFj ZShyZWxhdGlvbik7CiAJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywg R2V0U2NoZW1hUHVibGljYXRpb25zKHNjaGVtYWlkKSk7CiAKQEAgLTU2NjUsMTQgKzU2NjcsMTkg QEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGlj YXRpb25EZXNjICpwdWJkZXNjKQogCQkJT2lkCQkJYW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsK IAogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKLQkJCQkJCQkJ CQkJIEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yKSk7CisJCQkJCQkJCQkJCSBHZXRS ZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvciwgZmFsc2UpKTsKIAkJCXNjaGVtYWlkID0gZ2V0 X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpOwogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1 ZV9vaWQocHVib2lkcywKIAkJCQkJCQkJCQkJIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFp ZCkpOworCQkJZXhjZXB0cHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQoZXhjZXB0cHVi b2lkcywKKwkJCQkJCQkJCQkJCSAgIEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0 cnVlKSk7CiAJCX0KIAl9Ci0JcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lk cywgR2V0QWxsVGFibGVzUHVibGljYXRpb25zKCkpOwogCisJYWxsdGFibGVzcHVib2lkcyA9IEdl dEFsbFRhYmxlc1B1YmxpY2F0aW9ucygpOworCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVf b2lkKHB1Ym9pZHMsCisJCQkJCQkJCQkgbGlzdF9kaWZmZXJlbmNlX29pZChhbGx0YWJsZXNwdWJv aWRzLAorCQkJCQkJCQkJCQkJCQkgZXhjZXB0cHVib2lkcykpOwogCWZvcmVhY2gobGMsIHB1Ym9p ZHMpCiAJewogCQlPaWQJCQlwdWJpZCA9IGxmaXJzdF9vaWQobGMpOwpAQCAtNTcwMSw3ICs1NzA4 LDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVi bGljYXRpb25EZXNjICpwdWJkZXNjKQogCQlpZiAoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyAmJgog CQkJKHB1YmZvcm0tPnB1YnVwZGF0ZSB8fCBwdWJmb3JtLT5wdWJkZWxldGUpICYmCiAJCQlwdWJf cmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4ocHViaWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCi0J CQkJCQkJCQkJICAgcHViZm9ybS0+cHVidmlhcm9vdCkpCisJCQkJCQkJCQkJICAgcHViZm9ybS0+ cHVidmlhcm9vdCwgcHViZm9ybS0+cHViYWxsdGFibGVzKSkKIAkJewogCQkJaWYgKHB1YmZvcm0t PnB1YnVwZGF0ZSkKIAkJCQlwdWJkZXNjLT5yZl92YWxpZF9mb3JfdXBkYXRlID0gZmFsc2U7CkBA IC01NzE4LDcgKzU3MjUsNyBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9u IHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJCWlmICghcHViZm9ybS0+cHVi YWxsdGFibGVzICYmCiAJCQkocHViZm9ybS0+cHVidXBkYXRlIHx8IHB1YmZvcm0tPnB1YmRlbGV0 ZSkgJiYKIAkJCXB1Yl9jb2xsaXN0X2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKHB1YmlkLCByZWxh dGlvbiwgYW5jZXN0b3JzLAotCQkJCQkJCQkJCQkJcHViZm9ybS0+cHVidmlhcm9vdCkpCisJCQkJ CQkJCQkJCQlwdWJmb3JtLT5wdWJ2aWFyb290LCBwdWJmb3JtLT5wdWJhbGx0YWJsZXMpKQogCQl7 CiAJCQlpZiAocHViZm9ybS0+cHVidXBkYXRlKQogCQkJCXB1YmRlc2MtPmNvbHNfdmFsaWRfZm9y X3VwZGF0ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggNTI3Yzc2NTFhYi4uMjlkZDA0MTdhOCAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCkBAIC0xMzAsNiArMTMwLDggQEAgc3RhdGljIFNpbXBsZU9pZExpc3QgZm9y ZWlnbl9zZXJ2ZXJzX2luY2x1ZGVfb2lkcyA9IHtOVUxMLCBOVUxMfTsKIHN0YXRpYyBTaW1wbGVT dHJpbmdMaXN0IGV4dGVuc2lvbl9pbmNsdWRlX3BhdHRlcm5zID0ge05VTEwsIE5VTEx9Owogc3Rh dGljIFNpbXBsZU9pZExpc3QgZXh0ZW5zaW9uX2luY2x1ZGVfb2lkcyA9IHtOVUxMLCBOVUxMfTsK IAorc3RhdGljIFNpbXBsZVB0ckxpc3QgZXhjZXB0aW5mbyA9IHtOVUxMLCBOVUxMfTsKKwogc3Rh dGljIGNvbnN0IENhdGFsb2dJZCBuaWxDYXRhbG9nSWQgPSB7MCwgMH07CiAKIC8qIG92ZXJyaWRl IGZvciBzdGFuZGFyZCBleHRyYV9mbG9hdF9kaWdpdHMgc2V0dGluZyAqLwpAQCAtNDA2Miw4ICs0 MDY0LDM0IEBAIGR1bXBQdWJsaWNhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlv bkluZm8gKnB1YmluZm8pCiAJCQkJCSAgcXB1Ym5hbWUpOwogCiAJaWYgKHB1YmluZm8tPnB1YmFs bHRhYmxlcykKKwl7CisJCVNpbXBsZVB0ckxpc3RDZWxsICpjZWxsOworCiAJCWFwcGVuZFBRRXhw QnVmZmVyU3RyKHF1ZXJ5LCAiIEZPUiBBTEwgVEFCTEVTIik7CiAKKwkJLyogSW5jbHVkZSBleGNl cHRpb24gdGFibGVzIGlmIHRoZSBwdWJsaWNhdGlvbiBoYXMgZXhjZXB0IHRhYmxlcyAqLworCQlm b3IgKGNlbGwgPSBleGNlcHRpbmZvLmhlYWQ7IGNlbGw7IGNlbGwgPSBjZWxsLT5uZXh0KQorCQl7 CisJCQlQdWJsaWNhdGlvblJlbEluZm8gKnB1YnJpbmZvID0gKFB1YmxpY2F0aW9uUmVsSW5mbyAq KSBjZWxsLT5wdHI7CisJCQlUYWJsZUluZm8gICp0YmluZm87CisKKwkJCWlmIChwdWJpbmZvID09 IHB1YnJpbmZvLT5wdWJsaWNhdGlvbikKKwkJCXsKKwkJCQl0YmluZm8gPSBwdWJyaW5mby0+cHVi dGFibGU7CisKKwkJCQlpZiAoZmlyc3QpCisJCQkJeworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cihxdWVyeSwgIiBFWENFUFQgVEFCTEUiKTsKKwkJCQkJZmlyc3QgPSBmYWxzZTsKKwkJCQl9CisJ CQkJZWxzZQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiwiKTsKKwkJCQlhcHBl bmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBPTkxZICVzIiwgZm10UXVhbGlmaWVkRHVtcGFibGUodGJp bmZvKSk7CisJCQl9CisJCX0KKwl9CisKKwlmaXJzdCA9IHRydWU7CiAJYXBwZW5kUFFFeHBCdWZm ZXJTdHIocXVlcnksICIgV0lUSCAocHVibGlzaCA9ICciKTsKIAlpZiAocHViaW5mby0+cHViaW5z ZXJ0KQogCXsKQEAgLTQyMzMsNiArNDI2MSw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hp dmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJaW50CQkJaV9w cnJlbGlkOwogCWludAkJCWlfcHJyZWxxdWFsOwogCWludAkJCWlfcHJhdHRyczsKKwlpbnQJCQlp X3ByZXhjZXB0OwogCWludAkJCWksCiAJCQkJaiwKIAkJCQludHVwczsKQEAgLTQyNDQsOCArNDI3 MywxNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJs aW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCiAJLyogQ29sbGVjdCBhbGwgcHVibGljYXRpb24gbWVt YmVyc2hpcCBpbmZvLiAqLwogCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE1MDAwMCkKKwl7 CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lk LCBvaWQsIHBycHViaWQsIHBycmVsaWQsXG4iKTsKKworCQkvKiBGSVhNRTogMTUwMDAwIHNob3Vs ZCBiZSBjaGFuZ2VkIHRvIDE2MDAwMCBsYXRlciBmb3IgUEcxNi4gKi8KKwkJaWYgKGZvdXQtPnJl bW90ZVZlcnNpb24gPj0gMTUwMDAwKQorCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIg cHJleGNlcHQsXG4iKTsKKwkJZWxzZQorCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIg ZmFsc2UgQVMgcHJleGNlcHQsXG4iKTsKKwogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwK LQkJCQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJlbGlkLCAiCiAJCQkJ CQkJICJwZ19jYXRhbG9nLnBnX2dldF9leHByKHBycXVhbCwgcHJyZWxpZCkgQVMgcHJyZWxxdWFs LCAiCiAJCQkJCQkJICIoQ0FTRVxuIgogCQkJCQkJCSAiICBXSEVOIHByLnByYXR0cnMgSVMgTk9U IE5VTEwgVEhFTlxuIgpAQCAtNDI1Niw2ICs0Mjk0LDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMo QXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJCQkJ CQkgIiAgICAgIFdIRVJFIGF0dHJlbGlkID0gcHIucHJyZWxpZCBBTkQgYXR0bnVtID0gcHJhdHRy c1tzXSlcbiIKIAkJCQkJCQkgIiAgRUxTRSBOVUxMIEVORCkgcHJhdHRycyAiCiAJCQkJCQkJICJG Uk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIik7CisJfQogCWVsc2UKIAkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCiAJCQkJCQkJICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwg cHJwdWJpZCwgcHJyZWxpZCwgIgpAQCAtNDI3MSw2ICs0MzEwLDcgQEAgZ2V0UHVibGljYXRpb25U YWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykK IAlpX3BycmVsaWQgPSBQUWZudW1iZXIocmVzLCAicHJyZWxpZCIpOwogCWlfcHJyZWxxdWFsID0g UFFmbnVtYmVyKHJlcywgInBycmVscXVhbCIpOwogCWlfcHJhdHRycyA9IFBRZm51bWJlcihyZXMs ICJwcmF0dHJzIik7CisJaV9wcmV4Y2VwdCA9IFBRZm51bWJlcihyZXMsICJwcmV4Y2VwdCIpOwog CiAJLyogdGhpcyBhbGxvY2F0aW9uIG1heSBiZSBtb3JlIHRoYW4gd2UgbmVlZCAqLwogCXB1YnJp bmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKFB1YmxpY2F0aW9uUmVsSW5mbykpOwpAQCAt NDI4Miw2ICs0MzIyLDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFi bGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJT2lkCQkJcHJyZWxpZCA9IGF0b29p ZChQUWdldHZhbHVlKHJlcywgaSwgaV9wcnJlbGlkKSk7CiAJCVB1YmxpY2F0aW9uSW5mbyAqcHVi aW5mbzsKIAkJVGFibGVJbmZvICAqdGJpbmZvOworCQljaGFyCSAgICpwcmV4Y2VwdCA9IHBnX3N0 cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9wcmV4Y2VwdCkpOwogCiAJCS8qCiAJCSAqIElnbm9y ZSBhbnkgZW50cmllcyBmb3Igd2hpY2ggd2UgYXJlbid0IGludGVyZXN0ZWQgaW4gZWl0aGVyIHRo ZQpAQCAtNDMwMiw3ICs0MzQzLDExIEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZv dXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCQljb250aW51ZTsKIAog CQkvKiBPSywgbWFrZSBhIER1bXBhYmxlT2JqZWN0IGZvciB0aGlzIHJlbGF0aW9uc2hpcCAqLwot CQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9SRUw7CisJCWlmIChz dHJjbXAocHJleGNlcHQsICJmIikgPT0gMCkKKwkJCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9 IERPX1BVQkxJQ0FUSU9OX1JFTDsKKwkJZWxzZQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBl ID0gRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDsKKwogCQlwdWJyaW5mb1tqXS5kb2JqLmNhdElk LnRhYmxlb2lkID0KIAkJCWF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOwog CQlwdWJyaW5mb1tqXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwg aV9vaWQpKTsKQEAgLTQzNDEsNiArNDM4Niw5IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hp dmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCS8qIERlY2lk ZSB3aGV0aGVyIHdlIHdhbnQgdG8gZHVtcCBpdCAqLwogCQlzZWxlY3REdW1wYWJsZVB1YmxpY2F0 aW9uT2JqZWN0KCYocHVicmluZm9bal0uZG9iaiksIGZvdXQpOwogCisJCWlmIChzdHJjbXAocHJl eGNlcHQsICJ0IikgPT0gMCkKKwkJCXNpbXBsZV9wdHJfbGlzdF9hcHBlbmQoJmV4Y2VwdGluZm8s ICZwdWJyaW5mb1tqXSk7CisKIAkJaisrOwogCX0KIApAQCAtMTAwNTAsNiArMTAwOTgsOSBAQCBk dW1wRHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJ CWNhc2UgRE9fUFVCTElDQVRJT046CiAJCQlkdW1wUHVibGljYXRpb24oZm91dCwgKGNvbnN0IFB1 YmxpY2F0aW9uSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQljYXNlIERPX1BVQkxJQ0FUSU9O X0VYQ0VQVF9SRUw6CisJCQkvKiB3aWxsIGJlIGR1bXBlZCBpbiBkdW1wUHVibGljYXRpb24gKi8K KwkJCWJyZWFrOwogCQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCWR1bXBQdWJsaWNhdGlv blRhYmxlKGZvdXQsIChjb25zdCBQdWJsaWNhdGlvblJlbEluZm8gKikgZG9iaik7CiAJCQlicmVh azsKQEAgLTE4MDA3LDYgKzE4MDU4LDcgQEAgYWRkQm91bmRhcnlEZXBlbmRlbmNpZXMoRHVtcGFi bGVPYmplY3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJCQljYXNlIERPX0RFRkFVTFRfQUNMOgog CQkJY2FzZSBET19QT0xJQ1k6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OOgorCQkJY2FzZSBET19Q VUJMSUNBVElPTl9FWENFUFRfUkVMOgogCQkJY2FzZSBET19QVUJMSUNBVElPTl9SRUw6CiAJCQlj YXNlIERPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQToKIAkJCWNhc2UgRE9fU1VCU0NSSVBU SU9OOgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmgKaW5kZXggZTdjYmQ4ZDdlZC4uZWY3OGQzM2U3YyAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5o CkBAIC04MCw2ICs4MCw3IEBAIHR5cGVkZWYgZW51bQogCURPX1JFRlJFU0hfTUFUVklFVywKIAlE T19QT0xJQ1ksCiAJRE9fUFVCTElDQVRJT04sCisJRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwK IAlET19QVUJMSUNBVElPTl9SRUwsCiAJRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAog CURPX1NVQlNDUklQVElPTgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29y dC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IGY5NjNiOWE0NDkuLmIx MDViNjdlNTcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYworKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTkwLDYgKzkwLDcgQEAgZW51bSBk Yk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19GS19DT05TVFJBSU5ULAogCVBSSU9fUE9MSUNZ LAogCVBSSU9fUFVCTElDQVRJT04sCisJUFJJT19QVUJMSUNBVElPTl9FWENFUFRfUkVMLAogCVBS SU9fUFVCTElDQVRJT05fUkVMLAogCVBSSU9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAog CVBSSU9fU1VCU0NSSVBUSU9OLApAQCAtMTQ0LDYgKzE0NSw3IEBAIHN0YXRpYyBjb25zdCBpbnQg ZGJPYmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJUFJJT19SRUZSRVNIX01BVFZJRVcsCQkvKiBET19S RUZSRVNIX01BVFZJRVcgKi8KIAlQUklPX1BPTElDWSwJCQkJLyogRE9fUE9MSUNZICovCiAJUFJJ T19QVUJMSUNBVElPTiwJCQkvKiBET19QVUJMSUNBVElPTiAqLworCVBSSU9fUFVCTElDQVRJT05f RVhDRVBUX1JFTCwJLyogRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCAqLwogCVBSSU9fUFVCTElD QVRJT05fUkVMLAkJLyogRE9fUFVCTElDQVRJT05fUkVMICovCiAJUFJJT19QVUJMSUNBVElPTl9U QUJMRV9JTl9TQ0hFTUEsCS8qIERPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSAqLwogCVBS SU9fU1VCU0NSSVBUSU9OCQkJLyogRE9fU1VCU0NSSVBUSU9OICovCkBAIC0xNDgzLDYgKzE0ODUs MTEgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJsZU9iamVjdCAqb2JqLCBjaGFyICpi dWYsIGludCBidWZzaXplKQogCQkJCQkgIlBVQkxJQ0FUSU9OIChJRCAlZCBPSUQgJXUpIiwKIAkJ CQkJIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJCQlyZXR1cm47CisJCWNhc2UgRE9f UFVCTElDQVRJT05fRVhDRVBUX1JFTDoKKwkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJ ICJQVUJMSUNBVElPTiBFWENFUFQgVEFCTEUgKElEICVkIE9JRCAldSkiLAorCQkJCQkgb2JqLT5k dW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKIAkJY2FzZSBET19QVUJMSUNBVElP Tl9SRUw6CiAJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCiAJCQkJCSAiUFVCTElDQVRJT04gVEFC TEUgKElEICVkIE9JRCAldSkiLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3Bn X2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBkOTIyNDdj OTE1Li5jZDU3YTNhOGE2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVt cC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtMjUxOCw2ICsy NTE4LDMyIEBAIG15ICV0ZXN0cyA9ICgKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25f cG9zdF9kYXRhID0+IDEsIH0sCiAJfSwKIAorCSdDUkVBVEUgUFVCTElDQVRJT04gcHViNScgPT4g eworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFBVQkxJ Q0FUSU9OIHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIGR1bXBfdGVzdC50ZXN0X3RhYmxlOycs CisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBwdWI1IEZPUiBBTEwg VEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIGR1bXBfdGVzdC50ZXN0X3RhYmxlIFdJVEggKHB1Ymxp c2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnKTtcRQorCQkJL3htLAorCQls aWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwkJdW5saWtl ID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJZXhjbHVkZV90ZXN0 X3RhYmxlICAgICAgID0+IDEsCisJCX0sCisJfSwKKworCSdDUkVBVEUgUFVCTElDQVRJT04gcHVi NicgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRF IFBVQkxJQ0FUSU9OIHB1YjYgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIGR1bXBfdGVzdC50 ZXN0X3RhYmxlLCBkdW1wX3Rlc3QudGVzdF9zZWNvbmRfdGFibGU7JywKKwkJcmVnZXhwID0+IHFy L14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjYgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRB QkxFIE9OTFkgZHVtcF90ZXN0LnRlc3RfdGFibGUsIE9OTFkgZHVtcF90ZXN0LnRlc3Rfc2Vjb25k X3RhYmxlIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUn KTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEg PT4gMSwgfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAx LAorCQkJZXhjbHVkZV90ZXN0X3RhYmxlICAgICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVB VEUgU1VCU0NSSVBUSU9OIHN1YjEnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDUwLAogCQljcmVh dGVfc3FsICAgPT4gJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3ViMQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBjOGEwYmI3 YjNhLi5hZjc1OTBlZTJhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysg Yi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMjk4MSwxNyArMjk4MSwzNiBAQCBkZXNjcmli ZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCQkJCQkgICIgICAg ICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3Nd KVxuIgogCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIKIAkJCQkJCQkJICAiRlJP TSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiICAgICBKT0lOIHBn X2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0gcHIucHJwdWJpZFxuIgot CQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lkID0gcHIu cHJyZWxpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIgorCQkJCQkJ CQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gcC5vaWQgPSBw ci5wcnB1YmlkXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgT04g Yy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQgPSAnJXMn XG4iLAorCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQpOworCisJCQkJLyogRklYTUU6IDE1MDAwMCBz aG91bGQgYmUgY2hhbmdlZCB0byAxNjAwMDAgbGF0ZXIgZm9yIFBHMTYuICovCisJCQkJaWYgKHBz ZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAi IEFORCBOT1QgcHIucHJleGNlcHRcbiIpOworCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwK IAkJCQkJCQkJICAiVU5JT05cbiIKIAkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKLQkJCQkJ CQkJICAiICAgICAsIE5VTExcbiIKLQkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJ ICAiCQksIE5VTExcbiIKKwkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJICAiRlJPTSBw Z19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0 YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIK LQkJCQkJCQkJICAiT1JERVIgQlkgMTsiLAotCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQsIG9pZCk7 CisJCQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0 aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iLAorCQkJCQkJCQkgIG9pZCk7CisKKwkJCQkvKiBG SVhNRTogMTUwMDAwIHNob3VsZCBiZSBjaGFuZ2VkIHRvIDE2MDAwMCBsYXRlciBmb3IgUEcxNi4g Ki8KKwkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCQkJCWFwcGVuZFBRRXhwQnVm ZmVyKCZidWYsCisJCQkJCQkJCQkgICIgICAgIEFORCBOT1QgRVhJU1RTIChcbiIKKwkJCQkJCQkJ CSAgIgkJU0VMRUNUIDFcbiIKKwkJCQkJCQkJCSAgIgkJRlJPTSBwZ19jYXRhbG9nLnBnX3B1Ymxp Y2F0aW9uX3JlbCBwclxuIgorCQkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3Mg cGNcbiIKKwkJCQkJCQkJCSAgIgkJT04gcHIucHJyZWxpZCA9IHBjLm9pZFxuIgorCQkJCQkJCQkJ ICAiCQlXSEVSRSBwci5wcnJlbGlkID0gJyVzJyBBTkQgcHIucHJwdWJpZCA9IHAub2lkKVxuIiwK KwkJCQkJCQkJCSAgb2lkKTsKKworCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJPUkRF UiBCWSAxOyIpOwogCQkJfQogCQkJZWxzZQogCQkJewpAQCAtNjQyMCw4ICs2NDM5LDEzIEBAIGRl c2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCQkJICAiICAgICBw Z19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwclxuIgogCQkJCQkJCSAgIldIRVJFIGMucmVs bmFtZXNwYWNlID0gbi5vaWRcbiIKIAkJCQkJCQkgICIgIEFORCBjLm9pZCA9IHByLnBycmVsaWRc biIKLQkJCQkJCQkgICIgIEFORCBwci5wcnB1YmlkID0gJyVzJ1xuIgotCQkJCQkJCSAgIk9SREVS IEJZIDEsMiIsIHB1YmlkKTsKKwkJCQkJCQkgICIgIEFORCBwci5wcnB1YmlkID0gJyVzJ1xuIiwg cHViaWQpOworCisJCQkvKiBGSVhNRTogMTUwMDAwIHNob3VsZCBiZSBjaGFuZ2VkIHRvIDE2MDAw MCBsYXRlciBmb3IgUEcxNi4gKi8KKwkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwkJ CQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiICBBTkQgTk9UIHByLnByZXhjZXB0XG4iKTsKKwor CQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIk9SREVSIEJZIDEsMiIpOwogCQkJaWYgKCFhZGRG b290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJUYWJsZXM6IiksIGZhbHNlLCAmY29udCkp CiAJCQkJZ290byBlcnJvcl9yZXR1cm47CiAKQEAgLTY0MzksNiArNjQ2MywyNCBAQCBkZXNjcmli ZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCQlnb3RvIGVycm9yX3JldHVy bjsKIAkJCX0KIAkJfQorCQllbHNlCisJCXsKKwkJCS8qIEZJWE1FOiAxNTAwMDAgc2hvdWxkIGJl IGNoYW5nZWQgdG8gMTYwMDAwIGxhdGVyIGZvciBQRzE2LiAqLworCQkJaWYgKHBzZXQuc3ZlcnNp b24gPj0gMTUwMDAwKQorCQkJeworCQkJCS8qIEdldCB0aGUgZXhjbHVkZWQgdGFibGVzIGZvciB0 aGUgc3BlY2lmaWVkIHB1YmxpY2F0aW9uICovCisJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwK KwkJCQkJCQkJICAiU0VMRUNUIGNvbmNhdChjLnJlbG5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCAn LicsIGMucmVsbmFtZSlcbiIKKwkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNc biIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHBy IE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwci5wcnB1YmlkID0g JyVzJ1xuIgorCQkJCQkJCQkgICIgIEFORCBwci5wcmV4Y2VwdFxuIgorCQkJCQkJCQkgICJPUkRF UiBCWSAxIiwgcHViaWQpOworCQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1 ZiwgXygiRXhjZXB0IHRhYmxlczoiKSwKKwkJCQkJCQkJCQkJCXRydWUsICZjb250KSkKKwkJCQkJ Z290byBlcnJvcl9yZXR1cm47CisJCQl9CisJCX0KIAogCQlwcmludFRhYmxlKCZjb250LCBwc2V0 LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CiAJCXByaW50VGFibGVDbGVhbnVwKCZj b250KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuYwppbmRleCBiZGZjNmQ4ZTg4Li5lZjc4ZTVlMmU4IDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5jCkBAIC0xODcyLDkgKzE4NzIsMTMgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNo YXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRS T1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlJFU0VUIiwgIlNFVCIpOwogCS8qIEFMVEVS IFBVQkxJQ0FUSU9OIDxuYW1lPiBBREQgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQ VUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIikpCi0JCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyBJ TiBTQ0hFTUEiLCAiVEFCTEUiKTsKKwkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyIsICJUQUJM RVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVC TElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVTIikpCisJCUNPTVBMRVRF X1dJVEgoIkVYQ0VQVCBUQUJMRSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJ Q0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgfHwKLQkJCSAoSGVhZE1hdGNo ZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikg JiYKKwkJCSBNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIiwg IkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIikgfHwKKwkJCSAoKEhlYWRNYXRjaGVz KCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpIHx8 CisJCQkgICBIZWFkTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFE RCIsICJBTEwiLCAiVEFCTEVTIiwgIkVYQ0VQVCIsICJUQUJMRSIpKSAmJgogCQkJICBlbmRzX3dp dGgocHJldl93ZCwgJywnKSkpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zv cl9saXN0X29mX3RhYmxlcyk7CiAKQEAgLTMwOTYsNyArMzEwMCw3IEBAIHBzcWxfY29tcGxldGlv bihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJZWxzZSBpZiAoTWF0Y2hl cygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIikpCiAJCUNP TVBMRVRFX1dJVEgoIlRBQkxFUyIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJM SUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMiKSkKLQkJQ09NUExFVEVf V0lUSCgiV0lUSCAoIik7CisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIsICJXSVRIICgi KTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwg IkZPUiIsICJUQUJMRVMiKSkKIAkJQ09NUExFVEVfV0lUSCgiSU4gU0NIRU1BIik7CiAJZWxzZSBp ZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFC TEUiLCBNYXRjaEFueSkgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbi5oCmluZGV4IDZlY2FhMmEwMWUuLmJiMmYzYzIwMDggMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKQEAgLTEwOCwxMSArMTA4LDEyIEBAIHR5cGVkZWYg c3RydWN0IFB1YmxpY2F0aW9uUmVsSW5mbwogCVJlbGF0aW9uCXJlbGF0aW9uOwogCU5vZGUJICAg KndoZXJlQ2xhdXNlOwogCUxpc3QJICAgKmNvbHVtbnM7CisJYm9vbAkJZXhjZXB0OwogfSBQdWJs aWNhdGlvblJlbEluZm87CiAKIGV4dGVybiBQdWJsaWNhdGlvbiAqR2V0UHVibGljYXRpb24oT2lk IHB1YmlkKTsKIGV4dGVybiBQdWJsaWNhdGlvbiAqR2V0UHVibGljYXRpb25CeU5hbWUoY29uc3Qg Y2hhciAqcHVibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKLWV4dGVybiBMaXN0ICpHZXRSZWxhdGlv blB1YmxpY2F0aW9ucyhPaWQgcmVsaWQpOworZXh0ZXJuIExpc3QgKkdldFJlbGF0aW9uUHVibGlj YXRpb25zKE9pZCByZWxpZCwgYm9vbCBleGNlcHRfZmxhZyk7CiAKIC8qLS0tLS0tLS0tCiAgKiBF eHBlY3RlZCB2YWx1ZXMgZm9yIHB1Yl9wYXJ0b3B0IHBhcmFtZXRlciBvZiBHZXRSZWxhdGlvblB1 YmxpY2F0aW9ucygpLApAQCAtMTMyLDcgKzEzMyw3IEBAIHR5cGVkZWYgZW51bSBQdWJsaWNhdGlv blBhcnRPcHQKIAogZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJp ZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KTsKIGV4dGVybiBMaXN0ICpHZXRBbGxU YWJsZXNQdWJsaWNhdGlvbnModm9pZCk7Ci1leHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGlj YXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KTsKK2V4dGVybiBMaXN0ICpHZXRBbGxUYWJs ZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIGJvb2wgcHVidmlhcm9vdCk7CiBleHRl cm4gTGlzdCAqR2V0UHVibGljYXRpb25TY2hlbWFzKE9pZCBwdWJpZCk7CiBleHRlcm4gTGlzdCAq R2V0U2NoZW1hUHVibGljYXRpb25zKE9pZCBzY2hlbWFpZCk7CiBleHRlcm4gTGlzdCAqR2V0U2No ZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHNjaGVtYWlkLApAQCAtMTQzLDcgKzE0NCw3IEBA IGV4dGVybiBMaXN0ICpHZXRQdWJQYXJ0aXRpb25PcHRpb25SZWxhdGlvbnMoTGlzdCAqcmVzdWx0 LAogCQkJCQkJCQkJCQlQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCiAJCQkJCQkJCQkJ CU9pZCByZWxpZCk7CiBleHRlcm4gT2lkCUdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24o T2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAotCQkJCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xl dmVsKTsKKwkJCQkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCwgYm9vbCBwdWJhbGx0YWJsZXMp OwogCiBleHRlcm4gYm9vbCBpc19wdWJsaXNoYWJsZV9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwog ZXh0ZXJuIGJvb2wgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaAppbmRleCA2MTNlOTc0N2MyLi45MDgxYzRkNzhm IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKQEAgLTMxLDYgKzMx LDcgQEAgQ0FUQUxPRyhwZ19wdWJsaWNhdGlvbl9yZWwsNjEwNixQdWJsaWNhdGlvblJlbFJlbGF0 aW9uSWQpCiAJT2lkCQkJb2lkOwkJCS8qIG9pZCAqLwogCU9pZAkJCXBycHViaWQgQktJX0xPT0tV UChwZ19wdWJsaWNhdGlvbik7IC8qIE9pZCBvZiB0aGUgcHVibGljYXRpb24gKi8KIAlPaWQJCQlw cnJlbGlkIEJLSV9MT09LVVAocGdfY2xhc3MpOwkvKiBPaWQgb2YgdGhlIHJlbGF0aW9uICovCisJ Ym9vbAkJcHJleGNlcHQgQktJX0RFRkFVTFQoZik7CS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICov CiAKICNpZmRlZglDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3Rh cnQgaGVyZSAqLwogCXBnX25vZGVfdHJlZSBwcnF1YWw7CQkvKiBxdWFsaWZpY2F0aW9ucyAqLwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmggYi9zcmMv aW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaAppbmRleCA3MGQ1ZTM2ODBhLi42ZjIw ODI2ZTI2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu aAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaApAQCAtMzIsOCAr MzIsMTEgQEAgZXh0ZXJuIE9iamVjdEFkZHJlc3MgQWx0ZXJQdWJsaWNhdGlvbk93bmVyKGNvbnN0 IGNoYXIgKm5hbWUsIE9pZCBuZXdPd25lcklkKTsKIGV4dGVybiB2b2lkIEFsdGVyUHVibGljYXRp b25Pd25lcl9vaWQoT2lkIHN1YmlkLCBPaWQgbmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBJbnZh bGlkYXRlUHVibGljYXRpb25SZWxzKExpc3QgKnJlbGlkcyk7CiBleHRlcm4gYm9vbCBwdWJfcmZf Y29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwKLQkJ CQkJCQkJCQkgICBMaXN0ICphbmNlc3RvcnMsIGJvb2wgcHVidmlhcm9vdCk7CisJCQkJCQkJCQkJ ICAgTGlzdCAqYW5jZXN0b3JzLCBib29sIHB1YnZpYXJvb3QsCisJCQkJCQkJCQkJICAgYm9vbCBw dWJhbGx0YWJsZXMpOwogZXh0ZXJuIGJvb2wgcHViX2NvbGxpc3RfY29udGFpbnNfaW52YWxpZF9j b2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCQkJCUxpc3QgKmFu Y2VzdG9ycywgYm9vbCBwdWJ2aWFyb290KTsKKwkJCQkJCQkJCQkJCUxpc3QgKmFuY2VzdG9ycywK KwkJCQkJCQkJCQkJCWJvb2wgcHVidmlhcm9vdCwKKwkJCQkJCQkJCQkJCWJvb2wgcHViYWxsdGFi bGVzKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBVQkxJQ0FUSU9OQ01EU19IICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKaW5kZXggNzcyZmVhMGY4Mi4uNDFjZjU2ZmQ1OCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaApAQCAtMzc1Myw2ICszNzUzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25UYWJs ZQogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyogcmVsYXRpb24gdG8gYmUgcHVibGlzaGVkICov CiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25zICovCiAJTGlzdAkgICAq Y29sdW1uczsJCS8qIExpc3Qgb2YgY29sdW1ucyBpbiBhIHB1YmxpY2F0aW9uIHRhYmxlICovCisJ Ym9vbAkJZXhjZXB0OwkJCS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCiB9IFB1YmxpY2F0aW9u VGFibGU7CiAKIC8qCkBAIC0zNzYxLDYgKzM3NjIsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNh dGlvblRhYmxlCiB0eXBlZGVmIGVudW0gUHVibGljYXRpb25PYmpTcGVjVHlwZQogewogCVBVQkxJ Q0FUSU9OT0JKX1RBQkxFLAkJLyogQSB0YWJsZSAqLworCVBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9U QUJMRSwJCS8qIEEgdGFibGUgdG8gYmUgZXhjbHVkZWQgKi8KIAlQVUJMSUNBVElPTk9CSl9UQUJM RVNfSU5fU0NIRU1BLAkvKiBBbGwgdGFibGVzIGluIHNjaGVtYSAqLwogCVBVQkxJQ0FUSU9OT0JK X1RBQkxFU19JTl9DVVJfU0NIRU1BLAkvKiBBbGwgdGFibGVzIGluIGZpcnN0IGVsZW1lbnQgb2YK IAkJCQkJCQkJCQkJICogc2VhcmNoX3BhdGggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w dWJsaWNhdGlvbi5vdXQKaW5kZXggNzA4Y2RiYmQ3Ni4uOGYxYjg3N2QwNyAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTE5MiwxMyArMTkyLDM3IEBAIFB1 YmxpY2F0aW9uczoKICByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZgogKDEgcm93KQogCitTRVQg Y2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHRl c3RwdWJfdGJsMSwgdGVzdHB1Yl90YmwyOworLS0gc3BlY2lmeSBFWENFUFQgd2l0aG91dCBUQUJM RQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMSBG T1IgQUxMIFRBQkxFUyBFWENFUFQgdGVzdHB1Yl90YmwxOworUkVTRVQgY2xpZW50X21pbl9tZXNz YWdlczsKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCisgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJs ZQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKK0V4Y2VwdCB0 YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCisgICAgInB1YmxpYy50ZXN0cHViX3Ri bDIiCisKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMQorICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJs ZTEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCitFeGNlcHQg dGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwxIgorCiBEUk9QIFRBQkxFIHRlc3RwdWJf dGJsMjsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9y dGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hOworRFJPUCBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1 Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWEsIHRlc3RwdWJfZm9yYWxsdGFibGVz X2V4Y2VwdHRhYmxlLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTE7CiBDUkVBVEUg VEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAo YiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2Vz ID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1 Yl90YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3Rw dWJfdGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxMIFRBQkxFUyBFWENF UFQgVEFCTEUgdGVzdHB1Yl90YmwzOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKIFJFU0VUIGNsaWVudF9t aW5fbWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViMwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjMKQEAgLTIxNyw4ICsyNDEsMjUgQEAgVGFibGVz OgogVGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl90YmwzIgogCitcZFJwKyB0ZXN0cHViNQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjUK KyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCitFeGNlcHQgdGFi bGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwzIgorICAgICJwdWJsaWMudGVzdHB1Yl90Ymwz YSIKKworXGRScCsgdGVzdHB1YjYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWI2CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRh YmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290 IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKKwog RFJPUCBUQUJMRSB0ZXN0cHViX3RibDMsIHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9O IHRlc3RwdWIzLCB0ZXN0cHViNDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0 LCB0ZXN0cHViNSwgdGVzdHB1YjY7CiAtLSBUZXN0cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBT RVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9mb3JwYXJ0ZWQ7CkBAIC0xNzI2LDkgKzE3NjcsMTUgQEAgRFJPUCBTQ0hFTUEgc2NoMiBj YXNjYWRlOwogLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAogQ1JFQVRF IFNDSEVNQSBwdWJfc2NoMTsKIENSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitD UkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMiAoYSBpbnQpOwogU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBU QUJMRVM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBU QUJMRSB0byAnRk9SIEFMTCBUQUJMRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOwor RVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2 ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJM RVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJl IGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byBy ZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlz IHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CkBAIC0xNzQ1LDcgKzE3OTIsMjQgQEAgQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKICByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgZgogKDEgcm93KQogCistLSBTaG91bGQgd29yayBub3cgYWZ0ZXIgcmVzZXR0aW5nIHRo ZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRB QkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMSwgcHViX3NjaDEudGJsMjsKK1xkUnArIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9u IHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg SW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBmCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfc2NoMS50YmwxIgorICAgICJwdWJfc2NoMS50 YmwyIgorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEudGJsMTsKKy0tIENhbid0 IGFkZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gx LnRibDE7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlv biB0byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcworREVUQUlMOiAg QUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBz aG91bGQgYmUgYXNzb2NpYXRlZC4KK0hJTlQ6ICBVc2UgQUxURVIgUFVCTElDQVRJT04gLi4uIFJF U0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbgogLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29j aWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKIFxkUnAr IHRlc3RwdWJfcmVzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTE3NjMsNyArMTgyNywxMiBAQCBBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCiAoMSBy b3cpCiAKLUFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgSU4g U0NIRU1BIHB1YmxpYzsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxF UyBJTiBTQ0hFTUEgcHVibGljOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFM TCBUQUJMRVMgSU4gU0NIRU1BJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9S OiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVm YXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZs YWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3Nv Y2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQg dGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0 aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKIFxkUnArIHRlc3RwdWJfcmVz ZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJf cmVzZXQKQEAgLTE3ODIsNiArMTg1MSwxMiBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOwogKDEgcm93KQogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNF VCAoUFVCTElTSCA9ICcnKTsKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgd2hlbiB0aGUgJ1BV QkxJU0gnIHBhcmFtZXRlciBkb2VzIG5vdCBoYXZlIGRlZmF1bHQKKy0tIHZhbHVlCitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJf c2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyB0aGUgcHVibGlj YXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2YWx1ZXMKK0RFVEFJ TDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3NjaGVt YXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4u LiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZlcmlmeSB0aGF0ICdQVUJMSVNI JyBwYXJhbWV0ZXIgaXMgcmVzZXQKIFxkUnArIHRlc3RwdWJfcmVzZXQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTE3OTksNiAr MTg3NCwxMiBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogKDEgcm93 KQogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFS VElUSU9OX1JPT1QgPSAndHJ1ZScpOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuICdQ VUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGRvZXMgbm90CistLSBoYXZlIGRl ZmF1bHQgdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJM RVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVT IHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFy YW1ldGVyIHZhbHVlcworREVUQUlMOiAgQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0 IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4KK0hJTlQ6ICBVc2Ug QUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbgogLS0g VmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIgaXMgcmVz ZXQKIFxkUnArIHRlc3RwdWJfcmVzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTE4MjAsOSArMTkwMSwxMyBAQCBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl cjI7CiBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCiBFUlJP UjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uCistLSBWZXJpZnkgdGhh dCBvbmx5IHN1cGVydXNlciBjYW4gQUREIEFMTCBUQUJMRVMKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVM7CitFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRv IEFERCBBTEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbgogU0VUIFJPTEUgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJM RSBwdWJfc2NoMS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOwogRFJPUCBTQ0hFTUEg cHViX3NjaDE7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFJPTEUgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyLCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IGVjNzEwZmYzM2QuLjVhM2ZhOGY1ODIgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTk4LDIwICs5OCwzNCBAQCBTRUxFQ1Qg cHVibmFtZSwgcHViYWxsdGFibGVzIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZSA9 ICd0ZXN0cHViX2ZvcmFsbAogXGQrIHRlc3RwdWJfdGJsMgogXGRScCsgdGVzdHB1Yl9mb3JhbGx0 YWJsZXMKIAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlIEZPUiBBTEwgVEFCTEVTIEVY Q0VQVCBUQUJMRSB0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMjsKKy0tIHNwZWNpZnkgRVhDRVBU IHdpdGhvdXQgVEFCTEUKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19l eGNlcHR0YWJsZTEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIHRlc3RwdWJfdGJsMTsKK1JFU0VUIGNs aWVudF9taW5fbWVzc2FnZXM7CisKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRh YmxlCitcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEKKwogRFJPUCBUQUJM RSB0ZXN0cHViX3RibDI7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0 ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJsX3NjaGVt YTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFi bGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hLCB0ZXN0cHViX2Zv cmFsbHRhYmxlc19leGNlcHR0YWJsZSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUx OworCiAKIENSRUFURSBUQUJMRSB0ZXN0cHViX3RibDMgKGEgaW50KTsKIENSRUFURSBUQUJMRSB0 ZXN0cHViX3RibDNhIChiIHRleHQpIElOSEVSSVRTICh0ZXN0cHViX3RibDMpOwogU0VUIGNsaWVu dF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWIzIEZP UiBUQUJMRSB0ZXN0cHViX3RibDM7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjQgRk9SIFRB QkxFIE9OTFkgdGVzdHB1Yl90YmwzOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI1IEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDM7CitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1YjYgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIE9OTFkgdGVzdHB1Yl90YmwzOwog UkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnArIHRlc3RwdWIzCiBcZFJwKyB0ZXN0cHVi NAorXGRScCsgdGVzdHB1YjUKK1xkUnArIHRlc3RwdWI2CiAKIERST1AgVEFCTEUgdGVzdHB1Yl90 YmwzLCB0ZXN0cHViX3RibDNhOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywgdGVzdHB1YjQ7 CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHViNCwgdGVzdHB1YjUsIHRlc3RwdWI2 OwogCiAtLSBUZXN0cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBTRVQgY2xpZW50X21pbl9tZXNz YWdlcyA9ICdFUlJPUic7CkBAIC0xMDk2LDIzICsxMTEwLDM5IEBAIERST1AgU0NIRU1BIHNjaDIg Y2FzY2FkZTsKIC0tIFRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQKIENSRUFU RSBTQ0hFTUEgcHViX3NjaDE7CiBDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMSAoYSBpbnQpOwor Q1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDIgKGEgaW50KTsKIFNFVCBjbGllbnRfbWluX21lc3Nh Z2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwg VEFCTEVTOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQ VCBUQUJMRSB0byAnRk9SIEFMTCBUQUJMRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50Ymwx OworCiAtLSBWZXJpZnkgdGhhdCAnQUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAogXGRScCsgdGVz dHB1Yl9yZXNldAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIFxkUnAr IHRlc3RwdWJfcmVzZXQKIAorLS0gU2hvdWxkIHdvcmsgbm93IGFmdGVyIHJlc2V0dGluZyB0aGUg cHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJM RVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDEsIHB1Yl9zY2gxLnRibDI7CitcZFJwKyB0ZXN0 cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CisKIEFM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gxLnRibDE7CiAK Ky0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxF IHB1Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0IHRhYmxlcyBhc3NvY2lhdGVkIHdpdGgg dGhlIHB1YmxpY2F0aW9uIGFyZSBkcm9wcGVkIGFmdGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jl c2V0CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogXGRScCsgdGVzdHB1 Yl9yZXNldAogCi1BTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVT IElOIFNDSEVNQSBwdWJsaWM7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBU QUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKKworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAn Rk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsK IAogLS0gVmVyaWZ5IHRoYXQgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9u IGFyZSBkcm9wcGVkIGFmdGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CkBAIC0xMTIxLDYg KzExNTEsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIAogQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0ggPSAnJyk7CiAKKy0tIENh bid0IGFkZCBFWENFUFQgVEFCTEUgd2hlbiB0aGUgJ1BVQkxJU0gnIHBhcmFtZXRlciBkb2VzIG5v dCBoYXZlIGRlZmF1bHQKKy0tIHZhbHVlCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworCiAtLSBWZXJpZnkg dGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwpAQCAtMTEyOCw2ICsxMTYyLDEw IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAKIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0 cnVlJyk7CiAKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgd2hlbiAnUFVCTElTSF9WSUFfUEFS VElUSU9OX1JPT1QnIHBhcmFtZXRlciBkb2VzIG5vdAorLS0gaGF2ZSBkZWZhdWx0IHZhbHVlCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJM RSBwdWJfc2NoMS50YmwxOworCiAtLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFfUEFSVElUSU9O X1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKQEAgLTExMzcsMTAgKzExNzUsMTQgQEAgQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKIFNFVCBST0xF IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOyAtLSBmYWlsIC0gbXVzdCBiZSBzdXBlcnVzZXIKKworLS0gVmVyaWZ5IHRoYXQg b25seSBzdXBlcnVzZXIgY2FuIEFERCBBTEwgVEFCTEVTCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTOwogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyOwogCiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CiBEUk9QIFRBQkxFIHB1Yl9z Y2gxLnRibDE7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDI7CiBEUk9QIFNDSEVNQSBwdWJfc2No MTsKIAogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1 aWxkCmluZGV4IDNkYjBmZGZkOTYuLmYxODIzNWU3YzcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1 YnNjcmlwdGlvbi9tZXNvbi5idWlsZAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24u YnVpbGQKQEAgLTM4LDYgKzM4LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3QvMDI5X29uX2Vycm9y LnBsJywKICAgICAgICd0LzAzMF9vcmlnaW4ucGwnLAogICAgICAgJ3QvMDMxX2NvbHVtbl9saXN0 LnBsJywKKyAgICAgICd0LzAzMl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwnLAogICAgICAg J3QvMTAwX2J1Z3MucGwnLAogICAgIF0sCiAgIH0sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzJfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsIGIvc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDMyX3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xNzVlMzgzNDJlCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMyX3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbApA QCAtMCwwICsxLDgwIEBACisKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjIsIFBvc3RncmVTUUwg R2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyMgTG9naWNhbCByZXBsaWNhdGlvbiB0ZXN0cyBm b3IgZXhjZXB0IHRhYmxlIHB1YmxpY2F0aW9ucwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsK K3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0 aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKKyMgSW5pdGlhbGl6ZSBwdWJsaXNoZXIgbm9kZQorbXkg JG5vZGVfcHVibGlzaGVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdwdWJsaXNo ZXInKTsKKyRub2RlX3B1Ymxpc2hlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2Fs Jyk7Ciskbm9kZV9wdWJsaXNoZXItPnN0YXJ0OworCisjIENyZWF0ZSBzdWJzY3JpYmVyIG5vZGUK K215ICRub2RlX3N1YnNjcmliZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1 YnNjcmliZXInKTsKKyRub2RlX3N1YnNjcmliZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAn bG9naWNhbCcpOworJG5vZGVfc3Vic2NyaWJlci0+c3RhcnQ7CisKKyMgVGVzdCByZXBsaWNhdGlv biB3aXRoIHB1YmxpY2F0aW9ucyBjcmVhdGVkIHVzaW5nIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBU QUJMRQorIyBjbGF1c2UuCisjIENyZWF0ZSBzY2hlbWFzIGFuZCB0YWJsZXMgb24gcHVibGlzaGVy Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFNDSEVNQSBz Y2gxIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg VEFCTEUgc2NoMS50YWIxIEFTIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgQVMgYSIpOwor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHB1 YmxpYy50YWIxKGEgaW50KSIpOworCisjIENyZWF0ZSBzY2hlbWFzIGFuZCB0YWJsZXMgb24gc3Vi c2NyaWJlcgorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUg U0NIRU1BIHNjaDEiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi Q1JFQVRFIFRBQkxFIHNjaDEudGFiMSAoYSBpbnQpIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSBwdWJsaWMudGFiMSAoYSBpbnQpIik7CisK KyMgU2V0dXAgbG9naWNhbCByZXBsaWNhdGlvbgorbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5v ZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJf c2NoZW1hIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBzY2gxLnRhYjEiKTsKKworJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04g dGFwX3N1Yl9zY2hlbWEgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElP TiB0YXBfcHViX3NjaGVtYSIKKyk7CisKKyMgV2FpdCBmb3IgaW5pdGlhbCB0YWJsZSBzeW5jIHRv IGZpbmlzaAorJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5v ZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9zY2hlbWEnKTsKKworIyBDaGVjayB0aGUgdGFibGUgZGF0 YSBkb2VzIG5vdCBzeW5jIGZvciBleGNsdWRlZCB0YWJsZQorbXkgJHJlc3VsdCA9ICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKiksIG1pbihh KSwgbWF4KGEpIEZST00gc2NoMS50YWIxIik7CitpcygkcmVzdWx0LCBxcSgwfHwpLCAnY2hlY2sg dGhlcmUgaXMgbm8gaW5pdGlhbCBkYXRhIGNvcGllZCBmb3IgdGhlIGV4Y2x1ZGVkIHRhYmxlJyk7 CisKKyMgSW5zZXJ0IHNvbWUgZGF0YSBhbmQgdmVyaWZ5IHRoYXQgaW5zZXJ0ZWQgZGF0YSBpcyBu b3QgcmVwbGljYXRlZAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki SU5TRVJUIElOVE8gc2NoMS50YWIxIFZBTFVFUyhnZW5lcmF0ZV9zZXJpZXMoMTEsMjApKSIpOwor Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisK KyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VM RUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3Vs dCwgcXEoMHx8KSwgJ2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBvbiBzdWJzY3JpYmVyJyk7CisK KyMgQWx0ZXIgcHVibGljYXRpb24gdG8gZXhjbHVkZSBkYXRhIGNoYW5nZXMgaW4gcHVibGljLnRh YjEgYW5kIHZlcmlmeSB0aGF0CisjIHN1YnNjcmliZXIgZG9lcyBub3QgZ2V0IHRoZSBjaGFuZ2Vk IGRhdGEgZm9yIHRoaXMgdGFibGUuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorICAgICAgICAiQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgUkVTRVQiKTsK KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisgICAgICAgICJBTFRFUiBQ VUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgc2No MS50YWIxLCBwdWJsaWMudGFiMSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKyAgICAgICAgIklOU0VSVCBJTlRPIHB1YmxpYy50YWIxIFZBTFVFUyhnZW5lcmF0ZV9z ZXJpZXMoMSwxMCkpIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFw X3N1Yl9zY2hlbWEnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKiksIG1pbihhKSwgbWF4KGEpIEZST00gcHVibGlj LnRhYjEiKTsKK2lzKCRyZXN1bHQsIHFxKDB8fCksICdjaGVjayByb3dzIG9uIHN1YnNjcmliZXIg Y2F0Y2h1cCcpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zdG9wKCdmYXN0Jyk7Ciskbm9kZV9wdWJs aXNoZXItPnN0b3AoJ2Zhc3QnKTsKKworZG9uZV90ZXN0aW5nKCk7Ci0tIAoyLjM0LjEKCg== --000000000000fd751705f2af20bd--