Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tgDYS-008iso-8L for pgsql-hackers@arkaria.postgresql.org; Fri, 07 Feb 2025 01:53:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tgDYO-00E46u-Gj for pgsql-hackers@arkaria.postgresql.org; Fri, 07 Feb 2025 01:53:12 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tgDYN-00E46l-Ft for pgsql-hackers@lists.postgresql.org; Fri, 07 Feb 2025 01:53:12 +0000 Received: from mail-lj1-x22e.google.com ([2a00:1450:4864:20::22e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tgDYK-003ePt-0b for pgsql-hackers@lists.postgresql.org; Fri, 07 Feb 2025 01:53:10 +0000 Received: by mail-lj1-x22e.google.com with SMTP id 38308e7fff4ca-308a559bdf7so56671fa.1 for ; Thu, 06 Feb 2025 17:53:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738893186; x=1739497986; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=0Hp97W1OvogLrOU8zlWo0dKuvIwPiJqMjpzUNXsXFQk=; b=QWDtGPI/kVW4Qj6n347EFJmoYIBaEoR9qEovksnZbotYsIaLO3fepPrJLWcK9JddaM EVPYlZDRlTiikEUgYoKLXNBDGHVSsFaQARkjZ3lQ6aZygY//IKW+V1WeVierjRHjo/SO H+NylGUoPTVCdZcDual1HLSYpxP0EFgEXrFRYUdE9ogu7axD9AGMWzVXYf+sm+ypobdP 8/hyKoIU+maxzflVMxI6NQmygQfASglFw/0iazM3w9BEMuGNFkAY8OcPG8pkAG8mAOT7 WnupvxYAkyU6yLWva1hzdG1Iek7zXG1ft3p2gZjvIeGlSoonInmdVo0dEHk7/pppaV49 fDEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738893186; x=1739497986; 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=0Hp97W1OvogLrOU8zlWo0dKuvIwPiJqMjpzUNXsXFQk=; b=M6XdhnyY9imW3Tt2Gf1PQ/zYaCHtEi/PdEyowziszzY2yZ6Nsd6AzqU5Jq80xxIf8V e1f1gRj0Z0TZVpVUYiJk9zLcbqpK6uYH4Yqfd2G3VoiLNts8Jwbo7wMXEpseMfEsULPG kFom8OySByqxQpHcHOrrvU9ZfXO/pv62B4MwhBkeYmhgiA2CWNzQuObOvKDWmDu/AgUW EPcAf6//qF9+N7Z4QsAIJUDjKgLMzqRyh37815d0hfXUGBKr3Ikxankx76Srdvjs7SzA FvnhDMkRvWt9djHrmA5s3i/09uwor41Uqc2w/HxrDYGEeeJ3+chPn/qPFyawPv9CKXCs W2pg== X-Gm-Message-State: AOJu0YyoYmoxi7Y/df10mNY/GLe2oVHRPkCZw+FtuKfrxDh1W12pHycU CFoq6vRXZZbe8oRDCq6ReLSdnWYnZ759mG2tAMDYCxXqCcKcjDDFHoSCHtCLCB3vNNwwiiL3sL8 3ZwLICHoI8NXMDVcv8zhxPBuj30I= X-Gm-Gg: ASbGncsbH7k2kFRDJgeWlXKAhdSBGRX2jMKWZek1bP3eEiDaju5oxK873IZhjD/yV/V WCLp89jxCRztd01QNSWD9qwJpALJRpRKDD/mciJ1IFOc3Tc8SLUKr40Fgto9pLZsNLCbIcuI= X-Google-Smtp-Source: AGHT+IHrB6H+sszQOEG2RfESJfYjSAUHtQ8f1sD3yq6UMi0vD119ZCoyLa50OPVaRf50LQo0lCWC57irMaQ84yA3kZc= X-Received: by 2002:a2e:a98c:0:b0:306:501:4752 with SMTP id 38308e7fff4ca-307e58002camr3381021fa.11.1738893185505; Thu, 06 Feb 2025 17:53:05 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Sami Imseih Date: Thu, 6 Feb 2025 19:52:53 -0600 X-Gm-Features: AWEUYZliXMIPhRv43FY2WqzDII1h9ztPWSmBBFp0iTh9NPa9TPxcnCQb6P2By8I Message-ID: Subject: Re: [PATCH] Optionally record Plan IDs to track plan changes for a query To: Lukas Fittl , Michael Paquier Cc: PostgreSQL Hackers , Marko M Content-Type: multipart/mixed; boundary="000000000000a01605062d839e08" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a01605062d839e08 Content-Type: text/plain; charset="UTF-8" > This does not yet move field-specific comments to their own line in nodes where we're adding node attributes, I'll leave that for Sami to work on. > Hi, Attached is a new set of patches for fixing the long comments in plannodes.h and to refactor queryjumblefuncs.c v5-0001 ----------- This fixes the long comments in plannodes.h to make it easier to add the attribute annotation. It made the most sense to make this the first patch in the set. v5-0002 ----------- >> Here are my high-level thoughts on this: >> 1. rename queryjumblefuncs.c to jumblefuncs.c > If these APIs are used for somethings else than Query structure, yes, > the renaming makes sense. Done. Also rewrote the header comment in jumblefuncs.c to describe a more generic node jumbling mechanism that this file now offers. >> 2. move the query jumbling related code to parser/analyze.c, >> since query jumbling occurs there during parsing. > Not sure about this one. It depends on how much is changed. As long > as everything related to the nodes stays in src/backend/nodes/, > perhaps that's OK. Yes, after getting my hands on this, I agree with you. It made more sense to keep all the jumbling work in jumblefuncs.c v5-0003 and v5-0004 introduce the planId in core and pg_stat_plans. These needed rebasing only; but I have not yet looked at this thoroughly. We should aim to get 0001 and 0002 committed next. Regards, Sami --000000000000a01605062d839e08 Content-Type: application/octet-stream; name="v5-0002-Allow-using-jumbling-logic-outside-of-query-jumbl.patch" Content-Disposition: attachment; filename="v5-0002-Allow-using-jumbling-logic-outside-of-query-jumbl.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6u3whis1 RnJvbSA1NjA0ODFlYzM0MDhiZjk4Y2NmNjk2ZmZiOTliNmM4ZWQxZWViNmJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBU dWUsIDMxIERlYyAyMDI0IDE1OjA1OjM5IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2NSAyLzRdIEFs bG93IHVzaW5nIGp1bWJsaW5nIGxvZ2ljIG91dHNpZGUgb2YgcXVlcnkganVtYmxlCiB1bml0IGZp bGUKClRoaXMgY2FuIGJlIHVzZWZ1bCBlaXRoZXIgZm9yIGp1bWJsaW5nIGV4cHJlc3Npb25zIGlu IG90aGVyIGNvbnRleHRzCihlLmcuIHRvIGNhbGN1bGF0ZSBhIHBsYW4ganVtYmxlKSwgb3IgdG8g YWxsb3cgZXh0ZW5zaW9ucyB0byB1c2UKYSBtb2RpZmllZCBqdW1ibGluZyBsb2dpYyBtb3JlIGVh c2lseS4KClRoaXMgaW50ZW50aW9uYWxseSBzdXBwb3J0cyB0aGUgdXNlIGNhc2Ugd2hlcmUgYSBz ZXBhcmF0ZSBqdW1ibGluZyBsb2dpYwpkb2VzIG5vdCBjYXJlIGFib3V0IHJlY29yZGluZyBjb25z dGFudHMsIGFzIHRoZSBxdWVyeSBqdW1ibGUgZG9lcy4KLS0tCiAuLi4vcGdfc3RhdF9zdGF0ZW1l bnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L2NyZWF0ZWFzLmMgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXh0ZW5zaW9uLmMgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9w b3J0YWxjbWRzLmMgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNNYWluLmMgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvbm9kZXMvTWFrZWZp bGUgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMvYmFja2VuZC9ub2Rlcy9SRUFETUUg ICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL25vZGVzL2dlbl9ub2Rl X3N1cHBvcnQucGwgICAgICAgICB8ICAxNCArLS0KIC4uLi97cXVlcnlqdW1ibGVmdW5jcy5jID0+ IGp1bWJsZWZ1bmNzLmN9ICAgICB8IDEwOSArKysrKysrKysrLS0tLS0tLS0KIHNyYy9iYWNrZW5k L25vZGVzL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9w b3N0bWFzdGVyL2xhdW5jaF9iYWNrZW5kLmMgICAgICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL21pc2MvZ3VjX3RhYmxlcy5jICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvbm9k ZXMve3F1ZXJ5anVtYmxlLmggPT4ganVtYmxlLmh9IHwgIDE4ICsrLQogc3JjL2luY2x1ZGUvbm9k ZXMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9ub2Rl cy9ub2Rlcy5oICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL3BhcnNl ci9hbmFseXplLmggICAgICAgICAgICAgICAgICB8ICAgMiArLQogMTcgZmlsZXMgY2hhbmdlZCwg OTggaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25zKC0pCiByZW5hbWUgc3JjL2JhY2tlbmQvbm9k ZXMve3F1ZXJ5anVtYmxlZnVuY3MuYyA9PiBqdW1ibGVmdW5jcy5jfSAoNzglKQogcmVuYW1lIHNy Yy9pbmNsdWRlL25vZGVzL3txdWVyeWp1bWJsZS5oID0+IGp1bWJsZS5ofSAoODAlKQoKZGlmZiAt LWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jIGIv Y29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMKaW5kZXggYmVi ZjgxMzRlYi4uMjZlZjdmM2UwMyAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVu dHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMv cGdfc3RhdF9zdGF0ZW1lbnRzLmMKQEAgLTU1LDcgKzU1LDcgQEAKICNpbmNsdWRlICJqaXQvaml0 LmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKLSNp bmNsdWRlICJub2Rlcy9xdWVyeWp1bWJsZS5oIgorI2luY2x1ZGUgIm5vZGVzL2p1bWJsZS5oIgog I2luY2x1ZGUgIm9wdGltaXplci9wbGFubmVyLmgiCiAjaW5jbHVkZSAicGFyc2VyL2FuYWx5emUu aCIKICNpbmNsdWRlICJwYXJzZXIvc2Nhbm5lci5oIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvY3JlYXRlYXMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NyZWF0ZWFzLmMKaW5k ZXggMjNjZWNkOTljOS4uYTg0OThlMzcwYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvY3JlYXRlYXMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jcmVhdGVhcy5jCkBAIC0z Nyw3ICszNyw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvdmlldy5oIgogI2luY2x1ZGUgIm5vZGVz L21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgotI2luY2x1ZGUgIm5v ZGVzL3F1ZXJ5anVtYmxlLmgiCisjaW5jbHVkZSAibm9kZXMvanVtYmxlLmgiCiAjaW5jbHVkZSAi cGFyc2VyL2FuYWx5emUuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCiAj aW5jbHVkZSAidGNvcC90Y29wcHJvdC5oIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZXh0ZW5zaW9uLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHRlbnNpb24uYwppbmRleCBi YTU0MGUzZGU1Li4zYTQ2MmQ3MDhiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9l eHRlbnNpb24uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHRlbnNpb24uYwpAQCAtNTQs NyArNTQsNyBAQAogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJtYi9wZ193Y2hhci5o IgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgotI2luY2x1ZGUgIm5vZGVzL3F1ZXJ5anVtYmxlLmgi CisjaW5jbHVkZSAibm9kZXMvanVtYmxlLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9mZC5oIgogI2lu Y2x1ZGUgInRjb3AvdXRpbGl0eS5oIgogI2luY2x1ZGUgInV0aWxzL2FjbC5oIgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcG9ydGFsY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcG9ydGFsY21kcy5jCmluZGV4IGU3YzgxNzFjMTAuLjkyNmVjMmFmMzYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3BvcnRhbGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9wb3J0YWxjbWRzLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJleGVjdXRvci9l eGVjdXRvci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3RzdG9yZVJlY2VpdmVyLmgiCiAjaW5jbHVk ZSAibWlzY2FkbWluLmgiCi0jaW5jbHVkZSAibm9kZXMvcXVlcnlqdW1ibGUuaCIKKyNpbmNsdWRl ICJub2Rlcy9qdW1ibGUuaCIKICNpbmNsdWRlICJwYXJzZXIvYW5hbHl6ZS5oIgogI2luY2x1ZGUg InJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJ0Y29wL3BxdWVyeS5oIgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggNjA0Y2IwNjI1Yi4uZmE2MDAyZDVmOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjTWFpbi5jCkBAIC01MSw3ICs1MSw3IEBACiAjaW5jbHVkZSAiZm9yZWlnbi9mZHdh cGkuaCIKICNpbmNsdWRlICJtYi9wZ193Y2hhci5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgot I2luY2x1ZGUgIm5vZGVzL3F1ZXJ5anVtYmxlLmgiCisjaW5jbHVkZSAibm9kZXMvanVtYmxlLmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGdzdGF0Lmgi CiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvbm9kZXMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9ub2Rlcy9NYWtlZmlsZQppbmRleCA3 N2RkYjljYTUzLi40NTQ1NjQ5ZTJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9NYWtl ZmlsZQorKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9NYWtlZmlsZQpAQCAtMjYsNyArMjYsNyBAQCBP QkpTID0gXAogCW91dGZ1bmNzLm8gXAogCXBhcmFtcy5vIFwKIAlwcmludC5vIFwKLQlxdWVyeWp1 bWJsZWZ1bmNzLm8gXAorCWp1bWJsZWZ1bmNzLm8gXAogCXJlYWQubyBcCiAJcmVhZGZ1bmNzLm8g XAogCXRpZGJpdG1hcC5vIFwKQEAgLTkxLDggKzkxLDggQEAgJCh0b3BfYnVpbGRkaXIpL3NyYy9p bmNsdWRlL25vZGVzL2hlYWRlci1zdGFtcDogbm9kZS1zdXBwb3J0LXN0YW1wCiBjb3B5ZnVuY3Mu bzogY29weWZ1bmNzLmMgY29weWZ1bmNzLmZ1bmNzLmMgY29weWZ1bmNzLnN3aXRjaC5jIHwgbm9k ZS1zdXBwb3J0LXN0YW1wCiBlcXVhbGZ1bmNzLm86IGVxdWFsZnVuY3MuYyBlcXVhbGZ1bmNzLmZ1 bmNzLmMgZXF1YWxmdW5jcy5zd2l0Y2guYyB8IG5vZGUtc3VwcG9ydC1zdGFtcAogb3V0ZnVuY3Mu bzogb3V0ZnVuY3MuYyBvdXRmdW5jcy5mdW5jcy5jIG91dGZ1bmNzLnN3aXRjaC5jIHwgbm9kZS1z dXBwb3J0LXN0YW1wCi1xdWVyeWp1bWJsZWZ1bmNzLm86IHF1ZXJ5anVtYmxlZnVuY3MuYyBxdWVy eWp1bWJsZWZ1bmNzLmZ1bmNzLmMgcXVlcnlqdW1ibGVmdW5jcy5zd2l0Y2guYyB8IG5vZGUtc3Vw cG9ydC1zdGFtcAoranVtYmxlZnVuY3MubzoganVtYmxlZnVuY3MuYyBqdW1ibGVmdW5jcy5mdW5j cy5jIGp1bWJsZWZ1bmNzLnN3aXRjaC5jIHwgbm9kZS1zdXBwb3J0LXN0YW1wCiByZWFkZnVuY3Mu bzogIHJlYWRmdW5jcy5jIHJlYWRmdW5jcy5mdW5jcy5jIHJlYWRmdW5jcy5zd2l0Y2guYyB8IG5v ZGUtc3VwcG9ydC1zdGFtcAogCiBjbGVhbjoKLQlybSAtZiBub2RlLXN1cHBvcnQtc3RhbXAgJChh ZGRzdWZmaXggZnVuY3MuZnVuY3MuYyxjb3B5IGVxdWFsIG91dCBxdWVyeWp1bWJsZSByZWFkKSAk KGFkZHN1ZmZpeCBmdW5jcy5zd2l0Y2guYyxjb3B5IGVxdWFsIG91dCBxdWVyeWp1bWJsZSByZWFk KSBub2RldGFncy5oCisJcm0gLWYgbm9kZS1zdXBwb3J0LXN0YW1wICQoYWRkc3VmZml4IGZ1bmNz LmZ1bmNzLmMsY29weSBlcXVhbCBvdXQganVtYmxlIHJlYWQpICQoYWRkc3VmZml4IGZ1bmNzLnN3 aXRjaC5jLGNvcHkgZXF1YWwgb3V0IGp1bWJsZSByZWFkKSBub2RldGFncy5oCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9ub2Rlcy9SRUFETUUgYi9zcmMvYmFja2VuZC9ub2Rlcy9SRUFETUUKaW5k ZXggZjhiYmQ2MDUzOC4uYTQzMjkwZmJhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMv UkVBRE1FCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL1JFQURNRQpAQCAtNTEsNyArNTEsNyBAQCBG SUxFUyBJTiBUSElTIERJUkVDVE9SWSAoc3JjL2JhY2tlbmQvbm9kZXMvKQogCXJlYWRmdW5jcy5j CS0gY29udmVydCB0ZXh0IHJlcHJlc2VudGF0aW9uIGJhY2sgdG8gYSBub2RlIHRyZWUgKCopCiAJ bWFrZWZ1bmNzLmMJLSBjcmVhdG9yIGZ1bmN0aW9ucyBmb3Igc29tZSBjb21tb24gbm9kZSB0eXBl cwogCW5vZGVGdW5jcy5jCS0gc29tZSBvdGhlciBnZW5lcmFsLXB1cnBvc2UgbWFuaXB1bGF0aW9u IGZ1bmN0aW9ucwotCXF1ZXJ5anVtYmxlZnVuY3MuYyAtIGNvbXB1dGUgYSBub2RlIHRyZWUgZm9y IHF1ZXJ5IGp1bWJsaW5nICgqKQorCWp1bWJsZWZ1bmNzLmMgLSBjb21wdXRlIGEgbm9kZSB0cmVl IGZvciBqdW1ibGluZyAoKikKIAogICAgICgqKSAtIE1vc3QgZnVuY3Rpb25zIGluIHRoZXNlIGZp bGVzIGFyZSBnZW5lcmF0ZWQgYnkKICAgICBnZW5fbm9kZV9zdXBwb3J0LnBsIGFuZCAjaW5jbHVk ZSdkIHRoZXJlLgpAQCAtODgsNyArODgsNyBAQCBTdXBwb3NlIHlvdSB3YW50IHRvIGRlZmluZSBh IG5vZGUgRm9vOgogICAgSWYgeW91IGludGVuZCB0byBpbmhlcml0IGZyb20sIHNheSBhIFBsYW4g bm9kZSwgcHV0IFBsYW4gYXMgdGhlIGZpcnN0IGZpZWxkCiAgICBvZiB5b3VyIHN0cnVjdCBkZWZp bml0aW9uLiAgKFRoZSBUX0ZvbyB0YWcgaXMgY3JlYXRlZCBhdXRvbWF0aWNhbGx5LikKIDIuIENo ZWNrIHRoYXQgdGhlIGdlbmVyYXRlZCBzdXBwb3J0IGZ1bmN0aW9ucyBpbiBjb3B5ZnVuY3MuZnVu Y3MuYywKLSAgIGVxdWFsZnVuY3MuZnVuY3MuYywgb3V0ZnVuY3MuZnVuY3MuYywgcXVlcnlqdW1i bGVmdW5jcy5mdW5jcy5jIGFuZAorICAgZXF1YWxmdW5jcy5mdW5jcy5jLCBvdXRmdW5jcy5mdW5j cy5jLCBqdW1ibGVmdW5jcy5mdW5jcy5jIGFuZAogICAgcmVhZGZ1bmNzLmZ1bmNzLmMgbG9vayBj b3JyZWN0LiAgQWRkIGF0dHJpYnV0ZXMgYXMgbmVjZXNzYXJ5IHRvIGNvbnRyb2wgdGhlCiAgICBv dXRjb21lLiAgKEZvciBzb21lIGNsYXNzZXMgb2Ygbm9kZSB0eXBlcywgeW91IGRvbid0IG5lZWQg YWxsIHRoZSBzdXBwb3J0CiAgICBmdW5jdGlvbnMuICBVc2Ugbm9kZSBhdHRyaWJ1dGVzIHNpbWls YXIgdG8gdGhvc2Ugb2YgcmVsYXRlZCBub2RlIHR5cGVzLikKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL25vZGVzL2dlbl9ub2RlX3N1cHBvcnQucGwgYi9zcmMvYmFja2VuZC9ub2Rlcy9nZW5fbm9k ZV9zdXBwb3J0LnBsCmluZGV4IDFhNjU3ZjdlMGEuLjI2ZWM3ZTBkNTkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL25vZGVzL2dlbl9ub2RlX3N1cHBvcnQucGwKKysrIGIvc3JjL2JhY2tlbmQvbm9k ZXMvZ2VuX25vZGVfc3VwcG9ydC5wbApAQCAtMTI0NCwxNSArMTI0NCwxNSBAQCBjbG9zZSAkb2Zz OwogY2xvc2UgJHJmczsKIAogCi0jIHF1ZXJ5anVtYmxlZnVuY3MuYworIyBqdW1ibGVmdW5jcy5j CiAKLXB1c2ggQG91dHB1dF9maWxlcywgJ3F1ZXJ5anVtYmxlZnVuY3MuZnVuY3MuYyc7Ci1vcGVu IG15ICRqZmYsICc+JywgIiRvdXRwdXRfcGF0aC9xdWVyeWp1bWJsZWZ1bmNzLmZ1bmNzLmMkdG1w ZXh0IiBvciBkaWUgJCE7Ci1wdXNoIEBvdXRwdXRfZmlsZXMsICdxdWVyeWp1bWJsZWZ1bmNzLnN3 aXRjaC5jJzsKLW9wZW4gbXkgJGpmcywgJz4nLCAiJG91dHB1dF9wYXRoL3F1ZXJ5anVtYmxlZnVu Y3Muc3dpdGNoLmMkdG1wZXh0IiBvciBkaWUgJCE7CitwdXNoIEBvdXRwdXRfZmlsZXMsICdqdW1i bGVmdW5jcy5mdW5jcy5jJzsKK29wZW4gbXkgJGpmZiwgJz4nLCAiJG91dHB1dF9wYXRoL2p1bWJs ZWZ1bmNzLmZ1bmNzLmMkdG1wZXh0IiBvciBkaWUgJCE7CitwdXNoIEBvdXRwdXRfZmlsZXMsICdq dW1ibGVmdW5jcy5zd2l0Y2guYyc7CitvcGVuIG15ICRqZnMsICc+JywgIiRvdXRwdXRfcGF0aC9q dW1ibGVmdW5jcy5zd2l0Y2guYyR0bXBleHQiIG9yIGRpZSAkITsKIAotcHJpbnRmICRqZmYgJGhl YWRlcl9jb21tZW50LCAncXVlcnlqdW1ibGVmdW5jcy5mdW5jcy5jJzsKLXByaW50ZiAkamZzICRo ZWFkZXJfY29tbWVudCwgJ3F1ZXJ5anVtYmxlZnVuY3Muc3dpdGNoLmMnOworcHJpbnRmICRqZmYg JGhlYWRlcl9jb21tZW50LCAnanVtYmxlZnVuY3MuZnVuY3MuYyc7CitwcmludGYgJGpmcyAkaGVh ZGVyX2NvbW1lbnQsICdqdW1ibGVmdW5jcy5zd2l0Y2guYyc7CiAKIHByaW50ICRqZmYgJG5vZGVf aW5jbHVkZXM7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVu Y3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL2p1bWJsZWZ1bmNzLmMKc2ltaWxhcml0eSBpbmRleCA3 OCUKcmVuYW1lIGZyb20gc3JjL2JhY2tlbmQvbm9kZXMvcXVlcnlqdW1ibGVmdW5jcy5jCnJlbmFt ZSB0byBzcmMvYmFja2VuZC9ub2Rlcy9qdW1ibGVmdW5jcy5jCmluZGV4IGIxMDNhMjgxOTMuLmZj ZjM0YWU0NzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3Mu YworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9qdW1ibGVmdW5jcy5jCkBAIC0xLDMyICsxLDM2IEBA CiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCi0gKiBxdWVyeWp1bWJsZWZ1bmNzLmMKLSAqCSBRdWVy eSBub3JtYWxpemF0aW9uIGFuZCBmaW5nZXJwcmludGluZy4KKyAqIGp1bWJsZWZ1bmNzLmMKKyAq CSBGaW5nZXJwcmludGluZyBhbmQganVtYmxpbmcuCiAgKgotICogTm9ybWFsaXphdGlvbiBpcyBh IHByb2Nlc3Mgd2hlcmVieSBzaW1pbGFyIHF1ZXJpZXMsIHR5cGljYWxseSBkaWZmZXJpbmcgb25s eQotICogaW4gdGhlaXIgY29uc3RhbnRzICh0aG91Z2ggdGhlIGV4YWN0IHJ1bGVzIGFyZSBzb21l d2hhdCBtb3JlIHN1YnRsZSB0aGFuCi0gKiB0aGF0KSBhcmUgcmVjb2duaXplZCBhcyBlcXVpdmFs ZW50LCBhbmQgYXJlIHRyYWNrZWQgYXMgYSBzaW5nbGUgZW50cnkuICBUaGlzCi0gKiBpcyBwYXJ0 aWN1bGFybHkgdXNlZnVsIGZvciBub24tcHJlcGFyZWQgcXVlcmllcy4KKyAqIEZpbmdlcnByaW50 aW5nIHNlbGVjdGl2ZWx5IHNlcmlhbGl6ZXMga2V5IGZpZWxkcyB3aXRoaW4gYSB0cmVlIHN0cnVj dHVyZSwKKyAqIHN1Y2ggYXMgYSBRdWVyeSBvciBQbGFuIHRyZWUsIHRvIGNyZWF0ZSBhIHVuaXF1 ZSBpZGVudGlmaWVyIHdoaWxlIGlnbm9yaW5nCisgKiBleHRyYW5lb3VzIGRldGFpbHMuIFRoZXNl IGVzc2VudGlhbCBmaWVsZHMgYXJlIGNvbmNhdGVuYXRlZCBpbnRvIGEganVtYmxlLAorICogZnJv bSB3aGljaCBhIDY0LWJpdCBoYXNoIGlzIGNvbXB1dGVkLiBVbmxpa2UgcmVndWxhciBzZXJpYWxp emF0aW9uLCB0aGlzCisgKiBhcHByb2FjaCBleGNsdWRlcyBpcnJlbGV2YW50IGluZm9ybWF0aW9u LgogICoKLSAqIE5vcm1hbGl6YXRpb24gaXMgaW1wbGVtZW50ZWQgYnkgZmluZ2VycHJpbnRpbmcg cXVlcmllcywgc2VsZWN0aXZlbHkKLSAqIHNlcmlhbGl6aW5nIHRob3NlIGZpZWxkcyBvZiBlYWNo IHF1ZXJ5IHRyZWUncyBub2RlcyB0aGF0IGFyZSBqdWRnZWQgdG8gYmUKLSAqIGVzc2VudGlhbCB0 byB0aGUgcXVlcnkuICBUaGlzIGlzIHJlZmVycmVkIHRvIGFzIGEgcXVlcnkganVtYmxlLiAgVGhp cyBpcwotICogZGlzdGluY3QgZnJvbSBhIHJlZ3VsYXIgc2VyaWFsaXphdGlvbiBpbiB0aGF0IHZh cmlvdXMgZXh0cmFuZW91cwotICogaW5mb3JtYXRpb24gaXMgaWdub3JlZCBhcyBpcnJlbGV2YW50 IG9yIG5vdCBlc3NlbnRpYWwgdG8gdGhlIHF1ZXJ5LCBzdWNoCi0gKiBhcyB0aGUgY29sbGF0aW9u cyBvZiBWYXJzIGFuZCwgbW9zdCBub3RhYmx5LCB0aGUgdmFsdWVzIG9mIGNvbnN0YW50cy4KKyAq IFVzZSBDYXNlczoKICAqCi0gKiBUaGlzIGp1bWJsZSBpcyBhY3F1aXJlZCBhdCB0aGUgZW5kIG9m IHBhcnNlIGFuYWx5c2lzIG9mIGVhY2ggcXVlcnksIGFuZAotICogYSA2NC1iaXQgaGFzaCBvZiBp dCBpcyBzdG9yZWQgaW50byB0aGUgcXVlcnkncyBRdWVyeS5xdWVyeUlkIGZpZWxkLgotICogVGhl IHNlcnZlciB0aGVuIGNvcGllcyB0aGlzIHZhbHVlIGFyb3VuZCwgbWFraW5nIGl0IGF2YWlsYWJs ZSBpbiBwbGFuCi0gKiB0cmVlKHMpIGdlbmVyYXRlZCBmcm9tIHRoZSBxdWVyeS4gIFRoZSBleGVj dXRvciBjYW4gdGhlbiB1c2UgdGhpcyB2YWx1ZQotICogdG8gYmxhbWUgcXVlcnkgY29zdHMgb24g dGhlIHByb3BlciBxdWVyeUlkLgorICogMS4gSW4tQ29yZSBRdWVyeSBOb3JtYWxpemF0aW9uICYg SWRlbnRpZmljYXRpb24KICAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNSwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKLSAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKiBG aW5nZXJwcmludGluZyBpcyB1c2VkIHRvIG5vcm1hbGl6ZSBxdWVyeSB0cmVlcyBieSBnZW5lcmF0 aW5nIGEgaGFzaCBzdG9yZWQKKyAqIGluIHRoZSBRdWVyeS5xdWVyeUlkIGZpZWxkLiBUaGlzIElE IGlzIHByb3BhZ2F0ZWQgdG8gcGxhbiB0cmVlKHMpLCBhbGxvd2luZworICogdGhlIGV4ZWN1dG9y IHRvIGF0dHJpYnV0ZSBxdWVyeSBjb3N0cyBvbiB0aGUgcHJvcGVyIHF1ZXJ5SWQuIFRoZSBwcm9j ZXNzCisgKiBleGNsdWRlcyBpbmZvcm1hdGlvbiBsaWtlIHR5cG1vZCwgY29sbGF0aW9uLCBhbmQg bW9zdCBub3RhYmx5LCB0aGUgdmFsdWVzCisgKiBvZiBjb25zdGFudHMuCiAgKgorICogRXhhbXBs ZTogVGhlIGZvbGxvd2luZyBxdWVyaWVzIHByb2R1Y2UgdGhlIHNhbWUgcXVlcnlJZDoKKyAqCisg KiBTRUxFQ1QgdC4qIEZST00gczEudCBXSEVSRSBjMSA9IDE7CisgKiBTRUxFQ1QgdC4qIEZST00g czEudCBXSEVSRSBjMSA9IDI7CisgKgorICogMi4gTW9kaWZpZWQganVtYmxpbmcgbG9naWMgZm9y IGV4dGVuc2lvbnMKKyAqCisgKiBFeHRlbnNpb25zIGNhbiBtb2RpZnkgdGhlIGZpbmdlcnByaW50 aW5nIGxvZ2ljIGZvciBxdWVyeUlkLCBvciBmaW5nZXJwcmludAorICogb3RoZXIgdHlwZXMgb2Yg dHJlZXMsIHN1Y2ggYXMgYSBwbGFuIHRyZWUsIHRvIGNvbXB1dGUgYSBwbGFuIGlkZW50aWZpZXIu CiAgKgogICogSURFTlRJRklDQVRJT04KLSAqCSAgc3JjL2JhY2tlbmQvbm9kZXMvcXVlcnlqdW1i bGVmdW5jcy5jCisgKgkgIHNyYy9iYWNrZW5kL25vZGVzL2p1bWJsZWZ1bmNzLmMKICAqCiAgKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAqLwpAQCAtMzQsNyArMzgsNyBAQAogCiAjaW5jbHVkZSAiY29tbW9u L2hhc2hmbi5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgotI2luY2x1ZGUgIm5vZGVzL3F1ZXJ5 anVtYmxlLmgiCisjaW5jbHVkZSAibm9kZXMvanVtYmxlLmgiCiAjaW5jbHVkZSAicGFyc2VyL3Nj YW5zdXAuaCIKIAogI2RlZmluZSBKVU1CTEVfU0laRQkJCQkxMDI0CS8qIHF1ZXJ5IHNlcmlhbGl6 YXRpb24gYnVmZmVyIHNpemUgKi8KQEAgLTUxLDEwICs1NSw3IEBAIGludAkJCWNvbXB1dGVfcXVl cnlfaWQgPSBDT01QVVRFX1FVRVJZX0lEX0FVVE87CiAgKi8KIGJvb2wJCXF1ZXJ5X2lkX2VuYWJs ZWQgPSBmYWxzZTsKIAotc3RhdGljIHZvaWQgQXBwZW5kSnVtYmxlKEp1bWJsZVN0YXRlICpqc3Rh dGUsCi0JCQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqaXRlbSwgU2l6ZSBzaXplKTsKIHN0YXRp YyB2b2lkIFJlY29yZENvbnN0TG9jYXRpb24oSnVtYmxlU3RhdGUgKmpzdGF0ZSwgaW50IGxvY2F0 aW9uKTsKLXN0YXRpYyB2b2lkIF9qdW1ibGVOb2RlKEp1bWJsZVN0YXRlICpqc3RhdGUsIE5vZGUg Km5vZGUpOwogc3RhdGljIHZvaWQgX2p1bWJsZUFfQ29uc3QoSnVtYmxlU3RhdGUgKmpzdGF0ZSwg Tm9kZSAqbm9kZSk7CiBzdGF0aWMgdm9pZCBfanVtYmxlTGlzdChKdW1ibGVTdGF0ZSAqanN0YXRl LCBOb2RlICpub2RlKTsKIHN0YXRpYyB2b2lkIF9qdW1ibGVWYXJpYWJsZVNldFN0bXQoSnVtYmxl U3RhdGUgKmpzdGF0ZSwgTm9kZSAqbm9kZSk7CkBAIC0xMDksMjggKzExMCw0MiBAQCBDbGVhblF1 ZXJ5dGV4dChjb25zdCBjaGFyICpxdWVyeSwgaW50ICpsb2NhdGlvbiwgaW50ICpsZW4pCiB9CiAK IEp1bWJsZVN0YXRlICoKLUp1bWJsZVF1ZXJ5KFF1ZXJ5ICpxdWVyeSkKK0luaXRpYWxpemVKdW1i bGVTdGF0ZShib29sIHJlY29yZF9jbG9jYXRpb25zKQogewotCUp1bWJsZVN0YXRlICpqc3RhdGUg PSBOVUxMOwotCi0JQXNzZXJ0KElzUXVlcnlJZEVuYWJsZWQoKSk7Ci0KLQlqc3RhdGUgPSAoSnVt YmxlU3RhdGUgKikgcGFsbG9jKHNpemVvZihKdW1ibGVTdGF0ZSkpOworCUp1bWJsZVN0YXRlICpq c3RhdGUgPSAoSnVtYmxlU3RhdGUgKikgcGFsbG9jMChzaXplb2YoSnVtYmxlU3RhdGUpKTsKIAog CS8qIFNldCB1cCB3b3Jrc3BhY2UgZm9yIHF1ZXJ5IGp1bWJsaW5nICovCiAJanN0YXRlLT5qdW1i bGUgPSAodW5zaWduZWQgY2hhciAqKSBwYWxsb2MoSlVNQkxFX1NJWkUpOwogCWpzdGF0ZS0+anVt YmxlX2xlbiA9IDA7Ci0JanN0YXRlLT5jbG9jYXRpb25zX2J1Zl9zaXplID0gMzI7Ci0JanN0YXRl LT5jbG9jYXRpb25zID0gKExvY2F0aW9uTGVuICopCi0JCXBhbGxvYyhqc3RhdGUtPmNsb2NhdGlv bnNfYnVmX3NpemUgKiBzaXplb2YoTG9jYXRpb25MZW4pKTsKLQlqc3RhdGUtPmNsb2NhdGlvbnNf Y291bnQgPSAwOwotCWpzdGF0ZS0+aGlnaGVzdF9leHRlcm5fcGFyYW1faWQgPSAwOworCisJaWYg KHJlY29yZF9jbG9jYXRpb25zKQorCXsKKwkJanN0YXRlLT5jbG9jYXRpb25zX2J1Zl9zaXplID0g MzI7CisJCWpzdGF0ZS0+Y2xvY2F0aW9ucyA9IChMb2NhdGlvbkxlbiAqKQorCQkJcGFsbG9jKGpz dGF0ZS0+Y2xvY2F0aW9uc19idWZfc2l6ZSAqIHNpemVvZihMb2NhdGlvbkxlbikpOworCX0KKwor CXJldHVybiBqc3RhdGU7Cit9CisKK3VpbnQ2NAorSGFzaEp1bWJsZVN0YXRlKEp1bWJsZVN0YXRl ICpqc3RhdGUpCit7CisJcmV0dXJuIERhdHVtR2V0VUludDY0KGhhc2hfYW55X2V4dGVuZGVkKGpz dGF0ZS0+anVtYmxlLAorCQkJCQkJCQkJCQlqc3RhdGUtPmp1bWJsZV9sZW4sCisJCQkJCQkJCQkJ CTApKTsKK30KKworSnVtYmxlU3RhdGUgKgorSnVtYmxlUXVlcnkoUXVlcnkgKnF1ZXJ5KQorewor CUp1bWJsZVN0YXRlICpqc3RhdGUgPSBJbml0aWFsaXplSnVtYmxlU3RhdGUodHJ1ZSk7CisKKwlB c3NlcnQoSXNRdWVyeUlkRW5hYmxlZCgpKTsKIAogCS8qIENvbXB1dGUgcXVlcnkgSUQgYW5kIG1h cmsgdGhlIFF1ZXJ5IG5vZGUgd2l0aCBpdCAqLwotCV9qdW1ibGVOb2RlKGpzdGF0ZSwgKE5vZGUg KikgcXVlcnkpOwotCXF1ZXJ5LT5xdWVyeUlkID0gRGF0dW1HZXRVSW50NjQoaGFzaF9hbnlfZXh0 ZW5kZWQoanN0YXRlLT5qdW1ibGUsCi0JCQkJCQkJCQkJCQkJICBqc3RhdGUtPmp1bWJsZV9sZW4s Ci0JCQkJCQkJCQkJCQkJICAwKSk7CisJSnVtYmxlTm9kZShqc3RhdGUsIChOb2RlICopIHF1ZXJ5 KTsKKwlxdWVyeS0+cXVlcnlJZCA9IEhhc2hKdW1ibGVTdGF0ZShqc3RhdGUpOwogCiAJLyoKIAkg KiBJZiB3ZSBhcmUgdW5sdWNreSBlbm91Z2ggdG8gZ2V0IGEgaGFzaCBvZiB6ZXJvLCB1c2UgMSBp bnN0ZWFkIGZvcgpAQCAtMTY0LDcgKzE3OSw3IEBAIEVuYWJsZVF1ZXJ5SWQodm9pZCkKICAqIEFw cGVuZEp1bWJsZTogQXBwZW5kIGEgdmFsdWUgdGhhdCBpcyBzdWJzdGFudGl2ZSBpbiBhIGdpdmVu IHF1ZXJ5IHRvCiAgKiB0aGUgY3VycmVudCBqdW1ibGUuCiAgKi8KLXN0YXRpYyB2b2lkCit2b2lk CiBBcHBlbmRKdW1ibGUoSnVtYmxlU3RhdGUgKmpzdGF0ZSwgY29uc3QgdW5zaWduZWQgY2hhciAq aXRlbSwgU2l6ZSBzaXplKQogewogCXVuc2lnbmVkIGNoYXIgKmp1bWJsZSA9IGpzdGF0ZS0+anVt YmxlOwpAQCAtMjA1LDcgKzIyMCw3IEBAIHN0YXRpYyB2b2lkCiBSZWNvcmRDb25zdExvY2F0aW9u KEp1bWJsZVN0YXRlICpqc3RhdGUsIGludCBsb2NhdGlvbikKIHsKIAkvKiAtMSBpbmRpY2F0ZXMg dW5rbm93biBvciB1bmRlZmluZWQgbG9jYXRpb24gKi8KLQlpZiAobG9jYXRpb24gPj0gMCkKKwlp ZiAobG9jYXRpb24gPj0gMCAmJiBqc3RhdGUtPmNsb2NhdGlvbnNfYnVmX3NpemUgPiAwKQogCXsK IAkJLyogZW5sYXJnZSBhcnJheSBpZiBuZWVkZWQgKi8KIAkJaWYgKGpzdGF0ZS0+Y2xvY2F0aW9u c19jb3VudCA+PSBqc3RhdGUtPmNsb2NhdGlvbnNfYnVmX3NpemUpCkBAIC0yMjQsNyArMjM5LDcg QEAgUmVjb3JkQ29uc3RMb2NhdGlvbihKdW1ibGVTdGF0ZSAqanN0YXRlLCBpbnQgbG9jYXRpb24p CiB9CiAKICNkZWZpbmUgSlVNQkxFX05PREUoaXRlbSkgXAotCV9qdW1ibGVOb2RlKGpzdGF0ZSwg KE5vZGUgKikgZXhwci0+aXRlbSkKKwlKdW1ibGVOb2RlKGpzdGF0ZSwgKE5vZGUgKikgZXhwci0+ aXRlbSkKICNkZWZpbmUgSlVNQkxFX0xPQ0FUSU9OKGxvY2F0aW9uKSBcCiAJUmVjb3JkQ29uc3RM b2NhdGlvbihqc3RhdGUsIGV4cHItPmxvY2F0aW9uKQogI2RlZmluZSBKVU1CTEVfRklFTEQoaXRl bSkgXApAQCAtMjM3LDEwICsyNTIsMTAgQEAgZG8geyBcCiAJCUFwcGVuZEp1bWJsZShqc3RhdGUs IChjb25zdCB1bnNpZ25lZCBjaGFyICopIChleHByLT5zdHIpLCBzdHJsZW4oZXhwci0+c3RyKSAr IDEpOyBcCiB9IHdoaWxlKDApCiAKLSNpbmNsdWRlICJxdWVyeWp1bWJsZWZ1bmNzLmZ1bmNzLmMi CisjaW5jbHVkZSAianVtYmxlZnVuY3MuZnVuY3MuYyIKIAotc3RhdGljIHZvaWQKLV9qdW1ibGVO b2RlKEp1bWJsZVN0YXRlICpqc3RhdGUsIE5vZGUgKm5vZGUpCit2b2lkCitKdW1ibGVOb2RlKEp1 bWJsZVN0YXRlICpqc3RhdGUsIE5vZGUgKm5vZGUpCiB7CiAJTm9kZQkgICAqZXhwciA9IG5vZGU7 CiAKQEAgLTI1OCw3ICsyNzMsNyBAQCBfanVtYmxlTm9kZShKdW1ibGVTdGF0ZSAqanN0YXRlLCBO b2RlICpub2RlKQogCiAJc3dpdGNoIChub2RlVGFnKGV4cHIpKQogCXsKLSNpbmNsdWRlICJxdWVy eWp1bWJsZWZ1bmNzLnN3aXRjaC5jIgorI2luY2x1ZGUgImp1bWJsZWZ1bmNzLnN3aXRjaC5jIgog CiAJCWNhc2UgVF9MaXN0OgogCQljYXNlIFRfSW50TGlzdDoKQEAgLTMwNSw3ICszMjAsNyBAQCBf anVtYmxlTGlzdChKdW1ibGVTdGF0ZSAqanN0YXRlLCBOb2RlICpub2RlKQogCXsKIAkJY2FzZSBU X0xpc3Q6CiAJCQlmb3JlYWNoKGwsIGV4cHIpCi0JCQkJX2p1bWJsZU5vZGUoanN0YXRlLCBsZmly c3QobCkpOworCQkJCUp1bWJsZU5vZGUoanN0YXRlLCBsZmlyc3QobCkpOwogCQkJYnJlYWs7CiAJ CWNhc2UgVF9JbnRMaXN0OgogCQkJZm9yZWFjaChsLCBleHByKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvbm9kZXMvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9ub2Rlcy9tZXNvbi5idWlsZApp bmRleCA5YTFjMWI3Yjk4Li5iN2ViYjg2YmFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rl cy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9tZXNvbi5idWlsZApAQCAtMTks NyArMTksNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiBub2RlZnVuY19zb3VyY2VzID0g ZmlsZXMoCiAgICdjb3B5ZnVuY3MuYycsCiAgICdlcXVhbGZ1bmNzLmMnLAotICAncXVlcnlqdW1i bGVmdW5jcy5jJywKKyAgJ2p1bWJsZWZ1bmNzLmMnLAogICAnb3V0ZnVuY3MuYycsCiAgICdyZWFk ZnVuY3MuYycsCiApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCA3NmY1OGIzYWNhLi5jZDIzNTkyMWI0 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9ub2Rl RnVuY3MuaCIKLSNpbmNsdWRlICJub2Rlcy9xdWVyeWp1bWJsZS5oIgorI2luY2x1ZGUgIm5vZGVz L2p1bWJsZS5oIgogI2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJw YXJzZXIvYW5hbHl6ZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9hZ2cuaCIKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvbGF1bmNoX2JhY2tlbmQuYyBiL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvbGF1bmNoX2JhY2tlbmQuYwppbmRleCBhOTdhMWVkYTZkLi5iMTI3YjFiZWYz IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2xhdW5jaF9iYWNrZW5kLmMKKysr IGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9sYXVuY2hfYmFja2VuZC5jCkBAIC01Myw3ICs1Myw3 IEBACiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKIAogI2lmZGVmIEVYRUNfQkFDS0VORAot I2luY2x1ZGUgIm5vZGVzL3F1ZXJ5anVtYmxlLmgiCisjaW5jbHVkZSAibm9kZXMvanVtYmxlLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9wZ19zaG1lbS5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc3Bpbi5o IgogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IGNlNzUzNGQ0ZDIu LjlhMjI1MTJmZWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxl cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC01MCw3ICs1 MCw3IEBACiAjaW5jbHVkZSAibGlicHEvYXV0aC5oIgogI2luY2x1ZGUgImxpYnBxL2xpYnBxLmgi CiAjaW5jbHVkZSAibGlicHEvc2NyYW0uaCIKLSNpbmNsdWRlICJub2Rlcy9xdWVyeWp1bWJsZS5o IgorI2luY2x1ZGUgIm5vZGVzL2p1bWJsZS5oIgogI2luY2x1ZGUgIm9wdGltaXplci9jb3N0Lmgi CiAjaW5jbHVkZSAib3B0aW1pemVyL2dlcW8uaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1p emVyLmgiCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9xdWVyeWp1bWJsZS5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvanVtYmxlLmgKc2ltaWxhcml0eSBpbmRleCA4MCUKcmVuYW1lIGZyb20g c3JjL2luY2x1ZGUvbm9kZXMvcXVlcnlqdW1ibGUuaApyZW5hbWUgdG8gc3JjL2luY2x1ZGUvbm9k ZXMvanVtYmxlLmgKaW5kZXggNTBlYjk1NjY1OC4uNzU4N2M5ZjcwOCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcXVlcnlqdW1ibGUuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9qdW1i bGUuaApAQCAtMSwxOCArMSwxOCBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgotICogcXVlcnlq dW1ibGUuaAotICoJICBRdWVyeSBub3JtYWxpemF0aW9uIGFuZCBmaW5nZXJwcmludGluZy4KKyAq IGp1bWJsZS5oCisgKgkgIEZpbmdlcnByaW50aW5nIGFuZCBqdW1ibGluZy4KICAqCiAgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUg VW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCiAgKgogICogSURFTlRJRklDQVRJT04KLSAqCSAgc3Jj L2luY2x1ZGUvbm9kZXMvcXVlcnlqdW1ibGUuaAorICoJICBzcmMvaW5jbHVkZS9ub2Rlcy9qdW1i bGUuaAogICoKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCi0jaWZuZGVmIFFVRVJZSlVNQkxFX0gK LSNkZWZpbmUgUVVFUllKVU1CTEVfSAorI2lmbmRlZiBKVU1CTEVfSAorI2RlZmluZSBKVU1CTEVf SAogCiAjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgogCkBAIC04Myw0ICs4MywxMCBAQCBJ c1F1ZXJ5SWRFbmFibGVkKHZvaWQpCiAJcmV0dXJuIHF1ZXJ5X2lkX2VuYWJsZWQ7CiB9CiAKLSNl bmRpZgkJCQkJCQkvKiBRVUVSWUpVTUJMRV9IICovCisvKiBGdW5jdGlvbnMgY2FsbGVkIGZvciBw bGFuIGp1bWJsaW5nIG9yIGV4dGVuc2lvbnMgZG9pbmcgdGhlaXIgb3duIGp1bWJsaW5nICovCitl eHRlcm4gSnVtYmxlU3RhdGUgKkluaXRpYWxpemVKdW1ibGVTdGF0ZShib29sIHJlY29yZF9jbG9j YXRpb25zKTsKK2V4dGVybiB2b2lkIEFwcGVuZEp1bWJsZShKdW1ibGVTdGF0ZSAqanN0YXRlLCBj b25zdCB1bnNpZ25lZCBjaGFyICppdGVtLCBTaXplIHNpemUpOworZXh0ZXJuIHZvaWQgSnVtYmxl Tm9kZShKdW1ibGVTdGF0ZSAqanN0YXRlLCBOb2RlICpub2RlKTsKK2V4dGVybiB1aW50NjQgSGFz aEp1bWJsZVN0YXRlKEp1bWJsZVN0YXRlICpqc3RhdGUpOworCisjZW5kaWYJCQkJCQkJLyogSlVN QkxFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL21lc29uLmJ1aWxkIGIvc3Jj L2luY2x1ZGUvbm9kZXMvbWVzb24uYnVpbGQKaW5kZXggZDFjYTI0ZGQzMi4uNWMwZWU1YjBmNiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvbWVzb24uYnVpbGQKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvbWVzb24uYnVpbGQKQEAgLTM3LDcgKzM3LDcgQEAgbm9kZV9zdXBwb3J0X291dHB1 dCA9IFsKICAgJ3JlYWRmdW5jcy5mdW5jcy5jJywgJ3JlYWRmdW5jcy5zd2l0Y2guYycsCiAgICdj b3B5ZnVuY3MuZnVuY3MuYycsICdjb3B5ZnVuY3Muc3dpdGNoLmMnLAogICAnZXF1YWxmdW5jcy5m dW5jcy5jJywgJ2VxdWFsZnVuY3Muc3dpdGNoLmMnLAotICAncXVlcnlqdW1ibGVmdW5jcy5mdW5j cy5jJywgJ3F1ZXJ5anVtYmxlZnVuY3Muc3dpdGNoLmMnLAorICAnanVtYmxlZnVuY3MuZnVuY3Mu YycsICdqdW1ibGVmdW5jcy5zd2l0Y2guYycsCiBdCiBub2RlX3N1cHBvcnRfaW5zdGFsbCA9IFsK ICAgZGlyX2luY2x1ZGVfc2VydmVyIC8gJ25vZGVzJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L25vZGVzL25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oCmluZGV4IDU4MDIzOGJm YWIuLjczMzBkNWZmYzQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL25vZGVzLmgKKysr IGIvc3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaApAQCAtNTMsNyArNTMsNyBAQCB0eXBlZGVmIGVu dW0gTm9kZVRhZwogICogLSBjdXN0b21fcmVhZF93cml0ZTogSGFzIGN1c3RvbSBpbXBsZW1lbnRh dGlvbnMgaW4gb3V0ZnVuY3MuYyBhbmQKICAqICAgcmVhZGZ1bmNzLmMuCiAgKgotICogLSBjdXN0 b21fcXVlcnlfanVtYmxlOiBIYXMgY3VzdG9tIGltcGxlbWVudGF0aW9uIGluIHF1ZXJ5anVtYmxl ZnVuY3MuYy4KKyAqIC0gY3VzdG9tX3F1ZXJ5X2p1bWJsZTogSGFzIGN1c3RvbSBpbXBsZW1lbnRh dGlvbiBpbiBqdW1ibGVmdW5jcy5jLgogICoKICAqIC0gbm9fY29weTogRG9lcyBub3Qgc3VwcG9y dCBjb3B5T2JqZWN0KCkgYXQgYWxsLgogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNl ci9hbmFseXplLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCmluZGV4IGYxYmQxOGM0 OWYuLmU0MTRiNjMwYmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmgK KysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaApAQCAtMTUsNyArMTUsNyBAQAogI2Rl ZmluZSBBTkFMWVpFX0gKIAogI2luY2x1ZGUgIm5vZGVzL3BhcmFtcy5oIgotI2luY2x1ZGUgIm5v ZGVzL3F1ZXJ5anVtYmxlLmgiCisjaW5jbHVkZSAibm9kZXMvanVtYmxlLmgiCiAjaW5jbHVkZSAi cGFyc2VyL3BhcnNlX25vZGUuaCIKIAogLyogSG9vayBmb3IgcGx1Z2lucyB0byBnZXQgY29udHJv bCBhdCBlbmQgb2YgcGFyc2UgYW5hbHlzaXMgKi8KLS0gCjIuNDcuMQoK --000000000000a01605062d839e08 Content-Type: application/octet-stream; name="v5-0001-reformat-comments-in-plannode.h.patch" Content-Disposition: attachment; filename="v5-0001-reformat-comments-in-plannode.h.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6u3whi50 RnJvbSA2ZjNkMDI1MGNhMTNjNjM2OGQyYjhlZTEwYThiMTQ3Njg1MDg5MDJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiU2FtaSBJbXNlaWggKEFXUykiCiA8c2ltc2VpaEBkZXYtZHNr LXNpbXNlaWgtMWQtMzk0MGI3OWUudXMtZWFzdC0xLmFtYXpvbi5jb20+CkRhdGU6IEZyaSwgNyBG ZWIgMjAyNSAwMDoyNzo1MiArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjUgMS80XSByZWZvcm1hdCBj b21tZW50cyBpbiBwbGFubm9kZS5oCgpTaW1pbGFyIHRvIGQ1NzUwNTFiOWFmOSwgcmVmb3JtYXQg Y29tbWVudHMgaW4gcGxhbm5vZGVzLmggdG8gYXZvaWQKbG9uZyBsaW5lcy4KClRoaXMgbWFrZXMg cm9vbSBmb3IgcGVyLWZpZWxkIGFubm90YXRpb25zIGluIGEgZnV0dXJlIHBhdGNoIHRvCmdlbmVy YXRlIG5vZGUgc3VwcG9ydCBmdW5jdGlvbnMgYXV0b21hdGljYWxseS4KCkRpc2N1c3Npb246IGh0 dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvWjV4VGI1aUJIVkduczM1UiU0MHBh cXVpZXIueHl6Ci0tLQogc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggfCA0MjYgKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI3OSBpbnNlcnRp b25zKCspLCAxNDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMv cGxhbm5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCAwNmQ5NTU5 ZWJiLi4xZTA4MmJmZGNkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtNDksNTcgKzQ5LDc4IEBA IHR5cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAKIAlOb2RlVGFnCQl0eXBlOwogCi0JQ21kVHlw ZQkJY29tbWFuZFR5cGU7CS8qIHNlbGVjdHxpbnNlcnR8dXBkYXRlfGRlbGV0ZXxtZXJnZXx1dGls aXR5ICovCisJLyogc2VsZWN0fGluc2VydHx1cGRhdGV8ZGVsZXRlfG1lcmdlfHV0aWxpdHkgKi8K KwlDbWRUeXBlCQljb21tYW5kVHlwZTsKIAotCXVpbnQ2NAkJcXVlcnlJZDsJCS8qIHF1ZXJ5IGlk ZW50aWZpZXIgKGNvcGllZCBmcm9tIFF1ZXJ5KSAqLworCS8qIHF1ZXJ5IGlkZW50aWZpZXIgKGNv cGllZCBmcm9tIFF1ZXJ5KSAqLworCXVpbnQ2NAkJcXVlcnlJZDsKIAotCWJvb2wJCWhhc1JldHVy bmluZzsJLyogaXMgaXQgaW5zZXJ0fHVwZGF0ZXxkZWxldGV8bWVyZ2UgUkVUVVJOSU5HPyAqLwor CS8qIGlzIGl0IGluc2VydHx1cGRhdGV8ZGVsZXRlfG1lcmdlIFJFVFVSTklORz8gKi8KKwlib29s CQloYXNSZXR1cm5pbmc7CiAKLQlib29sCQloYXNNb2RpZnlpbmdDVEU7CS8qIGhhcyBpbnNlcnR8 dXBkYXRlfGRlbGV0ZXxtZXJnZSBpbiBXSVRIPyAqLworCS8qIGhhcyBpbnNlcnR8dXBkYXRlfGRl bGV0ZXxtZXJnZSBpbiBXSVRIPyAqLworCWJvb2wJCWhhc01vZGlmeWluZ0NURTsKIAotCWJvb2wJ CWNhblNldFRhZzsJCS8qIGRvIEkgc2V0IHRoZSBjb21tYW5kIHJlc3VsdCB0YWc/ICovCisJLyog ZG8gSSBzZXQgdGhlIGNvbW1hbmQgcmVzdWx0IHRhZz8gKi8KKwlib29sCQljYW5TZXRUYWc7CiAK LQlib29sCQl0cmFuc2llbnRQbGFuOwkvKiByZWRvIHBsYW4gd2hlbiBUcmFuc2FjdGlvblhtaW4g Y2hhbmdlcz8gKi8KKwkvKiByZWRvIHBsYW4gd2hlbiBUcmFuc2FjdGlvblhtaW4gY2hhbmdlcz8g Ki8KKwlib29sCQl0cmFuc2llbnRQbGFuOwogCi0JYm9vbAkJZGVwZW5kc09uUm9sZTsJLyogaXMg cGxhbiBzcGVjaWZpYyB0byBjdXJyZW50IHJvbGU/ICovCisJLyogaXMgcGxhbiBzcGVjaWZpYyB0 byBjdXJyZW50IHJvbGU/ICovCisJYm9vbAkJZGVwZW5kc09uUm9sZTsKIAotCWJvb2wJCXBhcmFs bGVsTW9kZU5lZWRlZDsgLyogcGFyYWxsZWwgbW9kZSByZXF1aXJlZCB0byBleGVjdXRlPyAqLwor CS8qIHBhcmFsbGVsIG1vZGUgcmVxdWlyZWQgdG8gZXhlY3V0ZT8gKi8KKwlib29sCQlwYXJhbGxl bE1vZGVOZWVkZWQ7CiAKLQlpbnQJCQlqaXRGbGFnczsJCS8qIHdoaWNoIGZvcm1zIG9mIEpJVCBz aG91bGQgYmUgcGVyZm9ybWVkICovCisJLyogd2hpY2ggZm9ybXMgb2YgSklUIHNob3VsZCBiZSBw ZXJmb3JtZWQgKi8KKwlpbnQJCQlqaXRGbGFnczsKIAotCXN0cnVjdCBQbGFuICpwbGFuVHJlZTsJ CS8qIHRyZWUgb2YgUGxhbiBub2RlcyAqLworCS8qIHRyZWUgb2YgUGxhbiBub2RlcyAqLworCXN0 cnVjdCBQbGFuICpwbGFuVHJlZTsKIAotCUxpc3QJICAgKnBhcnRQcnVuZUluZm9zOyAvKiBMaXN0 IG9mIFBhcnRpdGlvblBydW5lSW5mbyBjb250YWluZWQgaW4gdGhlCi0JCQkJCQkJCSAqIHBsYW4g Ki8KKwkvKiBMaXN0IG9mIFBhcnRpdGlvblBydW5lSW5mbyBjb250YWluZWQgaW4gdGhlIHBsYW4g Ki8KKwlMaXN0CSAgICpwYXJ0UHJ1bmVJbmZvczsKIAotCUxpc3QJICAgKnJ0YWJsZTsJCQkvKiBs aXN0IG9mIFJhbmdlVGJsRW50cnkgbm9kZXMgKi8KKwkvKiBsaXN0IG9mIFJhbmdlVGJsRW50cnkg bm9kZXMgKi8KKwlMaXN0CSAgICpydGFibGU7CiAKLQlMaXN0CSAgICpwZXJtSW5mb3M7CQkvKiBs aXN0IG9mIFJURVBlcm1pc3Npb25JbmZvIG5vZGVzIGZvciBydGFibGUKLQkJCQkJCQkJICogZW50 cmllcyBuZWVkaW5nIG9uZSAqLworCS8qIGxpc3Qgb2YgUlRFUGVybWlzc2lvbkluZm8gbm9kZXMg Zm9yIHJ0YWJsZSBlbnRyaWVzIG5lZWRpbmcgb25lICovCisJTGlzdAkgICAqcGVybUluZm9zOwog CiAJLyogcnRhYmxlIGluZGV4ZXMgb2YgdGFyZ2V0IHJlbGF0aW9ucyBmb3IgSU5TRVJUL1VQREFU RS9ERUxFVEUvTUVSR0UgKi8KLQlMaXN0CSAgICpyZXN1bHRSZWxhdGlvbnM7CS8qIGludGVnZXIg bGlzdCBvZiBSVCBpbmRleGVzLCBvciBOSUwgKi8KKwkvKiBpbnRlZ2VyIGxpc3Qgb2YgUlQgaW5k ZXhlcywgb3IgTklMICovCisJTGlzdAkgICAqcmVzdWx0UmVsYXRpb25zOwogCi0JTGlzdAkgICAq YXBwZW5kUmVsYXRpb25zOwkvKiBsaXN0IG9mIEFwcGVuZFJlbEluZm8gbm9kZXMgKi8KKwkvKiBs aXN0IG9mIEFwcGVuZFJlbEluZm8gbm9kZXMgKi8KKwlMaXN0CSAgICphcHBlbmRSZWxhdGlvbnM7 CiAKLQlMaXN0CSAgICpzdWJwbGFuczsJCS8qIFBsYW4gdHJlZXMgZm9yIFN1YlBsYW4gZXhwcmVz c2lvbnM7IG5vdGUKLQkJCQkJCQkJICogdGhhdCBzb21lIGNvdWxkIGJlIE5VTEwgKi8KKwkvKiBQ bGFuIHRyZWVzIGZvciBTdWJQbGFuIGV4cHJlc3Npb25zOyBub3RlIHRoYXQgc29tZSBjb3VsZCBi ZSBOVUxMICovCisJTGlzdAkgICAqc3VicGxhbnM7CiAKLQlCaXRtYXBzZXQgICpyZXdpbmRQbGFu SURzOwkvKiBpbmRpY2VzIG9mIHN1YnBsYW5zIHRoYXQgcmVxdWlyZSBSRVdJTkQgKi8KKwkvKiBp bmRpY2VzIG9mIHN1YnBsYW5zIHRoYXQgcmVxdWlyZSBSRVdJTkQgKi8KKwlCaXRtYXBzZXQgICpy ZXdpbmRQbGFuSURzOwogCi0JTGlzdAkgICAqcm93TWFya3M7CQkvKiBhIGxpc3Qgb2YgUGxhblJv d01hcmsncyAqLworCS8qIGEgbGlzdCBvZiBQbGFuUm93TWFyaydzICovCisJTGlzdAkgICAqcm93 TWFya3M7CiAKLQlMaXN0CSAgICpyZWxhdGlvbk9pZHM7CS8qIE9JRHMgb2YgcmVsYXRpb25zIHRo ZSBwbGFuIGRlcGVuZHMgb24gKi8KKwkvKiBPSURzIG9mIHJlbGF0aW9ucyB0aGUgcGxhbiBkZXBl bmRzIG9uICovCisJTGlzdAkgICAqcmVsYXRpb25PaWRzOwogCi0JTGlzdAkgICAqaW52YWxJdGVt czsJCS8qIG90aGVyIGRlcGVuZGVuY2llcywgYXMgUGxhbkludmFsSXRlbXMgKi8KKwkvKiBvdGhl ciBkZXBlbmRlbmNpZXMsIGFzIFBsYW5JbnZhbEl0ZW1zICovCisJTGlzdAkgICAqaW52YWxJdGVt czsKIAotCUxpc3QJICAgKnBhcmFtRXhlY1R5cGVzOyAvKiB0eXBlIE9JRHMgZm9yIFBBUkFNX0VY RUMgUGFyYW1zICovCisJLyogdHlwZSBPSURzIGZvciBQQVJBTV9FWEVDIFBhcmFtcyAqLworCUxp c3QJICAgKnBhcmFtRXhlY1R5cGVzOwogCi0JTm9kZQkgICAqdXRpbGl0eVN0bXQ7CS8qIG5vbi1u dWxsIGlmIHRoaXMgaXMgdXRpbGl0eSBzdG10ICovCisJLyogbm9uLW51bGwgaWYgdGhpcyBpcyB1 dGlsaXR5IHN0bXQgKi8KKwlOb2RlCSAgICp1dGlsaXR5U3RtdDsKIAogCS8qIHN0YXRlbWVudCBs b2NhdGlvbiBpbiBzb3VyY2Ugc3RyaW5nIChjb3BpZWQgZnJvbSBRdWVyeSkgKi8KLQlQYXJzZUxv YwlzdG10X2xvY2F0aW9uOwkvKiBzdGFydCBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwot CVBhcnNlTG9jCXN0bXRfbGVuOwkJLyogbGVuZ3RoIGluIGJ5dGVzOyAwIG1lYW5zICJyZXN0IG9m IHN0cmluZyIgKi8KKwkvKiBzdGFydCBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLworCVBh cnNlTG9jCXN0bXRfbG9jYXRpb247CisJLyogbGVuZ3RoIGluIGJ5dGVzOyAwIG1lYW5zICJyZXN0 IG9mIHN0cmluZyIgKi8KKwlQYXJzZUxvYwlzdG10X2xlbjsKIH0gUGxhbm5lZFN0bXQ7CiAKIC8q IG1hY3JvIGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3NvY2lhdGVkIHdpdGggYSBTdWJQbGFuIG5v ZGUgKi8KQEAgLTEyOCwzNyArMTQ5LDQ5IEBAIHR5cGVkZWYgc3RydWN0IFBsYW4KIAkvKgogCSAq IGVzdGltYXRlZCBleGVjdXRpb24gY29zdHMgZm9yIHBsYW4gKHNlZSBjb3N0c2l6ZS5jIGZvciBt b3JlIGluZm8pCiAJICovCi0JaW50CQkJZGlzYWJsZWRfbm9kZXM7IC8qIGNvdW50IG9mIGRpc2Fi bGVkIG5vZGVzICovCi0JQ29zdAkJc3RhcnR1cF9jb3N0OwkvKiBjb3N0IGV4cGVuZGVkIGJlZm9y ZSBmZXRjaGluZyBhbnkgdHVwbGVzICovCi0JQ29zdAkJdG90YWxfY29zdDsJCS8qIHRvdGFsIGNv c3QgKGFzc3VtaW5nIGFsbCB0dXBsZXMgZmV0Y2hlZCkgKi8KKwkvKiBjb3VudCBvZiBkaXNhYmxl ZCBub2RlcyAqLworCWludAkJCWRpc2FibGVkX25vZGVzOworCS8qIGNvc3QgZXhwZW5kZWQgYmVm b3JlIGZldGNoaW5nIGFueSB0dXBsZXMgKi8KKwlDb3N0CQlzdGFydHVwX2Nvc3Q7CisJLyogdG90 YWwgY29zdCAoYXNzdW1pbmcgYWxsIHR1cGxlcyBmZXRjaGVkKSAqLworCUNvc3QJCXRvdGFsX2Nv c3Q7CiAKIAkvKgogCSAqIHBsYW5uZXIncyBlc3RpbWF0ZSBvZiByZXN1bHQgc2l6ZSBvZiB0aGlz IHBsYW4gc3RlcAogCSAqLwotCUNhcmRpbmFsaXR5IHBsYW5fcm93czsJCS8qIG51bWJlciBvZiBy b3dzIHBsYW4gaXMgZXhwZWN0ZWQgdG8gZW1pdCAqLwotCWludAkJCXBsYW5fd2lkdGg7CQkvKiBh dmVyYWdlIHJvdyB3aWR0aCBpbiBieXRlcyAqLworCS8qIG51bWJlciBvZiByb3dzIHBsYW4gaXMg ZXhwZWN0ZWQgdG8gZW1pdCAqLworCUNhcmRpbmFsaXR5IHBsYW5fcm93czsKKwkvKiBhdmVyYWdl IHJvdyB3aWR0aCBpbiBieXRlcyAqLworCWludAkJCXBsYW5fd2lkdGg7CiAKIAkvKgogCSAqIGlu Zm9ybWF0aW9uIG5lZWRlZCBmb3IgcGFyYWxsZWwgcXVlcnkKIAkgKi8KLQlib29sCQlwYXJhbGxl bF9hd2FyZTsgLyogZW5nYWdlIHBhcmFsbGVsLWF3YXJlIGxvZ2ljPyAqLwotCWJvb2wJCXBhcmFs bGVsX3NhZmU7CS8qIE9LIHRvIHVzZSBhcyBwYXJ0IG9mIHBhcmFsbGVsIHBsYW4/ICovCisJLyog ZW5nYWdlIHBhcmFsbGVsLWF3YXJlIGxvZ2ljPyAqLworCWJvb2wJCXBhcmFsbGVsX2F3YXJlOwor CS8qIE9LIHRvIHVzZSBhcyBwYXJ0IG9mIHBhcmFsbGVsIHBsYW4/ICovCisJYm9vbAkJcGFyYWxs ZWxfc2FmZTsKIAogCS8qCiAJICogaW5mb3JtYXRpb24gbmVlZGVkIGZvciBhc3luY2hyb25vdXMg ZXhlY3V0aW9uCiAJICovCi0JYm9vbAkJYXN5bmNfY2FwYWJsZTsJLyogZW5nYWdlIGFzeW5jaHJv bm91cy1jYXBhYmxlIGxvZ2ljPyAqLworCS8qIGVuZ2FnZSBhc3luY2hyb25vdXMtY2FwYWJsZSBs b2dpYz8gKi8KKwlib29sCQlhc3luY19jYXBhYmxlOwogCiAJLyoKIAkgKiBDb21tb24gc3RydWN0 dXJhbCBkYXRhIGZvciBhbGwgUGxhbiB0eXBlcy4KIAkgKi8KLQlpbnQJCQlwbGFuX25vZGVfaWQ7 CS8qIHVuaXF1ZSBhY3Jvc3MgZW50aXJlIGZpbmFsIHBsYW4gdHJlZSAqLwotCUxpc3QJICAgKnRh cmdldGxpc3Q7CQkvKiB0YXJnZXQgbGlzdCB0byBiZSBjb21wdXRlZCBhdCB0aGlzIG5vZGUgKi8K LQlMaXN0CSAgICpxdWFsOwkJCS8qIGltcGxpY2l0bHktQU5EZWQgcXVhbCBjb25kaXRpb25zICov Ci0Jc3RydWN0IFBsYW4gKmxlZnR0cmVlOwkJLyogaW5wdXQgcGxhbiB0cmVlKHMpICovCisJLyog dW5pcXVlIGFjcm9zcyBlbnRpcmUgZmluYWwgcGxhbiB0cmVlICovCisJaW50CQkJcGxhbl9ub2Rl X2lkOworCS8qIHRhcmdldCBsaXN0IHRvIGJlIGNvbXB1dGVkIGF0IHRoaXMgbm9kZSAqLworCUxp c3QJICAgKnRhcmdldGxpc3Q7CisJLyogaW1wbGljaXRseS1BTkRlZCBxdWFsIGNvbmRpdGlvbnMg Ki8KKwlMaXN0CSAgICpxdWFsOworCS8qIGlucHV0IHBsYW4gdHJlZShzKSAqLworCXN0cnVjdCBQ bGFuICpsZWZ0dHJlZTsKIAlzdHJ1Y3QgUGxhbiAqcmlnaHR0cmVlOwotCUxpc3QJICAgKmluaXRQ bGFuOwkJLyogSW5pdCBQbGFuIG5vZGVzICh1bi1jb3JyZWxhdGVkIGV4cHIKLQkJCQkJCQkJICog c3Vic2VsZWN0cykgKi8KKwkvKiBJbml0IFBsYW4gbm9kZXMgKHVuLWNvcnJlbGF0ZWQgZXhwciBz dWJzZWxlY3RzKSAqLworCUxpc3QJICAgKmluaXRQbGFuOwogCiAJLyoKIAkgKiBJbmZvcm1hdGlv biBmb3IgbWFuYWdlbWVudCBvZiBwYXJhbWV0ZXItY2hhbmdlLWRyaXZlbiByZXNjYW5uaW5nCkBA IC0yMzMsMzIgKzI2Niw1NCBAQCB0eXBlZGVmIHN0cnVjdCBQcm9qZWN0U2V0CiB0eXBlZGVmIHN0 cnVjdCBNb2RpZnlUYWJsZQogewogCVBsYW4JCXBsYW47Ci0JQ21kVHlwZQkJb3BlcmF0aW9uOwkJ LyogSU5TRVJULCBVUERBVEUsIERFTEVURSwgb3IgTUVSR0UgKi8KLQlib29sCQljYW5TZXRUYWc7 CQkvKiBkbyB3ZSBzZXQgdGhlIGNvbW1hbmQgdGFnL2VzX3Byb2Nlc3NlZD8gKi8KLQlJbmRleAkJ bm9taW5hbFJlbGF0aW9uOwkvKiBQYXJlbnQgUlQgaW5kZXggZm9yIHVzZSBvZiBFWFBMQUlOICov Ci0JSW5kZXgJCXJvb3RSZWxhdGlvbjsJLyogUm9vdCBSVCBpbmRleCwgaWYgcGFydGl0aW9uZWQv aW5oZXJpdGVkICovCi0JYm9vbAkJcGFydENvbHNVcGRhdGVkOwkvKiBzb21lIHBhcnQga2V5IGlu IGhpZXJhcmNoeSB1cGRhdGVkPyAqLwotCUxpc3QJICAgKnJlc3VsdFJlbGF0aW9uczsJLyogaW50 ZWdlciBsaXN0IG9mIFJUIGluZGV4ZXMgKi8KLQlMaXN0CSAgICp1cGRhdGVDb2xub3NMaXN0czsJ LyogcGVyLXRhcmdldC10YWJsZSB1cGRhdGVfY29sbm9zIGxpc3RzICovCi0JTGlzdAkgICAqd2l0 aENoZWNrT3B0aW9uTGlzdHM7CS8qIHBlci10YXJnZXQtdGFibGUgV0NPIGxpc3RzICovCi0JY2hh cgkgICAqcmV0dXJuaW5nT2xkQWxpYXM7CS8qIGFsaWFzIGZvciBPTEQgaW4gUkVUVVJOSU5HIGxp c3RzICovCi0JY2hhcgkgICAqcmV0dXJuaW5nTmV3QWxpYXM7CS8qIGFsaWFzIGZvciBORVcgaW4g UkVUVVJOSU5HIGxpc3RzICovCi0JTGlzdAkgICAqcmV0dXJuaW5nTGlzdHM7IC8qIHBlci10YXJn ZXQtdGFibGUgUkVUVVJOSU5HIHRsaXN0cyAqLwotCUxpc3QJICAgKmZkd1ByaXZMaXN0czsJLyog cGVyLXRhcmdldC10YWJsZSBGRFcgcHJpdmF0ZSBkYXRhIGxpc3RzICovCi0JQml0bWFwc2V0ICAq ZmR3RGlyZWN0TW9kaWZ5UGxhbnM7CS8qIGluZGljZXMgb2YgRkRXIERNIHBsYW5zICovCi0JTGlz dAkgICAqcm93TWFya3M7CQkvKiBQbGFuUm93TWFya3MgKG5vbi1sb2NraW5nIG9ubHkpICovCi0J aW50CQkJZXBxUGFyYW07CQkvKiBJRCBvZiBQYXJhbSBmb3IgRXZhbFBsYW5RdWFsIHJlLWV2YWwg Ki8KLQlPbkNvbmZsaWN0QWN0aW9uIG9uQ29uZmxpY3RBY3Rpb247CS8qIE9OIENPTkZMSUNUIGFj dGlvbiAqLwotCUxpc3QJICAgKmFyYml0ZXJJbmRleGVzOyAvKiBMaXN0IG9mIE9OIENPTkZMSUNU IGFyYml0ZXIgaW5kZXggT0lEcyAgKi8KLQlMaXN0CSAgICpvbkNvbmZsaWN0U2V0OwkvKiBJTlNF UlQgT04gQ09ORkxJQ1QgRE8gVVBEQVRFIHRhcmdldGxpc3QgKi8KLQlMaXN0CSAgICpvbkNvbmZs aWN0Q29sczsgLyogdGFyZ2V0IGNvbHVtbiBudW1iZXJzIGZvciBvbkNvbmZsaWN0U2V0ICovCi0J Tm9kZQkgICAqb25Db25mbGljdFdoZXJlOwkvKiBXSEVSRSBmb3IgT04gQ09ORkxJQ1QgVVBEQVRF ICovCi0JSW5kZXgJCWV4Y2xSZWxSVEk7CQkvKiBSVEkgb2YgdGhlIEVYQ0xVREVEIHBzZXVkbyBy ZWxhdGlvbiAqLwotCUxpc3QJICAgKmV4Y2xSZWxUbGlzdDsJLyogdGxpc3Qgb2YgdGhlIEVYQ0xV REVEIHBzZXVkbyByZWxhdGlvbiAqLwotCUxpc3QJICAgKm1lcmdlQWN0aW9uTGlzdHM7CS8qIHBl ci10YXJnZXQtdGFibGUgbGlzdHMgb2YgYWN0aW9ucyBmb3IKLQkJCQkJCQkJCSAqIE1FUkdFICov Ci0JTGlzdAkgICAqbWVyZ2VKb2luQ29uZGl0aW9uczsJLyogcGVyLXRhcmdldC10YWJsZSBqb2lu IGNvbmRpdGlvbnMKLQkJCQkJCQkJCQkgKiBmb3IgTUVSR0UgKi8KKwkvKiBJTlNFUlQsIFVQREFU RSwgREVMRVRFLCBvciBNRVJHRSAqLworCUNtZFR5cGUJCW9wZXJhdGlvbjsKKwkvKiBkbyB3ZSBz ZXQgdGhlIGNvbW1hbmQgdGFnL2VzX3Byb2Nlc3NlZD8gKi8KKwlib29sCQljYW5TZXRUYWc7CisJ LyogUGFyZW50IFJUIGluZGV4IGZvciB1c2Ugb2YgRVhQTEFJTiAqLworCUluZGV4CQlub21pbmFs UmVsYXRpb247CisJLyogUm9vdCBSVCBpbmRleCwgaWYgcGFydGl0aW9uZWQvaW5oZXJpdGVkICov CisJSW5kZXgJCXJvb3RSZWxhdGlvbjsKKwkvKiBzb21lIHBhcnQga2V5IGluIGhpZXJhcmNoeSB1 cGRhdGVkPyAqLworCWJvb2wJCXBhcnRDb2xzVXBkYXRlZDsKKwkvKiBpbnRlZ2VyIGxpc3Qgb2Yg UlQgaW5kZXhlcyAqLworCUxpc3QJICAgKnJlc3VsdFJlbGF0aW9uczsKKwkvKiBwZXItdGFyZ2V0 LXRhYmxlIHVwZGF0ZV9jb2xub3MgbGlzdHMgKi8KKwlMaXN0CSAgICp1cGRhdGVDb2xub3NMaXN0 czsKKwkvKiBwZXItdGFyZ2V0LXRhYmxlIFdDTyBsaXN0cyAqLworCUxpc3QJICAgKndpdGhDaGVj a09wdGlvbkxpc3RzOworCS8qIGFsaWFzIGZvciBPTEQgaW4gUkVUVVJOSU5HIGxpc3RzICovCisJ Y2hhcgkgICAqcmV0dXJuaW5nT2xkQWxpYXM7CisJLyogYWxpYXMgZm9yIE5FVyBpbiBSRVRVUk5J TkcgbGlzdHMgKi8KKwljaGFyCSAgICpyZXR1cm5pbmdOZXdBbGlhczsKKwkvKiBwZXItdGFyZ2V0 LXRhYmxlIFJFVFVSTklORyB0bGlzdHMgKi8KKwlMaXN0CSAgICpyZXR1cm5pbmdMaXN0czsKKwkv KiBwZXItdGFyZ2V0LXRhYmxlIEZEVyBwcml2YXRlIGRhdGEgbGlzdHMgKi8KKwlMaXN0CSAgICpm ZHdQcml2TGlzdHM7CisJLyogaW5kaWNlcyBvZiBGRFcgRE0gcGxhbnMgKi8KKwlCaXRtYXBzZXQg ICpmZHdEaXJlY3RNb2RpZnlQbGFuczsKKwkvKiBQbGFuUm93TWFya3MgKG5vbi1sb2NraW5nIG9u bHkpICovCisJTGlzdAkgICAqcm93TWFya3M7CisJLyogSUQgb2YgUGFyYW0gZm9yIEV2YWxQbGFu UXVhbCByZS1ldmFsICovCisJaW50CQkJZXBxUGFyYW07CisJLyogT04gQ09ORkxJQ1QgYWN0aW9u ICovCisJT25Db25mbGljdEFjdGlvbiBvbkNvbmZsaWN0QWN0aW9uOworCSAvKiBMaXN0IG9mIE9O IENPTkZMSUNUIGFyYml0ZXIgaW5kZXggT0lEcyAgKi8KKwlMaXN0CSAgICphcmJpdGVySW5kZXhl czsKKwkvKiBJTlNFUlQgT04gQ09ORkxJQ1QgRE8gVVBEQVRFIHRhcmdldGxpc3QgKi8KKwlMaXN0 CSAgICpvbkNvbmZsaWN0U2V0OworCS8qIHRhcmdldCBjb2x1bW4gbnVtYmVycyBmb3Igb25Db25m bGljdFNldCAqLworCUxpc3QJICAgKm9uQ29uZmxpY3RDb2xzOworCS8qIFdIRVJFIGZvciBPTiBD T05GTElDVCBVUERBVEUgKi8KKwlOb2RlCSAgICpvbkNvbmZsaWN0V2hlcmU7CisJLyogUlRJIG9m IHRoZSBFWENMVURFRCBwc2V1ZG8gcmVsYXRpb24gKi8KKwlJbmRleAkJZXhjbFJlbFJUSTsKKwkv KiB0bGlzdCBvZiB0aGUgRVhDTFVERUQgcHNldWRvIHJlbGF0aW9uICovCisJTGlzdAkgICAqZXhj bFJlbFRsaXN0OworCS8qIHBlci10YXJnZXQtdGFibGUgbGlzdHMgb2YgYWN0aW9ucyBmb3IgTUVS R0UgKi8KKwlMaXN0CSAgICptZXJnZUFjdGlvbkxpc3RzOworCS8qIHBlci10YXJnZXQtdGFibGUg am9pbiBjb25kaXRpb25zIGZvciBNRVJHRSAqLworCUxpc3QJICAgKm1lcmdlSm9pbkNvbmRpdGlv bnM7CiB9IE1vZGlmeVRhYmxlOwogCiBzdHJ1Y3QgUGFydGl0aW9uUHJ1bmVJbmZvOwkJLyogZm9y d2FyZCByZWZlcmVuY2UgdG8gc3RydWN0IGJlbG93ICovCkBAIC0yNzEsOSArMzI2LDExIEBAIHN0 cnVjdCBQYXJ0aXRpb25QcnVuZUluZm87CQkvKiBmb3J3YXJkIHJlZmVyZW5jZSB0byBzdHJ1Y3Qg YmVsb3cgKi8KIHR5cGVkZWYgc3RydWN0IEFwcGVuZAogewogCVBsYW4JCXBsYW47Ci0JQml0bWFw c2V0ICAqYXBwcmVsaWRzOwkJLyogUlRJcyBvZiBhcHBlbmRyZWwocykgZm9ybWVkIGJ5IHRoaXMg bm9kZSAqLworCS8qIFJUSXMgb2YgYXBwZW5kcmVsKHMpIGZvcm1lZCBieSB0aGlzIG5vZGUgKi8K KwlCaXRtYXBzZXQgICphcHByZWxpZHM7CiAJTGlzdAkgICAqYXBwZW5kcGxhbnM7Ci0JaW50CQkJ bmFzeW5jcGxhbnM7CS8qICMgb2YgYXN5bmNocm9ub3VzIHBsYW5zICovCisJLyogIyBvZiBhc3lu Y2hyb25vdXMgcGxhbnMgKi8KKwlpbnQJCQluYXN5bmNwbGFuczsKIAogCS8qCiAJICogQWxsICdh cHBlbmRwbGFucycgcHJlY2VkaW5nIHRoaXMgaW5kZXggYXJlIG5vbi1wYXJ0aWFsIHBsYW5zLiBB bGwKQEAgLTQwMCw3ICs0NTcsOCBAQCB0eXBlZGVmIHN0cnVjdCBTY2FuCiAJcGdfbm9kZV9hdHRy KGFic3RyYWN0KQogCiAJUGxhbgkJcGxhbjsKLQlJbmRleAkJc2NhbnJlbGlkOwkJLyogcmVsaWQg aXMgaW5kZXggaW50byB0aGUgcmFuZ2UgdGFibGUgKi8KKwkvKiByZWxpZCBpcyBpbmRleCBpbnRv IHRoZSByYW5nZSB0YWJsZSAqLworCUluZGV4CQlzY2FucmVsaWQ7CiB9IFNjYW47CiAKIC8qIC0t LS0tLS0tLS0tLS0tLS0KQEAgLTQ2MywxMyArNTIxLDIwIEBAIHR5cGVkZWYgc3RydWN0IFNhbXBs ZVNjYW4KIHR5cGVkZWYgc3RydWN0IEluZGV4U2NhbgogewogCVNjYW4JCXNjYW47Ci0JT2lkCQkJ aW5kZXhpZDsJCS8qIE9JRCBvZiBpbmRleCB0byBzY2FuICovCi0JTGlzdAkgICAqaW5kZXhxdWFs OwkJLyogbGlzdCBvZiBpbmRleCBxdWFscyAodXN1YWxseSBPcEV4cHJzKSAqLwotCUxpc3QJICAg KmluZGV4cXVhbG9yaWc7CS8qIHRoZSBzYW1lIGluIG9yaWdpbmFsIGZvcm0gKi8KLQlMaXN0CSAg ICppbmRleG9yZGVyYnk7CS8qIGxpc3Qgb2YgaW5kZXggT1JERVIgQlkgZXhwcnMgKi8KLQlMaXN0 CSAgICppbmRleG9yZGVyYnlvcmlnOwkvKiB0aGUgc2FtZSBpbiBvcmlnaW5hbCBmb3JtICovCi0J TGlzdAkgICAqaW5kZXhvcmRlcmJ5b3BzOwkvKiBPSURzIG9mIHNvcnQgb3BzIGZvciBPUkRFUiBC WSBleHBycyAqLwotCVNjYW5EaXJlY3Rpb24gaW5kZXhvcmRlcmRpcjsJLyogZm9yd2FyZCBvciBi YWNrd2FyZCBvciBkb24ndCBjYXJlICovCisJLyogT0lEIG9mIGluZGV4IHRvIHNjYW4gKi8KKwlP aWQJCQlpbmRleGlkOworCS8qIGxpc3Qgb2YgaW5kZXggcXVhbHMgKHVzdWFsbHkgT3BFeHBycykg Ki8KKwlMaXN0CSAgICppbmRleHF1YWw7CisJLyogdGhlIHNhbWUgaW4gb3JpZ2luYWwgZm9ybSAq LworCUxpc3QJICAgKmluZGV4cXVhbG9yaWc7CisJLyogbGlzdCBvZiBpbmRleCBPUkRFUiBCWSBl eHBycyAqLworCUxpc3QJICAgKmluZGV4b3JkZXJieTsKKwkvKiB0aGUgc2FtZSBpbiBvcmlnaW5h bCBmb3JtICovCisJTGlzdAkgICAqaW5kZXhvcmRlcmJ5b3JpZzsKKwkvKiBPSURzIG9mIHNvcnQg b3BzIGZvciBPUkRFUiBCWSBleHBycyAqLworCUxpc3QJICAgKmluZGV4b3JkZXJieW9wczsKKwkv KiBmb3J3YXJkIG9yIGJhY2t3YXJkIG9yIGRvbid0IGNhcmUgKi8KKwlTY2FuRGlyZWN0aW9uIGlu ZGV4b3JkZXJkaXI7CiB9IEluZGV4U2NhbjsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTA2 LDEyICs1NzEsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgSW5kZXhTY2FuCiB0eXBlZGVmIHN0cnVjdCBJ bmRleE9ubHlTY2FuCiB7CiAJU2NhbgkJc2NhbjsKLQlPaWQJCQlpbmRleGlkOwkJLyogT0lEIG9m IGluZGV4IHRvIHNjYW4gKi8KLQlMaXN0CSAgICppbmRleHF1YWw7CQkvKiBsaXN0IG9mIGluZGV4 IHF1YWxzICh1c3VhbGx5IE9wRXhwcnMpICovCi0JTGlzdAkgICAqcmVjaGVja3F1YWw7CS8qIGlu ZGV4IHF1YWxzIGluIHJlY2hlY2thYmxlIGZvcm0gKi8KLQlMaXN0CSAgICppbmRleG9yZGVyYnk7 CS8qIGxpc3Qgb2YgaW5kZXggT1JERVIgQlkgZXhwcnMgKi8KLQlMaXN0CSAgICppbmRleHRsaXN0 OwkJLyogVGFyZ2V0RW50cnkgbGlzdCBkZXNjcmliaW5nIGluZGV4J3MgY29scyAqLwotCVNjYW5E aXJlY3Rpb24gaW5kZXhvcmRlcmRpcjsJLyogZm9yd2FyZCBvciBiYWNrd2FyZCBvciBkb24ndCBj YXJlICovCisJLyogT0lEIG9mIGluZGV4IHRvIHNjYW4gKi8KKwlPaWQJCQlpbmRleGlkOworCS8q IGxpc3Qgb2YgaW5kZXggcXVhbHMgKHVzdWFsbHkgT3BFeHBycykgKi8KKwlMaXN0CSAgICppbmRl eHF1YWw7CisJLyogaW5kZXggcXVhbHMgaW4gcmVjaGVja2FibGUgZm9ybSAqLworCUxpc3QJICAg KnJlY2hlY2txdWFsOworCS8qIGxpc3Qgb2YgaW5kZXggT1JERVIgQlkgZXhwcnMgKi8KKwlMaXN0 CSAgICppbmRleG9yZGVyYnk7CisJLyogVGFyZ2V0RW50cnkgbGlzdCBkZXNjcmliaW5nIGluZGV4 J3MgY29scyAqLworCUxpc3QJICAgKmluZGV4dGxpc3Q7CisJLyogZm9yd2FyZCBvciBiYWNrd2Fy ZCBvciBkb24ndCBjYXJlICovCisJU2NhbkRpcmVjdGlvbiBpbmRleG9yZGVyZGlyOwogfSBJbmRl eE9ubHlTY2FuOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC01MzQsMTAgKzYwNSwxNCBAQCB0 eXBlZGVmIHN0cnVjdCBJbmRleE9ubHlTY2FuCiB0eXBlZGVmIHN0cnVjdCBCaXRtYXBJbmRleFNj YW4KIHsKIAlTY2FuCQlzY2FuOwotCU9pZAkJCWluZGV4aWQ7CQkvKiBPSUQgb2YgaW5kZXggdG8g c2NhbiAqLwotCWJvb2wJCWlzc2hhcmVkOwkJLyogQ3JlYXRlIHNoYXJlZCBiaXRtYXAgaWYgc2V0 ICovCi0JTGlzdAkgICAqaW5kZXhxdWFsOwkJLyogbGlzdCBvZiBpbmRleCBxdWFscyAoT3BFeHBy cykgKi8KLQlMaXN0CSAgICppbmRleHF1YWxvcmlnOwkvKiB0aGUgc2FtZSBpbiBvcmlnaW5hbCBm b3JtICovCisJLyogT0lEIG9mIGluZGV4IHRvIHNjYW4gKi8KKwlPaWQJCQlpbmRleGlkOworCS8q IENyZWF0ZSBzaGFyZWQgYml0bWFwIGlmIHNldCAqLworCWJvb2wJCWlzc2hhcmVkOworCS8qIGxp c3Qgb2YgaW5kZXggcXVhbHMgKE9wRXhwcnMpICovCisJTGlzdAkgICAqaW5kZXhxdWFsOworCS8q IHRoZSBzYW1lIGluIG9yaWdpbmFsIGZvcm0gKi8KKwlMaXN0CSAgICppbmRleHF1YWxvcmlnOwog fSBCaXRtYXBJbmRleFNjYW47CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTU1Miw3ICs2Mjcs OCBAQCB0eXBlZGVmIHN0cnVjdCBCaXRtYXBJbmRleFNjYW4KIHR5cGVkZWYgc3RydWN0IEJpdG1h cEhlYXBTY2FuCiB7CiAJU2NhbgkJc2NhbjsKLQlMaXN0CSAgICpiaXRtYXBxdWFsb3JpZzsgLyog aW5kZXggcXVhbHMsIGluIHN0YW5kYXJkIGV4cHIgZm9ybSAqLworCS8qIGluZGV4IHF1YWxzLCBp biBzdGFuZGFyZCBleHByIGZvcm0gKi8KKwlMaXN0CSAgICpiaXRtYXBxdWFsb3JpZzsKIH0gQml0 bWFwSGVhcFNjYW47CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTU2Niw3ICs2NDIsOCBAQCB0 eXBlZGVmIHN0cnVjdCBCaXRtYXBIZWFwU2NhbgogdHlwZWRlZiBzdHJ1Y3QgVGlkU2Nhbgogewog CVNjYW4JCXNjYW47Ci0JTGlzdAkgICAqdGlkcXVhbHM7CQkvKiBxdWFsKHMpIGludm9sdmluZyBD VElEID0gc29tZXRoaW5nICovCisJLyogcXVhbChzKSBpbnZvbHZpbmcgQ1RJRCA9IHNvbWV0aGlu ZyAqLworCUxpc3QJICAgKnRpZHF1YWxzOwogfSBUaWRTY2FuOwogCiAvKiAtLS0tLS0tLS0tLS0t LS0tCkBAIC01NzksNyArNjU2LDggQEAgdHlwZWRlZiBzdHJ1Y3QgVGlkU2NhbgogdHlwZWRlZiBz dHJ1Y3QgVGlkUmFuZ2VTY2FuCiB7CiAJU2NhbgkJc2NhbjsKLQlMaXN0CSAgICp0aWRyYW5nZXF1 YWxzOwkvKiBxdWFsKHMpIGludm9sdmluZyBDVElEIG9wIHNvbWV0aGluZyAqLworCS8qIHF1YWwo cykgaW52b2x2aW5nIENUSUQgb3Agc29tZXRoaW5nICovCisJTGlzdAkgICAqdGlkcmFuZ2VxdWFs czsKIH0gVGlkUmFuZ2VTY2FuOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC02MjMsOCArNzAx LDEwIEBAIHR5cGVkZWYgc3RydWN0IFN1YnF1ZXJ5U2NhbgogdHlwZWRlZiBzdHJ1Y3QgRnVuY3Rp b25TY2FuCiB7CiAJU2NhbgkJc2NhbjsKLQlMaXN0CSAgICpmdW5jdGlvbnM7CQkvKiBsaXN0IG9m IFJhbmdlVGJsRnVuY3Rpb24gbm9kZXMgKi8KLQlib29sCQlmdW5jb3JkaW5hbGl0eTsgLyogV0lU SCBPUkRJTkFMSVRZICovCisJLyogbGlzdCBvZiBSYW5nZVRibEZ1bmN0aW9uIG5vZGVzICovCisJ TGlzdAkgICAqZnVuY3Rpb25zOworCS8qIFdJVEggT1JESU5BTElUWSAqLworCWJvb2wJCWZ1bmNv cmRpbmFsaXR5OwogfSBGdW5jdGlvblNjYW47CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTYz NCw3ICs3MTQsOCBAQCB0eXBlZGVmIHN0cnVjdCBGdW5jdGlvblNjYW4KIHR5cGVkZWYgc3RydWN0 IFZhbHVlc1NjYW4KIHsKIAlTY2FuCQlzY2FuOwotCUxpc3QJICAgKnZhbHVlc19saXN0czsJLyog bGlzdCBvZiBleHByZXNzaW9uIGxpc3RzICovCisJLyogbGlzdCBvZiBleHByZXNzaW9uIGxpc3Rz ICovCisJTGlzdAkgICAqdmFsdWVzX2xpc3RzOwogfSBWYWx1ZXNTY2FuOwogCiAvKiAtLS0tLS0t LS0tLS0tLS0tCkBAIC02NDQsNyArNzI1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgVmFsdWVzU2Nhbgog dHlwZWRlZiBzdHJ1Y3QgVGFibGVGdW5jU2NhbgogewogCVNjYW4JCXNjYW47Ci0JVGFibGVGdW5j ICAqdGFibGVmdW5jOwkJLyogdGFibGUgZnVuY3Rpb24gbm9kZSAqLworCS8qIHRhYmxlIGZ1bmN0 aW9uIG5vZGUgKi8KKwlUYWJsZUZ1bmMgICp0YWJsZWZ1bmM7CiB9IFRhYmxlRnVuY1NjYW47CiAK IC8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTY1NCw4ICs3MzYsMTAgQEAgdHlwZWRlZiBzdHJ1Y3Qg VGFibGVGdW5jU2NhbgogdHlwZWRlZiBzdHJ1Y3QgQ3RlU2NhbgogewogCVNjYW4JCXNjYW47Ci0J aW50CQkJY3RlUGxhbklkOwkJLyogSUQgb2YgaW5pdCBTdWJQbGFuIGZvciBDVEUgKi8KLQlpbnQJ CQljdGVQYXJhbTsJCS8qIElEIG9mIFBhcmFtIHJlcHJlc2VudGluZyBDVEUgb3V0cHV0ICovCisJ LyogSUQgb2YgaW5pdCBTdWJQbGFuIGZvciBDVEUgKi8KKwlpbnQJCQljdGVQbGFuSWQ7CisJLyog SUQgb2YgUGFyYW0gcmVwcmVzZW50aW5nIENURSBvdXRwdXQgKi8KKwlpbnQJCQljdGVQYXJhbTsK IH0gQ3RlU2NhbjsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpAQCAtNjY1LDcgKzc0OSw4IEBAIHR5 cGVkZWYgc3RydWN0IEN0ZVNjYW4KIHR5cGVkZWYgc3RydWN0IE5hbWVkVHVwbGVzdG9yZVNjYW4K IHsKIAlTY2FuCQlzY2FuOwotCWNoYXIJICAgKmVucm5hbWU7CQkvKiBOYW1lIGdpdmVuIHRvIEVw aGVtZXJhbCBOYW1lZCBSZWxhdGlvbiAqLworCS8qIE5hbWUgZ2l2ZW4gdG8gRXBoZW1lcmFsIE5h bWVkIFJlbGF0aW9uICovCisJY2hhcgkgICAqZW5ybmFtZTsKIH0gTmFtZWRUdXBsZXN0b3JlU2Nh bjsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpAQCAtNjc1LDcgKzc2MCw4IEBAIHR5cGVkZWYgc3Ry dWN0IE5hbWVkVHVwbGVzdG9yZVNjYW4KIHR5cGVkZWYgc3RydWN0IFdvcmtUYWJsZVNjYW4KIHsK IAlTY2FuCQlzY2FuOwotCWludAkJCXd0UGFyYW07CQkvKiBJRCBvZiBQYXJhbSByZXByZXNlbnRp bmcgd29yayB0YWJsZSAqLworCS8qIElEIG9mIFBhcmFtIHJlcHJlc2VudGluZyB3b3JrIHRhYmxl ICovCisJaW50CQkJd3RQYXJhbTsKIH0gV29ya1RhYmxlU2NhbjsKIAogLyogLS0tLS0tLS0tLS0t LS0tLQpAQCAtNzIxLDE4ICs4MDcsMjggQEAgdHlwZWRlZiBzdHJ1Y3QgV29ya1RhYmxlU2Nhbgog dHlwZWRlZiBzdHJ1Y3QgRm9yZWlnblNjYW4KIHsKIAlTY2FuCQlzY2FuOwotCUNtZFR5cGUJCW9w ZXJhdGlvbjsJCS8qIFNFTEVDVC9JTlNFUlQvVVBEQVRFL0RFTEVURSAqLwotCUluZGV4CQlyZXN1 bHRSZWxhdGlvbjsgLyogZGlyZWN0IG1vZGlmaWNhdGlvbiB0YXJnZXQncyBSVCBpbmRleCAqLwot CU9pZAkJCWNoZWNrQXNVc2VyOwkvKiB1c2VyIHRvIHBlcmZvcm0gdGhlIHNjYW4gYXM7IDAgbWVh bnMgdG8KLQkJCQkJCQkJICogY2hlY2sgYXMgY3VycmVudCB1c2VyICovCi0JT2lkCQkJZnNfc2Vy dmVyOwkJLyogT0lEIG9mIGZvcmVpZ24gc2VydmVyICovCi0JTGlzdAkgICAqZmR3X2V4cHJzOwkJ LyogZXhwcmVzc2lvbnMgdGhhdCBGRFcgbWF5IGV2YWx1YXRlICovCi0JTGlzdAkgICAqZmR3X3By aXZhdGU7CS8qIHByaXZhdGUgZGF0YSBmb3IgRkRXICovCi0JTGlzdAkgICAqZmR3X3NjYW5fdGxp c3Q7IC8qIG9wdGlvbmFsIHRsaXN0IGRlc2NyaWJpbmcgc2NhbiB0dXBsZSAqLwotCUxpc3QJICAg KmZkd19yZWNoZWNrX3F1YWxzOwkvKiBvcmlnaW5hbCBxdWFscyBub3QgaW4gc2Nhbi5wbGFuLnF1 YWwgKi8KLQlCaXRtYXBzZXQgICpmc19yZWxpZHM7CQkvKiBiYXNlK09KIFJUSXMgZ2VuZXJhdGVk IGJ5IHRoaXMgc2NhbiAqLwotCUJpdG1hcHNldCAgKmZzX2Jhc2VfcmVsaWRzOyAvKiBiYXNlIFJU SXMgZ2VuZXJhdGVkIGJ5IHRoaXMgc2NhbiAqLwotCWJvb2wJCWZzU3lzdGVtQ29sOwkvKiB0cnVl IGlmIGFueSAic3lzdGVtIGNvbHVtbiIgaXMgbmVlZGVkICovCisJLyogU0VMRUNUL0lOU0VSVC9V UERBVEUvREVMRVRFICovCisJQ21kVHlwZQkJb3BlcmF0aW9uOworCS8qIGRpcmVjdCBtb2RpZmlj YXRpb24gdGFyZ2V0J3MgUlQgaW5kZXggKi8KKwlJbmRleAkJcmVzdWx0UmVsYXRpb247CisJLyog dXNlciB0byBwZXJmb3JtIHRoZSBzY2FuIGFzOyAwIG1lYW5zIHRvIGNoZWNrIGFzIGN1cnJlbnQg dXNlciAqLworCU9pZAkJCWNoZWNrQXNVc2VyOworCS8qIE9JRCBvZiBmb3JlaWduIHNlcnZlciAq LworCU9pZAkJCWZzX3NlcnZlcjsKKwkvKiBleHByZXNzaW9ucyB0aGF0IEZEVyBtYXkgZXZhbHVh dGUgKi8KKwlMaXN0CSAgICpmZHdfZXhwcnM7CisJLyogcHJpdmF0ZSBkYXRhIGZvciBGRFcgKi8K KwlMaXN0CSAgICpmZHdfcHJpdmF0ZTsKKwkvKiBvcHRpb25hbCB0bGlzdCBkZXNjcmliaW5nIHNj YW4gdHVwbGUgKi8KKwlMaXN0CSAgICpmZHdfc2Nhbl90bGlzdDsKKwkJLyogb3JpZ2luYWwgcXVh bHMgbm90IGluIHNjYW4ucGxhbi5xdWFsICovCisJTGlzdAkgICAqZmR3X3JlY2hlY2tfcXVhbHM7 CisJLyogYmFzZStPSiBSVElzIGdlbmVyYXRlZCBieSB0aGlzIHNjYW4gKi8KKwlCaXRtYXBzZXQg ICpmc19yZWxpZHM7CisJLyogYmFzZSBSVElzIGdlbmVyYXRlZCBieSB0aGlzIHNjYW4gKi8KKwlC aXRtYXBzZXQgICpmc19iYXNlX3JlbGlkczsKKwkvKiB0cnVlIGlmIGFueSAic3lzdGVtIGNvbHVt biIgaXMgbmVlZGVkICovCisJYm9vbAkJZnNTeXN0ZW1Db2w7CiB9IEZvcmVpZ25TY2FuOwogCiAv KiAtLS0tLS0tLS0tLS0tLS0tCkBAIC03NTMsMTMgKzg0OSwxOCBAQCBzdHJ1Y3QgQ3VzdG9tU2Nh bk1ldGhvZHM7CiB0eXBlZGVmIHN0cnVjdCBDdXN0b21TY2FuCiB7CiAJU2NhbgkJc2NhbjsKLQl1 aW50MzIJCWZsYWdzOwkJCS8qIG1hc2sgb2YgQ1VTVE9NUEFUSF8qIGZsYWdzLCBzZWUKLQkJCQkJ CQkJICogbm9kZXMvZXh0ZW5zaWJsZS5oICovCi0JTGlzdAkgICAqY3VzdG9tX3BsYW5zOwkvKiBs aXN0IG9mIFBsYW4gbm9kZXMsIGlmIGFueSAqLwotCUxpc3QJICAgKmN1c3RvbV9leHByczsJLyog ZXhwcmVzc2lvbnMgdGhhdCBjdXN0b20gY29kZSBtYXkgZXZhbHVhdGUgKi8KLQlMaXN0CSAgICpj dXN0b21fcHJpdmF0ZTsgLyogcHJpdmF0ZSBkYXRhIGZvciBjdXN0b20gY29kZSAqLwotCUxpc3QJ ICAgKmN1c3RvbV9zY2FuX3RsaXN0OwkvKiBvcHRpb25hbCB0bGlzdCBkZXNjcmliaW5nIHNjYW4g dHVwbGUgKi8KLQlCaXRtYXBzZXQgICpjdXN0b21fcmVsaWRzOwkvKiBSVElzIGdlbmVyYXRlZCBi eSB0aGlzIHNjYW4gKi8KKwkvKiBtYXNrIG9mIENVU1RPTVBBVEhfKiBmbGFncywgc2VlIG5vZGVz L2V4dGVuc2libGUuaCAqLworCXVpbnQzMgkJZmxhZ3M7CisJLyogbGlzdCBvZiBQbGFuIG5vZGVz LCBpZiBhbnkgKi8KKwlMaXN0CSAgICpjdXN0b21fcGxhbnM7CisJLyogZXhwcmVzc2lvbnMgdGhh dCBjdXN0b20gY29kZSBtYXkgZXZhbHVhdGUgKi8KKwlMaXN0CSAgICpjdXN0b21fZXhwcnM7CisJ LyogcHJpdmF0ZSBkYXRhIGZvciBjdXN0b20gY29kZSAqLworCUxpc3QJICAgKmN1c3RvbV9wcml2 YXRlOworCS8qIG9wdGlvbmFsIHRsaXN0IGRlc2NyaWJpbmcgc2NhbiB0dXBsZSAqLworCUxpc3QJ ICAgKmN1c3RvbV9zY2FuX3RsaXN0OworCS8qIFJUSXMgZ2VuZXJhdGVkIGJ5IHRoaXMgc2NhbiAq LworCUJpdG1hcHNldCAgKmN1c3RvbV9yZWxpZHM7CiAKIAkvKgogCSAqIE5PVEU6IFRoZSBtZXRo b2QgZmllbGQgb2YgQ3VzdG9tU2NhbiBpcyByZXF1aXJlZCB0byBiZSBhIHBvaW50ZXIgdG8gYQpA QCAtODA0LDcgKzkwNSw4IEBAIHR5cGVkZWYgc3RydWN0IEpvaW4KIAlQbGFuCQlwbGFuOwogCUpv aW5UeXBlCWpvaW50eXBlOwogCWJvb2wJCWlubmVyX3VuaXF1ZTsKLQlMaXN0CSAgICpqb2lucXVh bDsJCS8qIEpPSU4gcXVhbHMgKGluIGFkZGl0aW9uIHRvIHBsYW4ucXVhbCkgKi8KKwkvKiBKT0lO IHF1YWxzIChpbiBhZGRpdGlvbiB0byBwbGFuLnF1YWwpICovCisJTGlzdAkgICAqam9pbnF1YWw7 CiB9IEpvaW47CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTgyMSw3ICs5MjMsOCBAQCB0eXBl ZGVmIHN0cnVjdCBKb2luCiB0eXBlZGVmIHN0cnVjdCBOZXN0TG9vcAogewogCUpvaW4JCWpvaW47 Ci0JTGlzdAkgICAqbmVzdFBhcmFtczsJCS8qIGxpc3Qgb2YgTmVzdExvb3BQYXJhbSBub2RlcyAq LworCS8qIGxpc3Qgb2YgTmVzdExvb3BQYXJhbSBub2RlcyAqLworCUxpc3QJICAgKm5lc3RQYXJh bXM7CiB9IE5lc3RMb29wOwogCiB0eXBlZGVmIHN0cnVjdCBOZXN0TG9vcFBhcmFtCkBAIC04Mjks OCArOTMyLDEwIEBAIHR5cGVkZWYgc3RydWN0IE5lc3RMb29wUGFyYW0KIAlwZ19ub2RlX2F0dHIo bm9fZXF1YWwsIG5vX3F1ZXJ5X2p1bWJsZSkKIAogCU5vZGVUYWcJCXR5cGU7Ci0JaW50CQkJcGFy YW1ubzsJCS8qIG51bWJlciBvZiB0aGUgUEFSQU1fRVhFQyBQYXJhbSB0byBzZXQgKi8KLQlWYXIJ CSAgICpwYXJhbXZhbDsJCS8qIG91dGVyLXJlbGF0aW9uIFZhciB0byBhc3NpZ24gdG8gUGFyYW0g Ki8KKwkvKiBudW1iZXIgb2YgdGhlIFBBUkFNX0VYRUMgUGFyYW0gdG8gc2V0ICovCisJaW50CQkJ cGFyYW1ubzsKKwkvKiBvdXRlci1yZWxhdGlvbiBWYXIgdG8gYXNzaWduIHRvIFBhcmFtICovCisJ VmFyCQkgICAqcGFyYW12YWw7CiB9IE5lc3RMb29wUGFyYW07CiAKIC8qIC0tLS0tLS0tLS0tLS0t LS0KQEAgLTk2OSw3ICsxMDc0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgU29ydAogdHlwZWRlZiBzdHJ1 Y3QgSW5jcmVtZW50YWxTb3J0CiB7CiAJU29ydAkJc29ydDsKLQlpbnQJCQluUHJlc29ydGVkQ29s czsgLyogbnVtYmVyIG9mIHByZXNvcnRlZCBjb2x1bW5zICovCisJLyogbnVtYmVyIG9mIHByZXNv cnRlZCBjb2x1bW5zICovCisJaW50CQkJblByZXNvcnRlZENvbHM7CiB9IEluY3JlbWVudGFsU29y dDsKIAogLyogLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTU0LDEyICsxMjYwLDE5IEBAIHR5cGVkZWYg c3RydWN0IFVuaXF1ZQogdHlwZWRlZiBzdHJ1Y3QgR2F0aGVyCiB7CiAJUGxhbgkJcGxhbjsKLQlp bnQJCQludW1fd29ya2VyczsJLyogcGxhbm5lZCBudW1iZXIgb2Ygd29ya2VyIHByb2Nlc3NlcyAq LwotCWludAkJCXJlc2Nhbl9wYXJhbTsJLyogSUQgb2YgUGFyYW0gdGhhdCBzaWduYWxzIGEgcmVz Y2FuLCBvciAtMSAqLwotCWJvb2wJCXNpbmdsZV9jb3B5OwkvKiBkb24ndCBleGVjdXRlIHBsYW4g bW9yZSB0aGFuIG9uY2UgKi8KLQlib29sCQlpbnZpc2libGU7CQkvKiBzdXBwcmVzcyBFWFBMQUlO IGRpc3BsYXkgKGZvciB0ZXN0aW5nKT8gKi8KLQlCaXRtYXBzZXQgICppbml0UGFyYW07CQkvKiBw YXJhbSBpZCdzIG9mIGluaXRwbGFucyB3aGljaCBhcmUgcmVmZXJyZWQKLQkJCQkJCQkJICogYXQg Z2F0aGVyIG9yIG9uZSBvZiBpdHMgY2hpbGQgbm9kZXMgKi8KKwkvKiBwbGFubmVkIG51bWJlciBv ZiB3b3JrZXIgcHJvY2Vzc2VzICovCisJaW50CQkJbnVtX3dvcmtlcnM7CisJLyogSUQgb2YgUGFy YW0gdGhhdCBzaWduYWxzIGEgcmVzY2FuLCBvciAtMSAqLworCWludAkJCXJlc2Nhbl9wYXJhbTsK KwkvKiBkb24ndCBleGVjdXRlIHBsYW4gbW9yZSB0aGFuIG9uY2UgKi8KKwlib29sCQlzaW5nbGVf Y29weTsKKwkvKiBzdXBwcmVzcyBFWFBMQUlOIGRpc3BsYXkgKGZvciB0ZXN0aW5nKT8gKi8KKwli b29sCQlpbnZpc2libGU7CisJLyoKKwkgKiBwYXJhbSBpZCdzIG9mIGluaXRwbGFucyB3aGljaCBh cmUgcmVmZXJyZWQgYXQgZ2F0aGVyCisJICogb3Igb25lIG9mIGl0cyBjaGlsZCBub2RlcworCSAq LworCUJpdG1hcHNldCAgKmluaXRQYXJhbTsKIH0gR2F0aGVyOwogCiAvKiAtLS0tLS0tLS0tLS0K QEAgLTEyMTYsMTIgKzEzMjksMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgSGFzaAogCSAqIExpc3Qgb2Yg ZXhwcmVzc2lvbnMgdG8gYmUgaGFzaGVkIGZvciB0dXBsZXMgZnJvbSBIYXNoJ3Mgb3V0ZXIgcGxh biwKIAkgKiBuZWVkZWQgdG8gcHV0IHRoZW0gaW50byB0aGUgaGFzaHRhYmxlLgogCSAqLwotCUxp c3QJICAgKmhhc2hrZXlzOwkJLyogaGFzaCBrZXlzIGZvciB0aGUgaGFzaGpvaW4gY29uZGl0aW9u ICovCi0JT2lkCQkJc2tld1RhYmxlOwkJLyogb3V0ZXIgam9pbiBrZXkncyB0YWJsZSBPSUQsIG9y IEludmFsaWRPaWQgKi8KLQlBdHRyTnVtYmVyCXNrZXdDb2x1bW47CQkvKiBvdXRlciBqb2luIGtl eSdzIGNvbHVtbiAjLCBvciB6ZXJvICovCi0JYm9vbAkJc2tld0luaGVyaXQ7CS8qIGlzIG91dGVy IGpvaW4gcmVsIGFuIGluaGVyaXRhbmNlIHRyZWU/ICovCisJLyogaGFzaCBrZXlzIGZvciB0aGUg aGFzaGpvaW4gY29uZGl0aW9uICovCisJTGlzdAkgICAqaGFzaGtleXM7CisJLyogb3V0ZXIgam9p biBrZXkncyB0YWJsZSBPSUQsIG9yIEludmFsaWRPaWQgKi8KKwlPaWQJCQlza2V3VGFibGU7CisJ Lyogb3V0ZXIgam9pbiBrZXkncyBjb2x1bW4gIywgb3IgemVybyAqLworCUF0dHJOdW1iZXIJc2tl d0NvbHVtbjsKKwkvKiBpcyBvdXRlciBqb2luIHJlbCBhbiBpbmhlcml0YW5jZSB0cmVlPyAqLwor CWJvb2wJCXNrZXdJbmhlcml0OwogCS8qIGFsbCBvdGhlciBpbmZvIGlzIGluIHRoZSBwYXJlbnQg SGFzaEpvaW4gbm9kZSAqLwotCUNhcmRpbmFsaXR5IHJvd3NfdG90YWw7CQkvKiBlc3RpbWF0ZSB0 b3RhbCByb3dzIGlmIHBhcmFsbGVsX2F3YXJlICovCisJLyogZXN0aW1hdGUgdG90YWwgcm93cyBp ZiBwYXJhbGxlbF9hd2FyZSAqLworCUNhcmRpbmFsaXR5IHJvd3NfdG90YWw7CiB9IEhhc2g7CiAK IC8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTEyNjcsOCArMTM4NSwxMCBAQCB0eXBlZGVmIHN0cnVj dCBTZXRPcAogdHlwZWRlZiBzdHJ1Y3QgTG9ja1Jvd3MKIHsKIAlQbGFuCQlwbGFuOwotCUxpc3QJ ICAgKnJvd01hcmtzOwkJLyogYSBsaXN0IG9mIFBsYW5Sb3dNYXJrJ3MgKi8KLQlpbnQJCQllcHFQ YXJhbTsJCS8qIElEIG9mIFBhcmFtIGZvciBFdmFsUGxhblF1YWwgcmUtZXZhbCAqLworCS8qIGEg bGlzdCBvZiBQbGFuUm93TWFyaydzICovCisJTGlzdAkgICAqcm93TWFya3M7CisJLyogSUQgb2Yg UGFyYW0gZm9yIEV2YWxQbGFuUXVhbCByZS1ldmFsICovCisJaW50CQkJZXBxUGFyYW07CiB9IExv Y2tSb3dzOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC0xMzkwLDE0ICsxNTEwLDIyIEBAIHR5 cGVkZWYgc3RydWN0IFBsYW5Sb3dNYXJrCiAJcGdfbm9kZV9hdHRyKG5vX2VxdWFsLCBub19xdWVy eV9qdW1ibGUpCiAKIAlOb2RlVGFnCQl0eXBlOwotCUluZGV4CQlydGk7CQkJLyogcmFuZ2UgdGFi bGUgaW5kZXggb2YgbWFya2FibGUgcmVsYXRpb24gKi8KLQlJbmRleAkJcHJ0aTsJCQkvKiByYW5n ZSB0YWJsZSBpbmRleCBvZiBwYXJlbnQgcmVsYXRpb24gKi8KLQlJbmRleAkJcm93bWFya0lkOwkJ LyogdW5pcXVlIGlkZW50aWZpZXIgZm9yIHJlc2p1bmsgY29sdW1ucyAqLwotCVJvd01hcmtUeXBl IG1hcmtUeXBlOwkJLyogc2VlIGVudW0gYWJvdmUgKi8KLQlpbnQJCQlhbGxNYXJrVHlwZXM7CS8q IE9SIG9mICgxPDxtYXJrVHlwZSkgZm9yIGFsbCBjaGlsZHJlbiAqLwotCUxvY2tDbGF1c2VTdHJl bmd0aCBzdHJlbmd0aDsJLyogTG9ja2luZ0NsYXVzZSdzIHN0cmVuZ3RoLCBvciBMQ1NfTk9ORSAq LwotCUxvY2tXYWl0UG9saWN5IHdhaXRQb2xpY3k7CS8qIE5PV0FJVCBhbmQgU0tJUCBMT0NLRUQg b3B0aW9ucyAqLwotCWJvb2wJCWlzUGFyZW50OwkJLyogdHJ1ZSBpZiB0aGlzIGlzIGEgImR1bW15 IiBwYXJlbnQgZW50cnkgKi8KKwkvKiByYW5nZSB0YWJsZSBpbmRleCBvZiBtYXJrYWJsZSByZWxh dGlvbiAqLworCUluZGV4CQlydGk7CisJLyogcmFuZ2UgdGFibGUgaW5kZXggb2YgcGFyZW50IHJl bGF0aW9uICovCisJSW5kZXgJCXBydGk7CisJLyogdW5pcXVlIGlkZW50aWZpZXIgZm9yIHJlc2p1 bmsgY29sdW1ucyAqLworCUluZGV4CQlyb3dtYXJrSWQ7CisJLyogc2VlIGVudW0gYWJvdmUgKi8K KwlSb3dNYXJrVHlwZSBtYXJrVHlwZTsKKwkvKiBPUiBvZiAoMTw8bWFya1R5cGUpIGZvciBhbGwg Y2hpbGRyZW4gKi8KKwlpbnQJCQlhbGxNYXJrVHlwZXM7CisJLyogTG9ja2luZ0NsYXVzZSdzIHN0 cmVuZ3RoLCBvciBMQ1NfTk9ORSAqLworCUxvY2tDbGF1c2VTdHJlbmd0aCBzdHJlbmd0aDsKKwkv KiBOT1dBSVQgYW5kIFNLSVAgTE9DS0VEIG9wdGlvbnMgKi8KKwlMb2NrV2FpdFBvbGljeSB3YWl0 UG9saWN5OworCS8qIHRydWUgaWYgdGhpcyBpcyBhICJkdW1teSIgcGFyZW50IGVudHJ5ICovCisJ Ym9vbAkJaXNQYXJlbnQ7CiB9IFBsYW5Sb3dNYXJrOwogCiAKQEAgLTE0OTIsOCArMTYyMCwxMCBA QCB0eXBlZGVmIHN0cnVjdCBQYXJ0aXRpb25lZFJlbFBydW5lSW5mbwogCSAqIGlzIHJlcXVpcmVk LiAgZXhlY19wcnVuaW5nX3N0ZXBzIHNob3dzIGhvdyB0byBwcnVuZSB3aXRoIFBBUkFNX0VYRUMK IAkgKiBQYXJhbXM7IGl0IGlzIE5JTCBpZiBubyBwZXItc2NhbiBwcnVuaW5nIGlzIHJlcXVpcmVk LgogCSAqLwotCUxpc3QJICAgKmluaXRpYWxfcHJ1bmluZ19zdGVwczsJLyogTGlzdCBvZiBQYXJ0 aXRpb25QcnVuZVN0ZXAgKi8KLQlMaXN0CSAgICpleGVjX3BydW5pbmdfc3RlcHM7IC8qIExpc3Qg b2YgUGFydGl0aW9uUHJ1bmVTdGVwICovCisJLyogTGlzdCBvZiBQYXJ0aXRpb25QcnVuZVN0ZXAg Ki8KKwlMaXN0CSAgICppbml0aWFsX3BydW5pbmdfc3RlcHM7CisJLyogTGlzdCBvZiBQYXJ0aXRp b25QcnVuZVN0ZXAgKi8KKwlMaXN0CSAgICpleGVjX3BydW5pbmdfc3RlcHM7CiAKIAkvKiBBbGwg UEFSQU1fRVhFQyBQYXJhbSBJRHMgaW4gZXhlY19wcnVuaW5nX3N0ZXBzICovCiAJQml0bWFwc2V0 ICAqZXhlY3BhcmFtaWRzOwpAQCAtMTU4NSw4ICsxNzE1LDEwIEBAIHR5cGVkZWYgc3RydWN0IFBs YW5JbnZhbEl0ZW0KIAlwZ19ub2RlX2F0dHIobm9fZXF1YWwsIG5vX3F1ZXJ5X2p1bWJsZSkKIAog CU5vZGVUYWcJCXR5cGU7Ci0JaW50CQkJY2FjaGVJZDsJCS8qIGEgc3lzY2FjaGUgSUQsIHNlZSB1 dGlscy9zeXNjYWNoZS5oICovCi0JdWludDMyCQloYXNoVmFsdWU7CQkvKiBoYXNoIHZhbHVlIG9m IG9iamVjdCdzIGNhY2hlIGxvb2t1cCBrZXkgKi8KKwkvKiBhIHN5c2NhY2hlIElELCBzZWUgdXRp bHMvc3lzY2FjaGUuaCAqLworCWludAkJCWNhY2hlSWQ7CisJLyogaGFzaCB2YWx1ZSBvZiBvYmpl Y3QncyBjYWNoZSBsb29rdXAga2V5ICovCisJdWludDMyCQloYXNoVmFsdWU7CiB9IFBsYW5JbnZh bEl0ZW07CiAKIC8qCi0tIAoyLjQ3LjEKCg== --000000000000a01605062d839e08 Content-Type: application/octet-stream; name="v5-0004-Add-pg_stat_plans-contrib-extension.patch" Content-Disposition: attachment; filename="v5-0004-Add-pg_stat_plans-contrib-extension.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6u3whix3 RnJvbSA5YTQxYzdmYTE3MDE4MDgwZDUwYjFiYzFhNGJlNzYwZTQzNzFhNjA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIFBhcXVpZXIgPG1pY2hhZWxAcGFxdWllci54eXo+ CkRhdGU6IEZyaSwgMzEgSmFuIDIwMjUgMTM6MDg6MTkgKzA5MDAKU3ViamVjdDogW1BBVENIIHY1 IDQvNF0gQWRkIHBnX3N0YXRfcGxhbnMgY29udHJpYiBleHRlbnNpb24KClRoaXMgZXh0ZW5zaW9u IGFsbG93cyB0cmFja2luZyBwZXItcGxhbiBjYWxsIGNvdW50cyBhbmQgZXhlY3V0aW9uIHRpbWUs CmFzIHdlbGwgYXMgY2FwdHVyaW5nIHRoZSBwbGFuIHRleHQsIGFrYSBFWFBMQUlOIChDT1NUUyBP RkYpLCBmb3IgdGhlCmZpcnN0IGV4ZWN1dGlvbiBvZiBhIGdpdmVuIHBsYW4uIFRoaXMgdXRpbGl6 ZSB0aGUgY29tcHV0ZV9wbGFuX2lkCmZ1bmN0aW9uYWxpdHkgZm9yIHRyYWNraW5nIGRpZmZlcmVu dCBwbGFucy4KLS0tCiBjb250cmliL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogY29udHJpYi9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIGNvbnRyaWIvcGdfc3RhdF9wbGFucy9NYWtlZmlsZSAgICAgICAgICAgICAgICB8 ICAyOSArCiBjb250cmliL3BnX3N0YXRfcGxhbnMvZXhwZWN0ZWQvY2xlYW51cC5vdXQgICAgfCAg IDEgKwogY29udHJpYi9wZ19zdGF0X3BsYW5zL2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0IHwgMTI1 ICsrKwogY29udHJpYi9wZ19zdGF0X3BsYW5zL2V4cGVjdGVkL3NlbGVjdC5vdXQgICAgIHwgMjYy ICsrKysrKwogY29udHJpYi9wZ19zdGF0X3BsYW5zL21lc29uLmJ1aWxkICAgICAgICAgICAgIHwg IDQzICsKIGNvbnRyaWIvcGdfc3RhdF9wbGFucy9wZ19zdGF0X3BsYW5zLS0xLjAuc3FsICB8ICAz MyArCiBjb250cmliL3BnX3N0YXRfcGxhbnMvcGdfc3RhdF9wbGFucy5jICAgICAgICAgfCA3Nzkg KysrKysrKysrKysrKysrKysrCiBjb250cmliL3BnX3N0YXRfcGxhbnMvcGdfc3RhdF9wbGFucy5j b25mICAgICAgfCAgIDEgKwogY29udHJpYi9wZ19zdGF0X3BsYW5zL3BnX3N0YXRfcGxhbnMuY29u dHJvbCAgIHwgICA1ICsKIGNvbnRyaWIvcGdfc3RhdF9wbGFucy9zcWwvY2xlYW51cC5zcWwgICAg ICAgICB8ICAgMSArCiBjb250cmliL3BnX3N0YXRfcGxhbnMvc3FsL3ByaXZpbGVnZXMuc3FsICAg ICAgfCAgNTkgKysKIGNvbnRyaWIvcGdfc3RhdF9wbGFucy9zcWwvc2VsZWN0LnNxbCAgICAgICAg ICB8ICA2NyArKwogZG9jL3NyYy9zZ21sL2NvbnRyaWIuc2dtbCAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIGRvYy9zcmMvc2dtbC9maWxlbGlzdC5zZ21sICAgICAgICAgICAgICAgICAgICB8 ICAgMSArCiBkb2Mvc3JjL3NnbWwvcGdzdGF0cGxhbnMuc2dtbCAgICAgICAgICAgICAgICAgfCA0 MjUgKysrKysrKysrKwogMTcgZmlsZXMgY2hhbmdlZCwgMTgzNCBpbnNlcnRpb25zKCspCiBjcmVh dGUgbW9kZSAxMDA2NDQgY29udHJpYi9wZ19zdGF0X3BsYW5zL01ha2VmaWxlCiBjcmVhdGUgbW9k ZSAxMDA2NDQgY29udHJpYi9wZ19zdGF0X3BsYW5zL2V4cGVjdGVkL2NsZWFudXAub3V0CiBjcmVh dGUgbW9kZSAxMDA2NDQgY29udHJpYi9wZ19zdGF0X3BsYW5zL2V4cGVjdGVkL3ByaXZpbGVnZXMu b3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9wZ19zdGF0X3BsYW5zL2V4cGVjdGVkL3Nl bGVjdC5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3BnX3N0YXRfcGxhbnMvbWVzb24u YnVpbGQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3BnX3N0YXRfcGxhbnMvcGdfc3RhdF9w bGFucy0tMS4wLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIvcGdfc3RhdF9wbGFucy9w Z19zdGF0X3BsYW5zLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3BnX3N0YXRfcGxhbnMv cGdfc3RhdF9wbGFucy5jb25mCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9wZ19zdGF0X3Bs YW5zL3BnX3N0YXRfcGxhbnMuY29udHJvbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIvcGdf c3RhdF9wbGFucy9zcWwvY2xlYW51cC5zcWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3Bn X3N0YXRfcGxhbnMvc3FsL3ByaXZpbGVnZXMuc3FsCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJp Yi9wZ19zdGF0X3BsYW5zL3NxbC9zZWxlY3Quc3FsCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3Ny Yy9zZ21sL3Bnc3RhdHBsYW5zLnNnbWwKCmRpZmYgLS1naXQgYS9jb250cmliL01ha2VmaWxlIGIv Y29udHJpYi9NYWtlZmlsZQppbmRleCA5NTI4NTVkOWI2Li44ZGUwMTBhZmRlIDEwMDY0NAotLS0g YS9jb250cmliL01ha2VmaWxlCisrKyBiL2NvbnRyaWIvTWFrZWZpbGUKQEAgLTM0LDYgKzM0LDcg QEAgU1VCRElSUyA9IFwKIAkJcGdfZnJlZXNwYWNlbWFwIFwKIAkJcGdfbG9naWNhbGluc3BlY3Qg XAogCQlwZ19wcmV3YXJtCVwKKwkJcGdfc3RhdF9wbGFucyBcCiAJCXBnX3N0YXRfc3RhdGVtZW50 cyBcCiAJCXBnX3N1cmdlcnkJXAogCQlwZ190cmdtCQlcCmRpZmYgLS1naXQgYS9jb250cmliL21l c29uLmJ1aWxkIGIvY29udHJpYi9tZXNvbi5idWlsZAppbmRleCAxYmE3M2ViZDY3Li4wNDQyZWMy NjQ0IDEwMDY0NAotLS0gYS9jb250cmliL21lc29uLmJ1aWxkCisrKyBiL2NvbnRyaWIvbWVzb24u YnVpbGQKQEAgLTQ5LDYgKzQ5LDcgQEAgc3ViZGlyKCdwZ19mcmVlc3BhY2VtYXAnKQogc3ViZGly KCdwZ19sb2dpY2FsaW5zcGVjdCcpCiBzdWJkaXIoJ3BnX3ByZXdhcm0nKQogc3ViZGlyKCdwZ3Jv d2xvY2tzJykKK3N1YmRpcigncGdfc3RhdF9wbGFucycpCiBzdWJkaXIoJ3BnX3N0YXRfc3RhdGVt ZW50cycpCiBzdWJkaXIoJ3Bnc3RhdHR1cGxlJykKIHN1YmRpcigncGdfc3VyZ2VyeScpCmRpZmYg LS1naXQgYS9jb250cmliL3BnX3N0YXRfcGxhbnMvTWFrZWZpbGUgYi9jb250cmliL3BnX3N0YXRf cGxhbnMvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZTA3 M2RiOTVlZAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcGdfc3RhdF9wbGFucy9NYWtlZmls ZQpAQCAtMCwwICsxLDI5IEBACisjIGNvbnRyaWIvcGdfc3RhdF9wbGFucy9NYWtlZmlsZQorCitN T0RVTEVfYmlnID0gcGdfc3RhdF9wbGFucworT0JKUyA9IFwKKwkkKFdJTjMyUkVTKSBcCisJcGdf c3RhdF9wbGFucy5vCisKK0VYVEVOU0lPTiA9IHBnX3N0YXRfcGxhbnMKK0RBVEEgPSBwZ19zdGF0 X3BsYW5zLS0xLjAuc3FsCitQR0ZJTEVERVNDID0gInBnX3N0YXRfcGxhbnMgLSB0cmFjayBwZXIt cGxhbiBjYWxsIGNvdW50cywgZXhlY3V0aW9uIHRpbWVzIGFuZCBFWFBMQUlOIHRleHRzIgorCitM REZMQUdTX1NMICs9ICQoZmlsdGVyIC1sbSwgJChMSUJTKSkKKworUkVHUkVTU19PUFRTID0gLS10 ZW1wLWNvbmZpZyAkKHRvcF9zcmNkaXIpL2NvbnRyaWIvcGdfc3RhdF9wbGFucy9wZ19zdGF0X3Bs YW5zLmNvbmYKK1JFR1JFU1MgPSBzZWxlY3QgcHJpdmlsZWdlcyBjbGVhbnVwCisjIERpc2FibGVk IGJlY2F1c2UgdGhlc2UgdGVzdHMgcmVxdWlyZSAic2hhcmVkX3ByZWxvYWRfbGlicmFyaWVzPXBn X3N0YXRfcGxhbnMiLAorIyB3aGljaCB0eXBpY2FsIGluc3RhbGxjaGVjayB1c2VycyBkbyBub3Qg aGF2ZSAoZS5nLiBidWlsZGZhcm0gY2xpZW50cykuCitOT19JTlNUQUxMQ0hFQ0sgPSAxCisKK2lm ZGVmIFVTRV9QR1hTCitQR19DT05GSUcgPSBwZ19jb25maWcKK1BHWFMgOj0gJChzaGVsbCAkKFBH X0NPTkZJRykgLS1wZ3hzKQoraW5jbHVkZSAkKFBHWFMpCitlbHNlCitzdWJkaXIgPSBjb250cmli L3BnX3N0YXRfcGxhbnMKK3RvcF9idWlsZGRpciA9IC4uLy4uCitpbmNsdWRlICQodG9wX2J1aWxk ZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCitpbmNsdWRlICQodG9wX3NyY2RpcikvY29udHJpYi9j b250cmliLWdsb2JhbC5taworZW5kaWYKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9wbGFu cy9leHBlY3RlZC9jbGVhbnVwLm91dCBiL2NvbnRyaWIvcGdfc3RhdF9wbGFucy9leHBlY3RlZC9j bGVhbnVwLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41MTU2NTYx N2NlCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wZ19zdGF0X3BsYW5zL2V4cGVjdGVkL2Ns ZWFudXAub3V0CkBAIC0wLDAgKzEgQEAKK0RST1AgRVhURU5TSU9OIHBnX3N0YXRfcGxhbnM7CmRp ZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfcGxhbnMvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQg Yi9jb250cmliL3BnX3N0YXRfcGxhbnMvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uM2UyMWQ2ZDcwMQotLS0gL2Rldi9udWxsCisr KyBiL2NvbnRyaWIvcGdfc3RhdF9wbGFucy9leHBlY3RlZC9wcml2aWxlZ2VzLm91dApAQCAtMCww ICsxLDEyNSBAQAorLS0KKy0tIE9ubHkgc3VwZXJ1c2VycyBhbmQgcm9sZXMgd2l0aCBwcml2aWxl Z2VzIG9mIHRoZSBwZ19yZWFkX2FsbF9zdGF0cyByb2xlCistLSBhcmUgYWxsb3dlZCB0byBzZWUg dGhlIHBsYW4gdGV4dCwgcXVlcnlpZCBhbmQgcGxhbmlkIG9mIHF1ZXJpZXMgZXhlY3V0ZWQgYnkK Ky0tIG90aGVyIHVzZXJzLiBPdGhlciB1c2VycyBjYW4gc2VlIHRoZSBzdGF0aXN0aWNzLgorLS0K K0NSRUFURSBST0xFIHJlZ3Jlc3Nfc3RhdHNfc3VwZXJ1c2VyIFNVUEVSVVNFUjsKK0NSRUFURSBS T0xFIHJlZ3Jlc3Nfc3RhdHNfdXNlcjE7CitDUkVBVEUgUk9MRSByZWdyZXNzX3N0YXRzX3VzZXIy OworR1JBTlQgcGdfcmVhZF9hbGxfc3RhdHMgVE8gcmVncmVzc19zdGF0c191c2VyMjsKK1NFVCBS T0xFIHJlZ3Jlc3Nfc3RhdHNfc3VwZXJ1c2VyOworU0VMRUNUIHBnX3N0YXRfcGxhbnNfcmVzZXQo KSBJUyBOT1QgTlVMTCBBUyB0OworIHQgCistLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCAxIEFT ICJPTkUiOworIE9ORSAKKy0tLS0tCisgICAxCisoMSByb3cpCisKK1NFVCBST0xFIHJlZ3Jlc3Nf c3RhdHNfdXNlcjE7CitTRUxFQ1QgMSsxIEFTICJUV08iOworIFRXTyAKKy0tLS0tCisgICAyCiso MSByb3cpCisKKy0tCistLSBBIHN1cGVydXNlciBjYW4gcmVhZCBhbGwgY29sdW1ucyBvZiBxdWVy aWVzIGV4ZWN1dGVkIGJ5IG90aGVycywKKy0tIGluY2x1ZGluZyBwbGFuIHRleHQsIHF1ZXJ5aWQg YW5kIHBsYW5pZC4KKy0tCitTRVQgUk9MRSByZWdyZXNzX3N0YXRzX3N1cGVydXNlcjsKK1NFTEVD VCByLnJvbG5hbWUsIHNzLnF1ZXJ5aWQgPD4gMCBBUyBxdWVyeWlkX2Jvb2wsIHNzLnBsYW5pZCA8 PiAwIEFTIHBsYW5pZF9ib29sLCBzcy5wbGFuLCBzcy5jYWxscworICBGUk9NIHBnX3N0YXRfcGxh bnMgc3MgSk9JTiBwZ19yb2xlcyByIE9OIHNzLnVzZXJpZCA9IHIub2lkCisgIE9SREVSIEJZIHIu cm9sbmFtZSwgc3MucGxhbiBDT0xMQVRFICJDIiwgc3MuY2FsbHM7CisgICAgICAgICByb2xuYW1l ICAgICAgICAgfCBxdWVyeWlkX2Jvb2wgfCBwbGFuaWRfYm9vbCB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBsYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBjYWxscyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIHJl Z3Jlc3Nfc3RhdHNfc3VwZXJ1c2VyIHwgdCAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCBSZXN1 bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDEKKyByZWdyZXNzX3N0YXRzX3N1cGVydXNlciB8 IHQgICAgICAgICAgICB8IHQgICAgICAgICAgIHwgUmVzdWx0ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAxCisgcmVncmVzc19zdGF0c19zdXBlcnVzZXIgfCB0ICAgICAgICAgICAgfCB0ICAgICAg ICAgICB8IFNvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCAgICAgMAorICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgIFNvcnQgS2V5OiBwZ19h dXRoaWQucm9sbmFtZSwgcGdfc3RhdF9wbGFucy5wbGFuIENPTExBVEUgIkMiLCBwZ19zdGF0X3Bs YW5zLmNhbGxzK3wgCisgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAg ICAgICAgICAgICB8ICAgLT4gIEhhc2ggSm9pbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICBIYXNoIENv bmQ6IChwZ19zdGF0X3BsYW5zLnVzZXJpZCA9IHBnX2F1dGhpZC5vaWQpICAgICAgICAgICAgICAg ICAgICAgICAgICt8IAorICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgfCAgICAgICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIHBnX3N0YXRfcGxhbnMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wgCisgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgICB8ICAgICAgICAgLT4gIEhh c2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGdfYXV0aGlkICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAorIHJlZ3Jlc3Nfc3Rh dHNfdXNlcjEgICAgIHwgdCAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCBSZXN1bHQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgIDEKKyg0IHJvd3MpCisKKy0tCistLSByZWdyZXNzX3N0YXRzX3Vz ZXIxIGhhcyBubyBwcml2aWxlZ2VzIHRvIHJlYWQgdGhlIHBsYW4gdGV4dCwgcXVlcnlpZAorLS0g b3IgcGxhbmlkIG9mIHF1ZXJpZXMgZXhlY3V0ZWQgYnkgb3RoZXJzIGJ1dCBjYW4gc2VlIHN0YXRp c3RpY3MKKy0tIGxpa2UgY2FsbHMgYW5kIHJvd3MuCistLQorU0VUIFJPTEUgcmVncmVzc19zdGF0 c191c2VyMTsKK1NFTEVDVCByLnJvbG5hbWUsIHNzLnF1ZXJ5aWQgPD4gMCBBUyBxdWVyeWlkX2Jv b2wsIHNzLnBsYW5pZCA8PiAwIEFTIHBsYW5pZF9ib29sLCBzcy5wbGFuLCBzcy5jYWxscworICBG Uk9NIHBnX3N0YXRfcGxhbnMgc3MgSk9JTiBwZ19yb2xlcyByIE9OIHNzLnVzZXJpZCA9IHIub2lk CisgIE9SREVSIEJZIHIucm9sbmFtZSwgc3MucGxhbiBDT0xMQVRFICJDIiwgc3MuY2FsbHM7Cisg ICAgICAgICByb2xuYW1lICAgICAgICAgfCBxdWVyeWlkX2Jvb2wgfCBwbGFuaWRfYm9vbCB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBjYWxscyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLQorIHJlZ3Jlc3Nfc3RhdHNfc3VwZXJ1c2VyIHwgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgfCA8aW5zdWZmaWNpZW50IHByaXZpbGVnZT4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDEKKyByZWdyZXNzX3N0 YXRzX3N1cGVydXNlciB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgPGluc3VmZmljaWVu dCBwcml2aWxlZ2U+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAxCisgcmVncmVzc19zdGF0c19zdXBlcnVzZXIgfCAgICAgICAg ICAgICAgfCAgICAgICAgICAgICB8IDxpbnN1ZmZpY2llbnQgcHJpdmlsZWdlPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMQor IHJlZ3Jlc3Nfc3RhdHNfdXNlcjEgICAgIHwgdCAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCBS ZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDEKKyByZWdyZXNzX3N0YXRzX3VzZXIxICAg ICB8IHQgICAgICAgICAgICB8IHQgICAgICAgICAgIHwgU29ydCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICt8ICAgICAwCisgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAg ICAgICAgICB8ICAgU29ydCBLZXk6IHBnX2F1dGhpZC5yb2xuYW1lLCBwZ19zdGF0X3BsYW5zLnBs YW4gQ09MTEFURSAiQyIsIHBnX3N0YXRfcGxhbnMuY2FsbHMrfCAKKyAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAtPiAgSGFzaCBKb2luICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICt8IAorICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgfCAgICAgICAgIEhhc2ggQ29uZDogKHBnX3N0YXRfcGxhbnMudXNlcmlkID0gcGdf YXV0aGlkLm9pZCkgICAgICAgICAgICAgICAgICAgICAgICAgK3wgCisgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgICB8ICAgICAgICAgLT4gIEZ1bmN0 aW9uIFNjYW4gb24gcGdfc3RhdF9wbGFucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAg ICAgICAgICAgIHwgICAgICAgICAtPiAgSGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IAorICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBwZ19hdXRoaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgCisoNSByb3dzKQorCistLQorLS0gcmVncmVzc19zdGF0c191c2VyMiwgd2l0 aCBwZ19yZWFkX2FsbF9zdGF0cyByb2xlIHByaXZpbGVnZXMsIGNhbgorLS0gcmVhZCBhbGwgY29s dW1ucywgaW5jbHVkaW5nIHBsYW4gdGV4dCwgcXVlcnlpZCBhbmQgcGxhbmlkLCBvZiBxdWVyaWVz CistLSBleGVjdXRlZCBieSBvdGhlcnMuCistLQorU0VUIFJPTEUgcmVncmVzc19zdGF0c191c2Vy MjsKK1NFTEVDVCByLnJvbG5hbWUsIHNzLnF1ZXJ5aWQgPD4gMCBBUyBxdWVyeWlkX2Jvb2wsIHNz LnBsYW5pZCA8PiAwIEFTIHBsYW5pZF9ib29sLCBzcy5wbGFuLCBzcy5jYWxscworICBGUk9NIHBn X3N0YXRfcGxhbnMgc3MgSk9JTiBwZ19yb2xlcyByIE9OIHNzLnVzZXJpZCA9IHIub2lkCisgIE9S REVSIEJZIHIucm9sbmFtZSwgc3MucGxhbiBDT0xMQVRFICJDIiwgc3MuY2FsbHM7CisgICAgICAg ICByb2xuYW1lICAgICAgICAgfCBxdWVyeWlkX2Jvb2wgfCBwbGFuaWRfYm9vbCB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCBjYWxscyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLQorIHJlZ3Jlc3Nfc3RhdHNfc3VwZXJ1c2VyIHwgdCAgICAgICAgICAgIHwgdCAgICAgICAg ICAgfCBSZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDEKKyByZWdyZXNzX3N0YXRzX3N1 cGVydXNlciB8IHQgICAgICAgICAgICB8IHQgICAgICAgICAgIHwgUmVzdWx0ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAxCisgcmVncmVzc19zdGF0c19zdXBlcnVzZXIgfCB0ICAgICAgICAgICAg fCB0ICAgICAgICAgICB8IFNvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCAgICAgMQorICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgIFNvcnQg S2V5OiBwZ19hdXRoaWQucm9sbmFtZSwgcGdfc3RhdF9wbGFucy5wbGFuIENPTExBVEUgIkMiLCBw Z19zdGF0X3BsYW5zLmNhbGxzK3wgCisgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgfCAgICAgICAgICAgICB8ICAgLT4gIEhhc2ggSm9pbiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAg ICBIYXNoIENvbmQ6IChwZ19zdGF0X3BsYW5zLnVzZXJpZCA9IHBnX2F1dGhpZC5vaWQpICAgICAg ICAgICAgICAgICAgICAgICAgICt8IAorICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIHBnX3N0 YXRfcGxhbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wgCisgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgICB8ICAgICAg ICAgLT4gIEhhc2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGdf YXV0aGlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAorIHJl Z3Jlc3Nfc3RhdHNfdXNlcjEgICAgIHwgdCAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCBSZXN1 bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDEKKyByZWdyZXNzX3N0YXRzX3VzZXIxICAgICB8 IHQgICAgICAgICAgICB8IHQgICAgICAgICAgIHwgU29ydCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8 ICAgICAxCisgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAg ICAgICB8ICAgU29ydCBLZXk6IHBnX2F1dGhpZC5yb2xuYW1lLCBwZ19zdGF0X3BsYW5zLnBsYW4g Q09MTEFURSAiQyIsIHBnX3N0YXRfcGxhbnMuY2FsbHMrfCAKKyAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAtPiAgSGFzaCBKb2luICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICt8IAorICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgfCAgICAgICAgIEhhc2ggQ29uZDogKHBnX3N0YXRfcGxhbnMudXNlcmlkID0gcGdfYXV0 aGlkLm9pZCkgICAgICAgICAgICAgICAgICAgICAgICAgK3wgCisgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgICB8ICAgICAgICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gcGdfc3RhdF9wbGFucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAg ICAgICAgIHwgICAgICAgICAtPiAgSGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IAorICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBwZ19hdXRoaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgCisgcmVncmVzc19zdGF0c191c2VyMiAgICAgfCB0ICAgICAgICAgICAgfCB0ICAg ICAgICAgICB8IFNvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCAgICAgMAorICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgIFNvcnQgS2V5OiBw Z19hdXRoaWQucm9sbmFtZSwgcGdfc3RhdF9wbGFucy5wbGFuIENPTExBVEUgIkMiLCBwZ19zdGF0 X3BsYW5zLmNhbGxzK3wgCisgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg fCAgICAgICAgICAgICB8ICAgLT4gIEhhc2ggSm9pbiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICBIYXNo IENvbmQ6IChwZ19zdGF0X3BsYW5zLnVzZXJpZCA9IHBnX2F1dGhpZC5vaWQpICAgICAgICAgICAg ICAgICAgICAgICAgICt8IAorICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg IHwgICAgICAgICAgICAgfCAgICAgICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIHBnX3N0YXRfcGxh bnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wgCisgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgICB8ICAgICAgICAgLT4g IEhhc2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGdfYXV0aGlk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDYgcm93cykK KworLS0KKy0tIGNsZWFudXAKKy0tCitSRVNFVCBST0xFOworRFJPUCBST0xFIHJlZ3Jlc3Nfc3Rh dHNfc3VwZXJ1c2VyOworRFJPUCBST0xFIHJlZ3Jlc3Nfc3RhdHNfdXNlcjE7CitEUk9QIFJPTEUg cmVncmVzc19zdGF0c191c2VyMjsKK1NFTEVDVCBwZ19zdGF0X3BsYW5zX3Jlc2V0KCkgSVMgTk9U IE5VTEwgQVMgdDsKKyB0IAorLS0tCisgdAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9jb250cmli L3BnX3N0YXRfcGxhbnMvZXhwZWN0ZWQvc2VsZWN0Lm91dCBiL2NvbnRyaWIvcGdfc3RhdF9wbGFu cy9leHBlY3RlZC9zZWxlY3Qub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLjkwNmQ4Y2U5MGQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BnX3N0YXRfcGxhbnMv ZXhwZWN0ZWQvc2VsZWN0Lm91dApAQCAtMCwwICsxLDI2MiBAQAorLS0KKy0tIFNFTEVDVCBzdGF0 ZW1lbnRzCistLQorQ1JFQVRFIEVYVEVOU0lPTiBwZ19zdGF0X3BsYW5zOworU0VMRUNUIHBnX3N0 YXRfcGxhbnNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0OworIHQgCistLS0KKyB0CisoMSByb3cp CisKKy0tCistLSBzaW1wbGUgc3RhdGVtZW50cworLS0KK1NFTEVDVCAxIEZST00gcGdfY2xhc3Mg TElNSVQgMTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICAgICAgMQorKDEgcm93KQorCitT RUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAncGdfY2xhc3MnOworID9jb2x1 bW4/IAorLS0tLS0tLS0tLQorICAgICAgICAxCisoMSByb3cpCisKK1NFVCBlbmFibGVfaW5kZXhz Y2FuID0gb2ZmOworU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3BnX2Ns YXNzJzsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICAgICAgMQorKDEgcm93KQorCitTRVQg ZW5hYmxlX2luZGV4c2NhbiA9IG9uOworU0VMRUNUIHBsYW4sIGNhbGxzIEZST00gcGdfc3RhdF9w bGFucyBPUkRFUiBCWSBwbGFuIENPTExBVEUgIkMiOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwbGFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGNhbGxzIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLQorIEJpdG1hcCBIZWFwIFNjYW4gb24gcGdfY2xhc3MgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICt8ICAgICAxCisgICBSZWNoZWNrIENvbmQ6IChyZWxuYW1lID0gJ3BnX2NsYXNz Jzo6bmFtZSkgICAgICAgICAgICAgICAgK3wgCisgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24g cGdfY2xhc3NfcmVsbmFtZV9uc3BfaW5kZXggICAgICAgK3wgCisgICAgICAgICBJbmRleCBDb25k OiAocmVsbmFtZSA9ICdwZ19jbGFzcyc6Om5hbWUpICAgICAgICAgICAgIHwgCisgSW5kZXggT25s eSBTY2FuIHVzaW5nIHBnX2NsYXNzX3JlbG5hbWVfbnNwX2luZGV4IG9uIHBnX2NsYXNzK3wgICAg IDEKKyAgIEluZGV4IENvbmQ6IChyZWxuYW1lID0gJ3BnX2NsYXNzJzo6bmFtZSkgICAgICAgICAg ICAgICAgICAgfCAKKyBMaW1pdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArfCAgICAgMQorICAgLT4gIFNlcSBTY2FuIG9uIHBnX2NsYXNzICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAorIFJlc3VsdCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAxCisgU29ydCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wg ICAgIDAKKyAgIFNvcnQgS2V5OiBwZ19zdGF0X3BsYW5zLnBsYW4gQ09MTEFURSAiQyIgICAgICAg ICAgICAgICAgICArfCAKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIHBnX3N0YXRfcGxhbnMgICAg ICAgICAgICAgICAgICAgICAgICAgfCAKKyg1IHJvd3MpCisKK1NFTEVDVCBwZ19zdGF0X3BsYW5z X3Jlc2V0KCkgSVMgTk9UIE5VTEwgQVMgdDsKKyB0IAorLS0tCisgdAorKDEgcm93KQorCistLQor LS0gc3VicGxhbnMgYW5kIENURXMKKy0tCitXSVRIIHggQVMgTUFURVJJQUxJWkVEIChTRUxFQ1Qg MSkKK1NFTEVDVCAqIEZST00geDsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICAgICAgMQor KDEgcm93KQorCitTRUxFQ1QgYS5hdHRuYW1lLAorICAgKFNFTEVDVCBwZ19jYXRhbG9nLnBnX2dl dF9leHByKGQuYWRiaW4sIGQuYWRyZWxpZCkKKyAgICBGUk9NIHBnX2NhdGFsb2cucGdfYXR0cmRl ZiBkCisgICAgV0hFUkUgZC5hZHJlbGlkID0gYS5hdHRyZWxpZCBBTkQgZC5hZG51bSA9IGEuYXR0 bnVtIEFORCBhLmF0dGhhc2RlZikKKyBGUk9NIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlIGEKKyBX SEVSRSBhLmF0dHJlbGlkID0gJ3BnX2NsYXNzJzo6cmVnY2xhc3MKKyBPUkRFUiBCWSBhdHRudW0g TElNSVQgMTsKKyBhdHRuYW1lICB8IHBnX2dldF9leHByIAorLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCisgdGFibGVvaWQgfCAKKygxIHJvdykKKworU0VMRUNUIHBsYW4sIGNhbGxzIEZST00gcGdf c3RhdF9wbGFucyBPUkRFUiBCWSBwbGFuIENPTExBVEUgIkMiOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBsYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgY2FsbHMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBDVEUgU2NhbiBv biB4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICt8ICAgICAxCisgICBDVEUgeCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgICAgLT4gIFJl c3VsdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IAorIExpbWl0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wgICAgIDEKKyAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIHBnX2F0dHJpYnV0ZV9yZWxpZF9hdHRudW1faW5kZXggb24gcGdfYXR0cmli dXRlIGEgICAgICt8IAorICAgICAgICAgSW5kZXggQ29uZDogKGF0dHJlbGlkID0gJzEyNTknOjpv aWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wgCisgICAgICAgICBTdWJQbGFu IDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArfCAKKyAgICAgICAgICAgLT4gIFJlc3VsdCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IAorICAgICAgICAgICAgICAgICBPbmUt VGltZSBGaWx0ZXI6IGEuYXR0aGFzZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg K3wgCisgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwZ19hdHRyZGVmIGQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgICAgICAgICAgICAgICAgICAgICAgRmls dGVyOiAoKGFkcmVsaWQgPSBhLmF0dHJlbGlkKSBBTkQgKGFkbnVtID0gYS5hdHRudW0pKSB8IAor IFJlc3VsdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDEKKyBTb3J0ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8ICAg ICAwCisgICBTb3J0IEtleTogcGdfc3RhdF9wbGFucy5wbGFuIENPTExBVEUgIkMiICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIHBn X3N0YXRfcGxhbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAor KDQgcm93cykKKworU0VMRUNUIHBnX3N0YXRfcGxhbnNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0 OworIHQgCistLS0KKyB0CisoMSByb3cpCisKKy0tCistLSBwYXJ0aXRvbmluZworLS0KK2NyZWF0 ZSB0YWJsZSBscCAoYSBjaGFyKSBwYXJ0aXRpb24gYnkgbGlzdCAoYSk7CitjcmVhdGUgdGFibGUg bHBfZGVmYXVsdCBwYXJ0aXRpb24gb2YgbHAgZGVmYXVsdDsKK2NyZWF0ZSB0YWJsZSBscF9lZiBw YXJ0aXRpb24gb2YgbHAgZm9yIHZhbHVlcyBpbiAoJ2UnLCAnZicpOworY3JlYXRlIHRhYmxlIGxw X2FkIHBhcnRpdGlvbiBvZiBscCBmb3IgdmFsdWVzIGluICgnYScsICdkJyk7CitjcmVhdGUgdGFi bGUgbHBfYmMgcGFydGl0aW9uIG9mIGxwIGZvciB2YWx1ZXMgaW4gKCdiJywgJ2MnKTsKK2NyZWF0 ZSB0YWJsZSBscF9nIHBhcnRpdGlvbiBvZiBscCBmb3IgdmFsdWVzIGluICgnZycpOworY3JlYXRl IHRhYmxlIGxwX251bGwgcGFydGl0aW9uIG9mIGxwIGZvciB2YWx1ZXMgaW4gKG51bGwpOworc2Vs ZWN0ICogZnJvbSBscDsKKyBhIAorLS0tCisoMCByb3dzKQorCitzZWxlY3QgKiBmcm9tIGxwIHdo ZXJlIGEgPiAnYScgYW5kIGEgPCAnZCc7CisgYSAKKy0tLQorKDAgcm93cykKKworc2VsZWN0ICog ZnJvbSBscCB3aGVyZSBhID4gJ2EnIGFuZCBhIDw9ICdkJzsKKyBhIAorLS0tCisoMCByb3dzKQor CitzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPSAnYSc7CisgYSAKKy0tLQorKDAgcm93cykKKwor c2VsZWN0ICogZnJvbSBscCB3aGVyZSAnYScgPSBhOwkvKiBjb21tdXRlZCAqLworIGEgCistLS0K KygwIHJvd3MpCisKK3NlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSBpcyBub3QgbnVsbDsKKyBhIAor LS0tCisoMCByb3dzKQorCitzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgaXMgbnVsbDsKKyBhIAor LS0tCisoMCByb3dzKQorCitzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPSAnYScgb3IgYSA9ICdj JzsKKyBhIAorLS0tCisoMCByb3dzKQorCitzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgaXMgbm90 IG51bGwgYW5kIChhID0gJ2EnIG9yIGEgPSAnYycpOworIGEgCistLS0KKygwIHJvd3MpCisKK3Nl bGVjdCAqIGZyb20gbHAgd2hlcmUgYSA8PiAnZyc7CisgYSAKKy0tLQorKDAgcm93cykKKworc2Vs ZWN0ICogZnJvbSBscCB3aGVyZSBhIDw+ICdhJyBhbmQgYSA8PiAnZCc7CisgYSAKKy0tLQorKDAg cm93cykKKworc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIG5vdCBpbiAoJ2EnLCAnZCcpOworIGEg CistLS0KKygwIHJvd3MpCisKK1NFTEVDVCBwbGFuLCBjYWxscyBGUk9NIHBnX3N0YXRfcGxhbnMg T1JERVIgQlkgcGxhbiBDT0xMQVRFICJDIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGxhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjYWxs cyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBBcHBlbmQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArfCAgICAgMQorICAgLT4gIFNlcSBTY2FuIG9uIGxwX2FkIGxwXzEgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IAorICAgICAgICAgRmlsdGVyOiAo KGEgPSAnYSc6OmJwY2hhcikgT1IgKGEgPSAnYyc6OmJwY2hhcikpICAgICAgICAgICAgICAgICAg ICAgICt8IAorICAgLT4gIFNlcSBTY2FuIG9uIGxwX2JjIGxwXzIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IAorICAgICAgICAgRmlsdGVyOiAoKGEg PSAnYSc6OmJwY2hhcikgT1IgKGEgPSAnYyc6OmJwY2hhcikpICAgICAgICAgICAgICAgICAgICAg ICB8IAorIEFwcGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8ICAgICAxCisgICAtPiAgU2VxIFNjYW4gb24g bHBfYWQgbHBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgK3wgCisgICAgICAgICBGaWx0ZXI6ICgoYSA+ICdhJzo6YnBjaGFyKSBBTkQgKGEgPD0gJ2Qn OjpicGNoYXIpKSAgICAgICAgICAgICAgICAgICAgK3wgCisgICAtPiAgU2VxIFNjYW4gb24gbHBf YmMgbHBfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg K3wgCisgICAgICAgICBGaWx0ZXI6ICgoYSA+ICdhJzo6YnBjaGFyKSBBTkQgKGEgPD0gJ2QnOjpi cGNoYXIpKSAgICAgICAgICAgICAgICAgICAgK3wgCisgICAtPiAgU2VxIFNjYW4gb24gbHBfZGVm YXVsdCBscF8zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wg CisgICAgICAgICBGaWx0ZXI6ICgoYSA+ICdhJzo6YnBjaGFyKSBBTkQgKGEgPD0gJ2QnOjpicGNo YXIpKSAgICAgICAgICAgICAgICAgICAgIHwgCisgQXBwZW5kICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wgICAg IDEKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9hZCBscF8xICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgICAgICAgIEZpbHRlcjogKChhIElTIE5P VCBOVUxMKSBBTkQgKChhID0gJ2EnOjpicGNoYXIpIE9SIChhID0gJ2MnOjpicGNoYXIpKSkrfCAK KyAgIC0+ICBTZXEgU2NhbiBvbiBscF9iYyBscF8yICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgICAgICAgIEZpbHRlcjogKChhIElTIE5PVCBO VUxMKSBBTkQgKChhID0gJ2EnOjpicGNoYXIpIE9SIChhID0gJ2MnOjpicGNoYXIpKSkgfCAKKyBB cHBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArfCAgICAgMQorICAgLT4gIFNlcSBTY2FuIG9uIGxwX2FkIGxw XzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IAor ICAgICAgICAgRmlsdGVyOiAoYSA8PiAnZyc6OmJwY2hhcikgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICt8IAorICAgLT4gIFNlcSBTY2FuIG9uIGxwX2JjIGxwXzIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IAorICAg ICAgICAgRmlsdGVyOiAoYSA8PiAnZyc6OmJwY2hhcikgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICt8IAorICAgLT4gIFNlcSBTY2FuIG9uIGxwX2VmIGxwXzMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IAorICAgICAg ICAgRmlsdGVyOiAoYSA8PiAnZyc6OmJwY2hhcikgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICt8IAorICAgLT4gIFNlcSBTY2FuIG9uIGxwX2RlZmF1bHQgbHBfNCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IAorICAgICAgICAg RmlsdGVyOiAoYSA8PiAnZyc6OmJwY2hhcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IAorIEFwcGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8ICAgICAxCisgICAtPiAg U2VxIFNjYW4gb24gbHBfYWQgbHBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgK3wgCisgICAgICAgICBGaWx0ZXI6IChhIElTIE5PVCBOVUxMKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wgCisgICAtPiAgU2Vx IFNjYW4gb24gbHBfYmMgbHBfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgK3wgCisgICAgICAgICBGaWx0ZXI6IChhIElTIE5PVCBOVUxMKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wgCisgICAtPiAgU2VxIFNj YW4gb24gbHBfZWYgbHBfMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgK3wgCisgICAgICAgICBGaWx0ZXI6IChhIElTIE5PVCBOVUxMKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wgCisgICAtPiAgU2VxIFNjYW4g b24gbHBfZyBscF80ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgK3wgCisgICAgICAgICBGaWx0ZXI6IChhIElTIE5PVCBOVUxMKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wgCisgICAtPiAgU2VxIFNjYW4gb24g bHBfZGVmYXVsdCBscF81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgK3wgCisgICAgICAgICBGaWx0ZXI6IChhIElTIE5PVCBOVUxMKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgQXBwZW5kICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg K3wgICAgIDEKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9hZCBscF8xICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgIC0+ICBTZXEgU2NhbiBvbiBs cF9iYyBscF8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArfCAKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9lZiBscF8zICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9n IGxwXzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr fCAKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9udWxsIGxwXzUgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9kZWZh dWx0IGxwXzYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAK KyBBcHBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArfCAgICAgMQorICAgLT4gIFNlcSBTY2FuIG9uIGxwX2Jj IGxwXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8 IAorICAgICAgICAgRmlsdGVyOiAoKGEgPD4gJ2EnOjpicGNoYXIpIEFORCAoYSA8PiAnZCc6OmJw Y2hhcikpICAgICAgICAgICAgICAgICAgICt8IAorICAgLT4gIFNlcSBTY2FuIG9uIGxwX2VmIGxw XzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IAor ICAgICAgICAgRmlsdGVyOiAoKGEgPD4gJ2EnOjpicGNoYXIpIEFORCAoYSA8PiAnZCc6OmJwY2hh cikpICAgICAgICAgICAgICAgICAgICt8IAorICAgLT4gIFNlcSBTY2FuIG9uIGxwX2cgbHBfMyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IAorICAg ICAgICAgRmlsdGVyOiAoKGEgPD4gJ2EnOjpicGNoYXIpIEFORCAoYSA8PiAnZCc6OmJwY2hhcikp ICAgICAgICAgICAgICAgICAgICt8IAorICAgLT4gIFNlcSBTY2FuIG9uIGxwX2RlZmF1bHQgbHBf NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IAorICAgICAg ICAgRmlsdGVyOiAoKGEgPD4gJ2EnOjpicGNoYXIpIEFORCAoYSA8PiAnZCc6OmJwY2hhcikpICAg ICAgICAgICAgICAgICAgICB8IAorIEFwcGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8ICAgICAxCisgICAt PiAgU2VxIFNjYW4gb24gbHBfYmMgbHBfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgK3wgCisgICAgICAgICBGaWx0ZXI6ICgoYSA+ICdhJzo6YnBjaGFy KSBBTkQgKGEgPCAnZCc6OmJwY2hhcikpICAgICAgICAgICAgICAgICAgICAgK3wgCisgICAtPiAg U2VxIFNjYW4gb24gbHBfZGVmYXVsdCBscF8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgK3wgCisgICAgICAgICBGaWx0ZXI6ICgoYSA+ICdhJzo6YnBjaGFyKSBB TkQgKGEgPCAnZCc6OmJwY2hhcikpICAgICAgICAgICAgICAgICAgICAgIHwgCisgQXBwZW5kICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgK3wgICAgIDEKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9iYyBscF8xICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgICAgICAg IEZpbHRlcjogKGEgPD4gQUxMICgne2EsZH0nOjpicGNoYXJbXSkpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArfCAKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9lZiBscF8yICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgICAgICAgIEZp bHRlcjogKGEgPD4gQUxMICgne2EsZH0nOjpicGNoYXJbXSkpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArfCAKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9nIGxwXzMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgICAgICAgIEZpbHRl cjogKGEgPD4gQUxMICgne2EsZH0nOjpicGNoYXJbXSkpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArfCAKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9kZWZhdWx0IGxwXzQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCAKKyAgICAgICAgIEZpbHRlcjog KGEgPD4gQUxMICgne2EsZH0nOjpicGNoYXJbXSkpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAKKyBSZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMQorIFNlcSBTY2FuIG9uIGxw X2FkIGxwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICt8ICAgICAxCisgICBGaWx0ZXI6ICgnYSc6OmJwY2hhciA9IGEpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgU2VxIFNjYW4gb24g bHBfYWQgbHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgK3wgICAgIDEKKyAgIEZpbHRlcjogKGEgPSAnYSc6OmJwY2hhcikgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBTZXEgU2NhbiBv biBscF9udWxsIGxwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArfCAgICAgMQorICAgRmlsdGVyOiAoYSBJUyBOVUxMKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAorIFNvcnQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICt8ICAgICAwCisgICBTb3J0IEtleTogcGdfc3RhdF9wbGFucy5wbGFuIENP TExBVEUgIkMiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3wgCisgICAtPiAg RnVuY3Rpb24gU2NhbiBvbiBwZ19zdGF0X3BsYW5zICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgCisoMTQgcm93cykKKworU0VMRUNUIHBnX3N0YXRfcGxhbnNfcmVz ZXQoKSBJUyBOT1QgTlVMTCBBUyB0OworIHQgCistLS0KKyB0CisoMSByb3cpCisKZGlmZiAtLWdp dCBhL2NvbnRyaWIvcGdfc3RhdF9wbGFucy9tZXNvbi5idWlsZCBiL2NvbnRyaWIvcGdfc3RhdF9w bGFucy9tZXNvbi5idWlsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4z YmQ4ODRkOTYwCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wZ19zdGF0X3BsYW5zL21lc29u LmJ1aWxkCkBAIC0wLDAgKzEsNDMgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI0LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitwZ19zdGF0X3BsYW5zX3NvdXJjZXMgPSBmaWxl cygKKyAgJ3BnX3N0YXRfcGxhbnMuYycsCispCisKK2lmIGhvc3Rfc3lzdGVtID09ICd3aW5kb3dz JworICBwZ19zdGF0X3BsYW5zX3NvdXJjZXMgKz0gcmNfbGliX2dlbi5wcm9jZXNzKHdpbjMydmVy X3JjLCBleHRyYV9hcmdzOiBbCisgICAgJy0tTkFNRScsICdwZ19zdGF0X3BsYW5zJywKKyAgICAn LS1GSUxFREVTQycsICdwZ19zdGF0X3BsYW5zIC0gdHJhY2sgcGVyLXBsYW4gY2FsbCBjb3VudHMs IGV4ZWN1dGlvbiB0aW1lcyBhbmQgRVhQTEFJTiB0ZXh0cycsXSkKK2VuZGlmCisKK3BnX3N0YXRf cGxhbnMgPSBzaGFyZWRfbW9kdWxlKCdwZ19zdGF0X3BsYW5zJywKKyAgcGdfc3RhdF9wbGFuc19z b3VyY2VzLAorICBrd2FyZ3M6IGNvbnRyaWJfbW9kX2FyZ3MgKyB7CisgICAgJ2RlcGVuZGVuY2ll cyc6IGNvbnRyaWJfbW9kX2FyZ3NbJ2RlcGVuZGVuY2llcyddLAorICB9LAorKQorY29udHJpYl90 YXJnZXRzICs9IHBnX3N0YXRfcGxhbnMKKworaW5zdGFsbF9kYXRhKAorICAncGdfc3RhdF9wbGFu cy5jb250cm9sJywKKyAgJ3BnX3N0YXRfcGxhbnMtLTEuMC5zcWwnLAorICBrd2FyZ3M6IGNvbnRy aWJfZGF0YV9hcmdzLAorKQorCit0ZXN0cyArPSB7CisgICduYW1lJzogJ3BnX3N0YXRfcGxhbnMn LAorICAnc2QnOiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKKyAgJ2JkJzogbWVzb24uY3Vy cmVudF9idWlsZF9kaXIoKSwKKyAgJ3JlZ3Jlc3MnOiB7CisgICAgJ3NxbCc6IFsKKyAgICAgICdz ZWxlY3QnLAorICAgICAgJ3ByaXZpbGVnZXMnLAorICAgICAgJ2NsZWFudXAnLAorICAgIF0sCisg ICAgJ3JlZ3Jlc3NfYXJncyc6IFsnLS10ZW1wLWNvbmZpZycsIGZpbGVzKCdwZ19zdGF0X3BsYW5z LmNvbmYnKV0sCisgICAgIyBEaXNhYmxlZCBiZWNhdXNlIHRoZXNlIHRlc3RzIHJlcXVpcmUKKyAg ICAjICJzaGFyZWRfcHJlbG9hZF9saWJyYXJpZXM9cGdfc3RhdF9wbGFucyIsIHdoaWNoIHR5cGlj YWwKKyAgICAjIHJ1bm5pbmdjaGVjayB1c2VycyBkbyBub3QgaGF2ZSAoZS5nLiBidWlsZGZhcm0g Y2xpZW50cykuCisgICAgJ3J1bm5pbmdjaGVjayc6IGZhbHNlLAorICB9Cit9CmRpZmYgLS1naXQg YS9jb250cmliL3BnX3N0YXRfcGxhbnMvcGdfc3RhdF9wbGFucy0tMS4wLnNxbCBiL2NvbnRyaWIv cGdfc3RhdF9wbGFucy9wZ19zdGF0X3BsYW5zLS0xLjAuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAuLmYwODQ1MmIyNzQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmli L3BnX3N0YXRfcGxhbnMvcGdfc3RhdF9wbGFucy0tMS4wLnNxbApAQCAtMCwwICsxLDMzIEBACisv KiBjb250cmliL3BnX3N0YXRfcGxhbnMvcGdfc3RhdF9wbGFucy0tMS4wLnNxbCAqLworCistLSBj b21wbGFpbiBpZiBzY3JpcHQgaXMgc291cmNlZCBpbiBwc3FsLCByYXRoZXIgdGhhbiB2aWEgQ1JF QVRFIEVYVEVOU0lPTgorXGVjaG8gVXNlICJDUkVBVEUgRVhURU5TSU9OIHBnX3N0YXRfcGxhbnMi IHRvIGxvYWQgdGhpcyBmaWxlLiBccXVpdAorCistLSBSZWdpc3RlciBmdW5jdGlvbnMuCitDUkVB VEUgRlVOQ1RJT04gcGdfc3RhdF9wbGFuc19yZXNldCgpCitSRVRVUk5TIHZvaWQKK0FTICdNT0RV TEVfUEFUSE5BTUUnCitMQU5HVUFHRSBDIFBBUkFMTEVMIFNBRkU7CisKK0NSRUFURSBGVU5DVElP TiBwZ19zdGF0X3BsYW5zKElOIHNob3dwbGFuIGJvb2xlYW4sCisgICAgT1VUIHVzZXJpZCBvaWQs CisgICAgT1VUIGRiaWQgb2lkLAorICAgIE9VVCB0b3BsZXZlbCBib29sLAorICAgIE9VVCBxdWVy eWlkIGJpZ2ludCwKKyAgICBPVVQgcGxhbmlkIGJpZ2ludCwKKyAgICBPVVQgY2FsbHMgaW50OCwK KyAgICBPVVQgdG90YWxfZXhlY190aW1lIGZsb2F0OCwKKyAgICBPVVQgcGxhbiB0ZXh0CispCitS RVRVUk5TIFNFVE9GIHJlY29yZAorQVMgJ01PRFVMRV9QQVRITkFNRScsICdwZ19zdGF0X3BsYW5z XzFfMCcKK0xBTkdVQUdFIEMgU1RSSUNUIFZPTEFUSUxFIFBBUkFMTEVMIFNBRkU7CisKKy0tIFJl Z2lzdGVyIGEgdmlldyBvbiB0aGUgZnVuY3Rpb24gZm9yIGVhc2Ugb2YgdXNlLgorQ1JFQVRFIFZJ RVcgcGdfc3RhdF9wbGFucyBBUworICBTRUxFQ1QgKiBGUk9NIHBnX3N0YXRfcGxhbnModHJ1ZSk7 CisKK0dSQU5UIFNFTEVDVCBPTiBwZ19zdGF0X3BsYW5zIFRPIFBVQkxJQzsKKworLS0gRG9uJ3Qg d2FudCB0aGlzIHRvIGJlIGF2YWlsYWJsZSB0byBub24tc3VwZXJ1c2Vycy4KK1JFVk9LRSBBTEwg T04gRlVOQ1RJT04gcGdfc3RhdF9wbGFuc19yZXNldCgpIEZST00gUFVCTElDOwpkaWZmIC0tZ2l0 IGEvY29udHJpYi9wZ19zdGF0X3BsYW5zL3BnX3N0YXRfcGxhbnMuYyBiL2NvbnRyaWIvcGdfc3Rh dF9wbGFucy9wZ19zdGF0X3BsYW5zLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uNjVkYTQxZWVkYgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcGdfc3RhdF9wbGFu cy9wZ19zdGF0X3BsYW5zLmMKQEAgLTAsMCArMSw3NzkgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqCisgKiBwZ19zdGF0X3BsYW5zLmMKKyAqCQlUcmFjayBwZXItcGxhbiBjYWxsIGNvdW50cywg ZXhlY3V0aW9uIHRpbWVzIGFuZCBFWFBMQUlOIHRleHRzCisgKgkJYWNyb3NzIGEgd2hvbGUgZGF0 YWJhc2UgY2x1c3Rlci4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgor ICogSURFTlRJRklDQVRJT04KKyAqCQljb250cmliL3BnX3N0YXRfcGxhbnMvcGdfc3RhdF9wbGFu cy5jCisgKgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5o IgorCisjaW5jbHVkZSAiYWNjZXNzL3BhcmFsbGVsLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19h dXRoaWQuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9leHBsYWluLmgiCisjaW5jbHVkZSAiY29tbW9u L2hhc2hmbi5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKKyNpbmNsdWRlICJtYi9wZ193Y2hhci5o IgorI2luY2x1ZGUgIm5vZGVzL2p1bWJsZS5oIgorI2luY2x1ZGUgInBnc3RhdC5oIgorI2luY2x1 ZGUgIm9wdGltaXplci9wbGFubmVyLmgiCisjaW5jbHVkZSAidXRpbHMvYWNsLmgiCisjaW5jbHVk ZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9ndWMuaCIKKyNpbmNsdWRlICJ1 dGlscy9wZ3N0YXRfaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCisKK1BH X01PRFVMRV9NQUdJQzsKKworLyogQ3VycmVudCBuZXN0aW5nIGRlcHRoIG9mIHBsYW5uZXIvRXhl Y3V0b3JSdW4vUHJvY2Vzc1V0aWxpdHkgY2FsbHMgKi8KK3N0YXRpYyBpbnQJbmVzdGluZ19sZXZl bCA9IDA7CisKKy8qIFNhdmVkIGhvb2sgdmFsdWVzICovCitzdGF0aWMgcGxhbm5lcl9ob29rX3R5 cGUgcHJldl9wbGFubmVyX2hvb2sgPSBOVUxMOworc3RhdGljIEV4ZWN1dG9yU3RhcnRfaG9va190 eXBlIHByZXZfRXhlY3V0b3JTdGFydCA9IE5VTEw7CitzdGF0aWMgRXhlY3V0b3JSdW5faG9va190 eXBlIHByZXZfRXhlY3V0b3JSdW4gPSBOVUxMOworc3RhdGljIEV4ZWN1dG9yRmluaXNoX2hvb2tf dHlwZSBwcmV2X0V4ZWN1dG9yRmluaXNoID0gTlVMTDsKK3N0YXRpYyBFeGVjdXRvckVuZF9ob29r X3R5cGUgcHJldl9FeGVjdXRvckVuZCA9IE5VTEw7CisKKy8qLS0tLSBHVUMgdmFyaWFibGVzIC0t LS0qLworCit0eXBlZGVmIGVudW0KK3sKKwlQR1NQX1RSQUNLX05PTkUsCQkJLyogdHJhY2sgbm8g cGxhbnMgKi8KKwlQR1NQX1RSQUNLX1RPUCwJCQkJLyogb25seSBwbGFucyBmb3IgdG9wIGxldmVs IHN0YXRlbWVudHMgKi8KKwlQR1NQX1RSQUNLX0FMTCwJCQkJLyogYWxsIHBsYW5zLCBpbmNsdWRp bmcgZm9yIG5lc3RlZCBzdGF0ZW1lbnRzICovCit9CQkJUEdTUFRyYWNrTGV2ZWw7CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgdHJhY2tfb3B0aW9uc1tdID0KK3sKKwl7 Im5vbmUiLCBQR1NQX1RSQUNLX05PTkUsIGZhbHNlfSwKKwl7InRvcCIsIFBHU1BfVFJBQ0tfVE9Q LCBmYWxzZX0sCisJeyJhbGwiLCBQR1NQX1RSQUNLX0FMTCwgZmFsc2V9LAorCXtOVUxMLCAwLCBm YWxzZX0KK307CisKK3N0YXRpYyBpbnQJcGdzcF9tYXggPSA1MDAwOwkvKiBtYXggIyBwbGFucyB0 byB0cmFjayAqLworc3RhdGljIGludAlwZ3NwX21heF9zaXplID0gMjA0ODsJLyogbWF4IHNpemUg b2YgcGxhbiB0ZXh0IHRvIHRyYWNrIChpbgorCQkJCQkJCQkJICogYnl0ZXMpICovCitzdGF0aWMg aW50CXBnc3BfdHJhY2sgPSBQR1NQX1RSQUNLX1RPUDsJLyogdHJhY2tpbmcgbGV2ZWwgKi8KKwor I2RlZmluZSBwZ3NwX2VuYWJsZWQobGV2ZWwpIFwKKwkoIUlzUGFyYWxsZWxXb3JrZXIoKSAmJiBc CisJKGNvbXB1dGVfcGxhbl9pZCAhPSBDT01QVVRFX1BMQU5fSURfT0ZGKSAmJiBcCisJKHBnc3Bf dHJhY2sgPT0gUEdTUF9UUkFDS19BTEwgfHwgXAorCShwZ3NwX3RyYWNrID09IFBHU1BfVFJBQ0tf VE9QICYmIChsZXZlbCkgPT0gMCkpKQorCisjZGVmaW5lIFVTQUdFX0lOQ1JFQVNFCQkJMC41IC8q IGluY3JlYXNlIGJ5IHRoaXMgZWFjaCB0aW1lIHdlIHJlcG9ydAorCQkJCQkJCQkJICogc3RhdHMg Ki8KKyNkZWZpbmUgVVNBR0VfREVDUkVBU0VfRkFDVE9SCSgwLjk5KQkvKiBkZWNyZWFzZWQgZXZl cnkKKwkJCQkJCQkJCQkgKiBwZ3N0YXRfZGVhbGxvY19wbGFucyAqLworI2RlZmluZSBVU0FHRV9E RUFMTE9DX1BFUkNFTlQJNQkvKiBmcmVlIHRoaXMgJSBvZiBlbnRyaWVzIGF0IG9uY2UgKi8KKwor LyotLS0tIEZ1bmN0aW9uIGRlY2xhcmF0aW9ucyAtLS0tKi8KKworUEdfRlVOQ1RJT05fSU5GT19W MShwZ19zdGF0X3BsYW5zX3Jlc2V0KTsKK1BHX0ZVTkNUSU9OX0lORk9fVjEocGdfc3RhdF9wbGFu c18xXzApOworCisvKiBTdHJ1Y3R1cmVzIGZvciBzdGF0aXN0aWNzIG9mIHBsYW5zICovCit0eXBl ZGVmIHN0cnVjdCBQZ1N0YXRTaGFyZWRfUGxhbkluZm8KK3sKKwkvKiBrZXkgZWxlbWVudHMgdGhh dCBpZGVudGlmeSBhIHBsYW4gKHRvZ2V0aGVyIHdpdGggdGhlIGRib2lkKSAqLworCXVpbnQ2NAkJ cGxhbmlkOworCXVpbnQ2NAkJcXVlcnlpZDsKKwlPaWQJCQl1c2VyaWQ7CQkJLyogdXNlcmlkIGlz IHRyYWNrZWQgdG8gYWxsb3cgdXNlcnMgdG8gc2VlCisJCQkJCQkJCSAqIHRoZWlyIG93biBxdWVy eSBwbGFucyAqLworCWJvb2wJCXRvcGxldmVsOwkJLyogcXVlcnkgZXhlY3V0ZWQgYXQgdG9wIGxl dmVsICovCisKKwlkc2FfcG9pbnRlciBwbGFuX3RleHQ7CQkvKiBwb2ludGVyIHRvIERTQSBtZW1v cnkgY29udGFpbmluZyBwbGFuIHRleHQgKi8KKwlpbnQJCQlwbGFuX2VuY29kaW5nOwkvKiBwbGFu IHRleHQgZW5jb2RpbmcgKi8KK30JCQlQZ1N0YXRTaGFyZWRfUGxhbkluZm87CisKK3R5cGVkZWYg c3RydWN0IFBnU3RhdF9TdGF0UGxhbkVudHJ5Cit7CisJUGdTdGF0X0NvdW50ZXIgZXhlY19jb3Vu dDsKKwlkb3VibGUJCWV4ZWNfdGltZTsKKwlkb3VibGUJCXVzYWdlOwkJCS8qIFVzYWdlIGZhY3Rv ciBvZiB0aGUgZW50cnksIHVzZWQgdG8KKwkJCQkJCQkJICogcHJpb3JpdGl6ZSB3aGljaCBwbGFu cyB0byBhZ2Ugb3V0ICovCisKKwkvKiBPbmx5IHVzZWQgaW4gc2hhcmVkIHN0cnVjdHVyZSwgbm90 IGluIGxvY2FsIHBlbmRpbmcgc3RhdHMgKi8KKwlQZ1N0YXRTaGFyZWRfUGxhbkluZm8gaW5mbzsK K30JCQlQZ1N0YXRfU3RhdFBsYW5FbnRyeTsKKwordHlwZWRlZiBzdHJ1Y3QgUGdTdGF0U2hhcmVk X1BsYW4KK3sKKwlQZ1N0YXRTaGFyZWRfQ29tbW9uIGhlYWRlcjsKKwlQZ1N0YXRfU3RhdFBsYW5F bnRyeSBzdGF0czsKK30JCQlQZ1N0YXRTaGFyZWRfUGxhbjsKKworc3RhdGljIGJvb2wgcGxhbl9z dGF0c19mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpOwor CitzdGF0aWMgY29uc3QgUGdTdGF0X0tpbmRJbmZvIHBsYW5fc3RhdHMgPSB7CisJLm5hbWUgPSAi cGxhbl9zdGF0cyIsCisJLmZpeGVkX2Ftb3VudCA9IGZhbHNlLAorCisJLyoKKwkgKiBXZSBjdXJy ZW50bHkgZG9uJ3Qgd3JpdGUgdG8gYSBmaWxlIHNpbmNlIHBsYW4gdGV4dHMgd291bGQgZ2V0IGxv c3QgKGFuZAorCSAqIGp1c3QgdGhlIHN0YXRzIG9uIHRoZWlyIG93biBhcmVuJ3QgdGhhdCB1c2Vm dWwpCisJICovCisJLndyaXRlX3RvX2ZpbGUgPSBmYWxzZSwKKworCS8qCisJICogUGxhbiBzdGF0 aXN0aWNzIGFyZSBhdmFpbGFibGUgc3lzdGVtLXdpZGUgdG8gc2ltcGxpZnkgbW9uaXRvcmluZwor CSAqIHNjcmlwdHMKKwkgKi8KKwkuYWNjZXNzZWRfYWNyb3NzX2RhdGFiYXNlcyA9IHRydWUsCisK Kwkuc2hhcmVkX3NpemUgPSBzaXplb2YoUGdTdGF0U2hhcmVkX1BsYW4pLAorCS5zaGFyZWRfZGF0 YV9vZmYgPSBvZmZzZXRvZihQZ1N0YXRTaGFyZWRfUGxhbiwgc3RhdHMpLAorCS5zaGFyZWRfZGF0 YV9sZW4gPSBzaXplb2YoKChQZ1N0YXRTaGFyZWRfUGxhbiAqKSAwKS0+c3RhdHMpLAorCS5wZW5k aW5nX3NpemUgPSBzaXplb2YoUGdTdGF0X1N0YXRQbGFuRW50cnkpLAorCS5mbHVzaF9wZW5kaW5n X2NiID0gcGxhbl9zdGF0c19mbHVzaF9jYiwKK307CisKKy8qCisgKiBDb21wdXRlIHN0YXRzIGVu dHJ5IGlkeCBmcm9tIHF1ZXJ5IElEIGFuZCBwbGFuIElEIHdpdGggYW4gOC1ieXRlIGhhc2guCisg KgorICogV2hpbHN0IHdlIGNvdWxkIHRoZW9yaWNhbGx5IGp1c3QgdXNlIHRoZSBwbGFuIElEIGhl cmUsIHdlIGludGVudGlvbmFsbHkKKyAqIGFkZCB0aGUgcXVlcnkgSUQgaW50byB0aGUgbWl4IHRv IGVhc2UgaW50ZXJwcmV0aW5nIHRoZSBkYXRhIGluIGNvbWJpbmF0aW9uCisgKiB3aXRoIHBnX3N0 YXRfc3RhdGVtZW50cy4KKyAqLworI2RlZmluZSBQR1NUQVRfUExBTl9JRFgocXVlcnlfaWQsIHBs YW5faWQsIHVzZXJfaWQsIHRvcGxldmVsKSBoYXNoX2NvbWJpbmU2NCh0b3BsZXZlbCwgaGFzaF9j b21iaW5lNjQocXVlcnlfaWQsIGhhc2hfY29tYmluZTY0KHBsYW5faWQsIHVzZXJfaWQpKSkKKwor LyoKKyAqIEtpbmQgSUQgcmVzZXJ2ZWQgZm9yIHN0YXRpc3RpY3Mgb2YgcGxhbnMuCisgKi8KKyNk ZWZpbmUgUEdTVEFUX0tJTkRfUExBTlMJUEdTVEFUX0tJTkRfRVhQRVJJTUVOVEFMCS8qIFRPRE86 IEFzc2lnbiAqLworCisvKgorICogQ2FsbGJhY2sgZm9yIHN0YXRzIGhhbmRsaW5nCisgKi8KK3N0 YXRpYyBib29sCitwbGFuX3N0YXRzX2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVm LCBib29sIG5vd2FpdCkKK3sKKwlQZ1N0YXRfU3RhdFBsYW5FbnRyeSAqbG9jYWxlbnQ7CisJUGdT dGF0U2hhcmVkX1BsYW4gKnNoZnVuY2VudDsKKworCWxvY2FsZW50ID0gKFBnU3RhdF9TdGF0UGxh bkVudHJ5ICopIGVudHJ5X3JlZi0+cGVuZGluZzsKKwlzaGZ1bmNlbnQgPSAoUGdTdGF0U2hhcmVk X1BsYW4gKikgZW50cnlfcmVmLT5zaGFyZWRfc3RhdHM7CisKKwlpZiAoIXBnc3RhdF9sb2NrX2Vu dHJ5KGVudHJ5X3JlZiwgbm93YWl0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJc2hmdW5jZW50LT5z dGF0cy5leGVjX2NvdW50ICs9IGxvY2FsZW50LT5leGVjX2NvdW50OworCXNoZnVuY2VudC0+c3Rh dHMuZXhlY190aW1lICs9IGxvY2FsZW50LT5leGVjX3RpbWU7CisJc2hmdW5jZW50LT5zdGF0cy51 c2FnZSArPSBsb2NhbGVudC0+dXNhZ2U7CisKKwlwZ3N0YXRfdW5sb2NrX2VudHJ5KGVudHJ5X3Jl Zik7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGNoYXIgKgorcGdzcF9leHBsYWluX3Bs YW4oUXVlcnlEZXNjICpxdWVyeURlc2MpCit7CisJRXhwbGFpblN0YXRlICplczsKKwlTdHJpbmdJ bmZvCWVzX3N0cjsKKworCWVzID0gTmV3RXhwbGFpblN0YXRlKCk7CisJZXNfc3RyID0gZXMtPnN0 cjsKKworCS8qCisJICogV2UgdHVybiBvZmYgQ09TVFMgc2luY2UgaWRlbnRpY2FsIHBsYW5pZHMg bWF5IGhhdmUgdmVyeSBkaWZmZXJlbnQKKwkgKiBjb3N0cywgYW5kIGl0IGNvdWxkIGJlIG1pc2xl YWRpbmcgdG8gb25seSBzaG93IHRoZSBmaXJzdCByZWNvcmRlZAorCSAqIHBsYW4ncyBjb3N0cy4K KwkgKi8KKwllcy0+Y29zdHMgPSBmYWxzZTsKKwllcy0+Zm9ybWF0ID0gRVhQTEFJTl9GT1JNQVRf VEVYVDsKKworCUV4cGxhaW5CZWdpbk91dHB1dChlcyk7CisJRXhwbGFpblByaW50UGxhbihlcywg cXVlcnlEZXNjKTsKKwlFeHBsYWluRW5kT3V0cHV0KGVzKTsKKworCXJldHVybiBlc19zdHItPmRh dGE7Cit9CisKK3N0YXRpYyB2b2lkCitwZ3N0YXRfZ2NfcGxhbl9tZW1vcnkoKQoreworCWRzaGFz aF9zZXFfc3RhdHVzIGhzdGF0OworCVBnU3RhdFNoYXJlZF9IYXNoRW50cnkgKnA7CisKKwkvKiBk c2hhc2ggZW50cnkgaXMgbm90IG1vZGlmaWVkLCB0YWtlIHNoYXJlZCBsb2NrICovCisJZHNoYXNo X3NlcV9pbml0KCZoc3RhdCwgcGdTdGF0TG9jYWwuc2hhcmVkX2hhc2gsIGZhbHNlKTsKKwl3aGls ZSAoKHAgPSBkc2hhc2hfc2VxX25leHQoJmhzdGF0KSkgIT0gTlVMTCkKKwl7CisJCVBnU3RhdFNo YXJlZF9Db21tb24gKmhlYWRlcjsKKwkJUGdTdGF0X1N0YXRQbGFuRW50cnkgKnN0YXRlbnQ7CisK KwkJaWYgKCFwLT5kcm9wcGVkIHx8IHAtPmtleS5raW5kICE9IFBHU1RBVF9LSU5EX1BMQU5TKQor CQkJY29udGludWU7CisKKwkJaGVhZGVyID0gZHNhX2dldF9hZGRyZXNzKHBnU3RhdExvY2FsLmRz YSwgcC0+Ym9keSk7CisKKwkJaWYgKCFMV0xvY2tDb25kaXRpb25hbEFjcXVpcmUoJmhlYWRlci0+ bG9jaywgTFdfRVhDTFVTSVZFKSkKKwkJCWNvbnRpbnVlOworCisJCXN0YXRlbnQgPSAoUGdTdGF0 X1N0YXRQbGFuRW50cnkgKikgcGdzdGF0X2dldF9lbnRyeV9kYXRhKFBHU1RBVF9LSU5EX1BMQU5T LCBoZWFkZXIpOworCisJCS8qCisJCSAqIENsZWFuIHVwIHRoaXMgZW50cnkncyBwbGFuIHRleHQg YWxsb2NhdGlvbiwgaWYgd2UgaGF2ZW4ndCBkb25lIHNvCisJCSAqIGFscmVhZHkKKwkJICovCisJ CWlmIChEc2FQb2ludGVySXNWYWxpZChzdGF0ZW50LT5pbmZvLnBsYW5fdGV4dCkpCisJCXsKKwkJ CWRzYV9mcmVlKHBnU3RhdExvY2FsLmRzYSwgc3RhdGVudC0+aW5mby5wbGFuX3RleHQpOworCQkJ c3RhdGVudC0+aW5mby5wbGFuX3RleHQgPSBJbnZhbGlkRHNhUG9pbnRlcjsKKworCQkJLyogQWxs b3cgcmVtb3ZhbCBvZiB0aGUgc2hhcmVkIHN0YXRzIGVudHJ5ICovCisJCQlwZ19hdG9taWNfZmV0 Y2hfc3ViX3UzMigmcC0+cmVmY291bnQsIDEpOworCQl9CisKKwkJTFdMb2NrUmVsZWFzZSgmaGVh ZGVyLT5sb2NrKTsKKwl9CisJZHNoYXNoX3NlcV90ZXJtKCZoc3RhdCk7CisKKwkvKiBFbmNvdXJh Z2Ugb3RoZXIgYmFja2VuZHMgdG8gY2xlYW4gdXAgZHJvcHBlZCBlbnRyeSByZWZzICovCisJcGdz dGF0X3JlcXVlc3RfZW50cnlfcmVmc19nYygpOworfQorCit0eXBlZGVmIHN0cnVjdCBQbGFuRGVh bGxvY0VudHJ5Cit7CisJUGdTdGF0X0hhc2hLZXkga2V5OworCWRvdWJsZQkJdXNhZ2U7Cit9CQkJ UGxhbkRlYWxsb2NFbnRyeTsKKworLyoKKyAqIGxpc3Qgc29ydCBjb21wYXJhdG9yIGZvciBzb3J0 aW5nIGludG8gZGVjcmVhc2luZyB1c2FnZSBvcmRlcgorICovCitzdGF0aWMgaW50CitlbnRyeV9j bXBfbHJ1KGNvbnN0IHVuaW9uIExpc3RDZWxsICpsaHMsIGNvbnN0IHVuaW9uIExpc3RDZWxsICpy aHMpCit7CisJZG91YmxlCQlsX3VzYWdlID0gKChQbGFuRGVhbGxvY0VudHJ5ICopIGxmaXJzdChs aHMpKS0+dXNhZ2U7CisJZG91YmxlCQlyX3VzYWdlID0gKChQbGFuRGVhbGxvY0VudHJ5ICopIGxm aXJzdChyaHMpKS0+dXNhZ2U7CisKKwlpZiAobF91c2FnZSA+IHJfdXNhZ2UpCisJCXJldHVybiAt MTsKKwllbHNlIGlmIChsX3VzYWdlIDwgcl91c2FnZSkKKwkJcmV0dXJuICsxOworCWVsc2UKKwkJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCitwZ3N0YXRfZGVhbGxvY19wbGFucygpCit7CisJ ZHNoYXNoX3NlcV9zdGF0dXMgaHN0YXQ7CisJUGdTdGF0U2hhcmVkX0hhc2hFbnRyeSAqcDsKKwlM aXN0CSAgICplbnRyaWVzID0gTklMOworCUxpc3RDZWxsICAgKmxjOworCWludAkJCW52aWN0aW1z OworCisJLyogZHNoYXNoIGVudHJ5IGlzIG5vdCBtb2RpZmllZCwgdGFrZSBzaGFyZWQgbG9jayAq LworCWRzaGFzaF9zZXFfaW5pdCgmaHN0YXQsIHBnU3RhdExvY2FsLnNoYXJlZF9oYXNoLCBmYWxz ZSk7CisJd2hpbGUgKChwID0gZHNoYXNoX3NlcV9uZXh0KCZoc3RhdCkpICE9IE5VTEwpCisJewor CQlQZ1N0YXRTaGFyZWRfQ29tbW9uICpoZWFkZXI7CisJCVBnU3RhdF9TdGF0UGxhbkVudHJ5ICpz dGF0ZW50OworCQlQbGFuRGVhbGxvY0VudHJ5ICplbnRyeTsKKworCQlpZiAocC0+ZHJvcHBlZCB8 fCBwLT5rZXkua2luZCAhPSBQR1NUQVRfS0lORF9QTEFOUykKKwkJCWNvbnRpbnVlOworCisJCWhl YWRlciA9IGRzYV9nZXRfYWRkcmVzcyhwZ1N0YXRMb2NhbC5kc2EsIHAtPmJvZHkpOworCisJCWlm ICghTFdMb2NrQ29uZGl0aW9uYWxBY3F1aXJlKCZoZWFkZXItPmxvY2ssIExXX0VYQ0xVU0lWRSkp CisJCQljb250aW51ZTsKKworCQlzdGF0ZW50ID0gKFBnU3RhdF9TdGF0UGxhbkVudHJ5ICopIHBn c3RhdF9nZXRfZW50cnlfZGF0YShQR1NUQVRfS0lORF9QTEFOUywgaGVhZGVyKTsKKwkJc3RhdGVu dC0+dXNhZ2UgKj0gVVNBR0VfREVDUkVBU0VfRkFDVE9SOworCisJCWVudHJ5ID0gcGFsbG9jKHNp emVvZihQbGFuRGVhbGxvY0VudHJ5KSk7CisJCWVudHJ5LT5rZXkgPSBwLT5rZXk7CisJCWVudHJ5 LT51c2FnZSA9IHN0YXRlbnQtPnVzYWdlOworCisJCUxXTG9ja1JlbGVhc2UoJmhlYWRlci0+bG9j ayk7CisKKwkJZW50cmllcyA9IGxhcHBlbmQoZW50cmllcywgZW50cnkpOworCX0KKwlkc2hhc2hf c2VxX3Rlcm0oJmhzdGF0KTsKKworCS8qIFNvcnQgYnkgdXNhZ2UgYXNjZW5kaW5nIChsb3dlc3Qg dXNlZCBlbnRyaWVzIGFyZSBsYXN0KSAqLworCWxpc3Rfc29ydChlbnRyaWVzLCBlbnRyeV9jbXBf bHJ1KTsKKworCS8qIEF0IGEgbWluaW11bSwgZGVhbGxvY2F0ZSAxMCBlbnRyaWVzIHRvIG1ha2Ug aXQgd29ydGggb3VyIHdoaWxlICovCisJbnZpY3RpbXMgPSBNYXgoMTAsIGxpc3RfbGVuZ3RoKGVu dHJpZXMpICogVVNBR0VfREVBTExPQ19QRVJDRU5UIC8gMTAwKTsKKwludmljdGltcyA9IE1pbihu dmljdGltcywgbGlzdF9sZW5ndGgoZW50cmllcykpOworCisJLyogQWN0dWFsbHkgZHJvcCB0aGUg ZW50cmllcyAqLworCWZvcl9lYWNoX2Zyb20obGMsIGVudHJpZXMsIGxpc3RfbGVuZ3RoKGVudHJp ZXMpIC0gbnZpY3RpbXMpCisJeworCQlQbGFuRGVhbGxvY0VudHJ5ICplbnRyeSA9IGxmaXJzdChs Yyk7CisKKwkJcGdzdGF0X2Ryb3BfZW50cnkoZW50cnktPmtleS5raW5kLCBlbnRyeS0+a2V5LmRi b2lkLCBlbnRyeS0+a2V5Lm9iamlkKTsKKwl9CisKKwkvKiBDbGVhbiB1cCBvdXIgd29ya2luZyBt ZW1vcnkgaW1tZWRpYXRlbHkgKi8KKwlmb3JlYWNoKGxjLCBlbnRyaWVzKQorCXsKKwkJUGxhbkRl YWxsb2NFbnRyeSAqZW50cnkgPSBsZmlyc3QobGMpOworCisJCXBmcmVlKGVudHJ5KTsKKwl9CisJ cGZyZWUoZW50cmllcyk7Cit9CisKK3N0YXRpYyB2b2lkCitwZ3N0YXRfZ2NfcGxhbnMoKQorewor CWRzaGFzaF9zZXFfc3RhdHVzIGhzdGF0OworCVBnU3RhdFNoYXJlZF9IYXNoRW50cnkgKnA7CisJ Ym9vbAkJaGF2ZV9kcm9wcGVkX2VudHJpZXMgPSBmYWxzZTsKKwlzaXplX3QJCXBsYW5fZW50cnlf Y291bnQgPSAwOworCisJLyogVE9ETzogUHJldmVudCBjb25jdXJyZW50IEdDIGN5Y2xlcyAtIGZs YWcgYW4gYWN0aXZlIEdDIHJ1biBzb21laG93ICovCisKKwkvKgorCSAqIENvdW50IG91ciBhY3Rp dmUgZW50cmllcywgYW5kIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBkcm9wcGVkIGVudHJpZXMgd2UK KwkgKiBtYXkgbmVlZCB0byBjbGVhbiB1cCBhdCB0aGUgZW5kLgorCSAqLworCWRzaGFzaF9zZXFf aW5pdCgmaHN0YXQsIHBnU3RhdExvY2FsLnNoYXJlZF9oYXNoLCBmYWxzZSk7CisJd2hpbGUgKChw ID0gZHNoYXNoX3NlcV9uZXh0KCZoc3RhdCkpICE9IE5VTEwpCisJeworCQlpZiAocC0+a2V5Lmtp bmQgIT0gUEdTVEFUX0tJTkRfUExBTlMpCisJCQljb250aW51ZTsKKworCQlpZiAocC0+ZHJvcHBl ZCkKKwkJCWhhdmVfZHJvcHBlZF9lbnRyaWVzID0gdHJ1ZTsKKwkJZWxzZQorCQkJcGxhbl9lbnRy eV9jb3VudCsrOworCX0KKwlkc2hhc2hfc2VxX3Rlcm0oJmhzdGF0KTsKKworCS8qCisJICogSWYg d2UncmUgb3ZlciB0aGUgbGltaXQsIGRlbGV0ZSBlbnRyaWVzIHdpdGggbG93ZXN0IHVzYWdlIGZh Y3Rvci4KKwkgKi8KKwlpZiAocGxhbl9lbnRyeV9jb3VudCA+IHBnc3BfbWF4KQorCXsKKwkJcGdz dGF0X2RlYWxsb2NfcGxhbnMoKTsKKwkJaGF2ZV9kcm9wcGVkX2VudHJpZXMgPSB0cnVlOwkvKiBB c3N1bWUgd2UgZGlkIHNvbWUgd29yayAqLworCX0KKworCS8qIElmIHRoZXJlIGFyZSBkcm9wcGVk IGVudHJpZXMsIGNsZWFuIHVwIHRoZWlyIHBsYW4gbWVtb3J5IGlmIG5lZWRlZCAqLworCWlmICho YXZlX2Ryb3BwZWRfZW50cmllcykKKwkJcGdzdGF0X2djX3BsYW5fbWVtb3J5KCk7Cit9CisKK3N0 YXRpYyB2b2lkCitwZ3N0YXRfcmVwb3J0X3BsYW5fc3RhdHMoUXVlcnlEZXNjICpxdWVyeURlc2Ms CisJCQkJCQkgUGdTdGF0X0NvdW50ZXIgZXhlY19jb3VudCwKKwkJCQkJCSBkb3VibGUgZXhlY190 aW1lKQoreworCVBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmOworCVBnU3RhdFNoYXJlZF9QbGFu ICpzaHN0YXRlbnQ7CisJUGdTdGF0X1N0YXRQbGFuRW50cnkgKnN0YXRlbnQ7CisJYm9vbAkJbmV3 bHlfY3JlYXRlZDsKKwl1aW50NjQJCXF1ZXJ5SWQgPSBxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5x dWVyeUlkOworCXVpbnQ2NAkJcGxhbklkID0gcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+cGxhbklk OworCU9pZAkJCXVzZXJpZCA9IEdldFVzZXJJZCgpOworCWJvb2wJCXRvcGxldmVsID0gKG5lc3Rp bmdfbGV2ZWwgPT0gMCk7CisKKwllbnRyeV9yZWYgPSBwZ3N0YXRfcHJlcF9wZW5kaW5nX2VudHJ5 KFBHU1RBVF9LSU5EX1BMQU5TLCBNeURhdGFiYXNlSWQsCisJCQkJCQkJCQkJICBQR1NUQVRfUExB Tl9JRFgocXVlcnlJZCwgcGxhbklkLCB1c2VyaWQsIHRvcGxldmVsKSwgJm5ld2x5X2NyZWF0ZWQp OworCisJc2hzdGF0ZW50ID0gKFBnU3RhdFNoYXJlZF9QbGFuICopIGVudHJ5X3JlZi0+c2hhcmVk X3N0YXRzOworCXN0YXRlbnQgPSAmc2hzdGF0ZW50LT5zdGF0czsKKworCWlmIChuZXdseV9jcmVh dGVkKQorCXsKKwkJY2hhcgkgICAqcGxhbiA9IHBnc3BfZXhwbGFpbl9wbGFuKHF1ZXJ5RGVzYyk7 CisJCXNpemVfdAkJcGxhbl9zaXplID0gTWluKHN0cmxlbihwbGFuKSwgcGdzcF9tYXhfc2l6ZSk7 CisKKwkJKHZvaWQpIHBnc3RhdF9sb2NrX2VudHJ5KGVudHJ5X3JlZiwgZmFsc2UpOworCisJCS8q CisJCSAqIFdlIG1heSBiZSBvdmVyIHRoZSBsaW1pdCwgc28gcnVuIEdDIG5vdyBiZWZvcmUgc2F2 aW5nIGVudHJ5ICh3ZSBkbworCQkgKiB0aGlzIHdoaWxzdCBob2xkaW5nIHRoZSBsb2NrIG9uIHRo ZSBuZXcgZW50cnkgc28gd2UgZG9uJ3QgcmVtb3ZlIGl0CisJCSAqIGJ5IGFjY2lkZW50KQorCQkg Ki8KKwkJcGdzdGF0X2djX3BsYW5zKCk7CisKKwkJc2hzdGF0ZW50LT5zdGF0cy5pbmZvLnBsYW5p ZCA9IHBsYW5JZDsKKwkJc2hzdGF0ZW50LT5zdGF0cy5pbmZvLnF1ZXJ5aWQgPSBxdWVyeUlkOwor CQlzaHN0YXRlbnQtPnN0YXRzLmluZm8udXNlcmlkID0gdXNlcmlkOworCQlzaHN0YXRlbnQtPnN0 YXRzLmluZm8udG9wbGV2ZWwgPSB0b3BsZXZlbDsKKwkJc2hzdGF0ZW50LT5zdGF0cy5pbmZvLnBs YW5fdGV4dCA9IGRzYV9hbGxvY2F0ZShwZ1N0YXRMb2NhbC5kc2EsIHBsYW5fc2l6ZSk7CisJCXN0 cmxjcHkoZHNhX2dldF9hZGRyZXNzKHBnU3RhdExvY2FsLmRzYSwgc2hzdGF0ZW50LT5zdGF0cy5p bmZvLnBsYW5fdGV4dCksIHBsYW4sIHBsYW5fc2l6ZSk7CisKKwkJc2hzdGF0ZW50LT5zdGF0cy5p bmZvLnBsYW5fZW5jb2RpbmcgPSBHZXREYXRhYmFzZUVuY29kaW5nKCk7CisKKwkJLyoKKwkJICog SW5jcmVhc2UgcmVmY291bnQgaGVyZSBzbyBlbnRyeSBjYW4ndCBnZXQgcmVsZWFzZWQgd2l0aG91 dCB1cworCQkgKiBkcm9wcGluZyB0aGUgcGxhbiB0ZXh0CisJCSAqLworCQlwZ19hdG9taWNfZmV0 Y2hfYWRkX3UzMigmZW50cnlfcmVmLT5zaGFyZWRfZW50cnktPnJlZmNvdW50LCAxKTsKKworCQlw Z3N0YXRfdW5sb2NrX2VudHJ5KGVudHJ5X3JlZik7CisKKwkJcGZyZWUocGxhbik7CisJfQorCisJ c3RhdGVudC0+ZXhlY19jb3VudCArPSBleGVjX2NvdW50OworCXN0YXRlbnQtPmV4ZWNfdGltZSAr PSBleGVjX3RpbWU7CisJc3RhdGVudC0+dXNhZ2UgKz0gVVNBR0VfSU5DUkVBU0U7Cit9CisKKy8q CisgKiBQbGFubmVyIGhvb2s6IGZvcndhcmQgdG8gcmVndWxhciBwbGFubmVyLCBidXQgaW5jcmVh c2UgcGxhbiBjb3VudCBhbmQKKyAqIHJlY29yZCBxdWVyeSBwbGFuIGlmIG5lZWRlZC4KKyAqLwor c3RhdGljIFBsYW5uZWRTdG10ICoKK3Bnc3BfcGxhbm5lcihRdWVyeSAqcGFyc2UsCisJCQkgY29u c3QgY2hhciAqcXVlcnlfc3RyaW5nLAorCQkJIGludCBjdXJzb3JPcHRpb25zLAorCQkJIFBhcmFt TGlzdEluZm8gYm91bmRQYXJhbXMpCit7CisJUGxhbm5lZFN0bXQgKnJlc3VsdDsKKworCS8qCisJ ICogSW5jcmVtZW50IHRoZSBuZXN0aW5nIGxldmVsLCB0byBlbnN1cmUgdGhhdCBmdW5jdGlvbnMg ZXZhbHVhdGVkIGR1cmluZworCSAqIHBsYW5uaW5nIGFyZSBub3Qgc2VlbiBhcyB0b3AtbGV2ZWwg Y2FsbHMuCisJICovCisJbmVzdGluZ19sZXZlbCsrOworCVBHX1RSWSgpOworCXsKKwkJaWYgKHBy ZXZfcGxhbm5lcl9ob29rKQorCQkJcmVzdWx0ID0gcHJldl9wbGFubmVyX2hvb2socGFyc2UsIHF1 ZXJ5X3N0cmluZywgY3Vyc29yT3B0aW9ucywKKwkJCQkJCQkJCSAgIGJvdW5kUGFyYW1zKTsKKwkJ ZWxzZQorCQkJcmVzdWx0ID0gc3RhbmRhcmRfcGxhbm5lcihwYXJzZSwgcXVlcnlfc3RyaW5nLCBj dXJzb3JPcHRpb25zLAorCQkJCQkJCQkJICBib3VuZFBhcmFtcyk7CisJfQorCVBHX0ZJTkFMTFko KTsKKwl7CisJCW5lc3RpbmdfbGV2ZWwtLTsKKwl9CisJUEdfRU5EX1RSWSgpOworCisJcmV0dXJu IHJlc3VsdDsKK30KKworLyoKKyAqIEV4ZWN1dG9yU3RhcnQgaG9vazogc3RhcnQgdXAgdHJhY2tp bmcgaWYgbmVlZGVkCisgKi8KK3N0YXRpYyB2b2lkCitwZ3NwX0V4ZWN1dG9yU3RhcnQoUXVlcnlE ZXNjICpxdWVyeURlc2MsIGludCBlZmxhZ3MpCit7CisJdWludDY0CQlxdWVyeUlkID0gcXVlcnlE ZXNjLT5wbGFubmVkc3RtdC0+cXVlcnlJZDsKKwl1aW50NjQJCXBsYW5JZCA9IHF1ZXJ5RGVzYy0+ cGxhbm5lZHN0bXQtPnBsYW5JZDsKKworCWlmIChwcmV2X0V4ZWN1dG9yU3RhcnQpCisJCXByZXZf RXhlY3V0b3JTdGFydChxdWVyeURlc2MsIGVmbGFncyk7CisJZWxzZQorCQlzdGFuZGFyZF9FeGVj dXRvclN0YXJ0KHF1ZXJ5RGVzYywgZWZsYWdzKTsKKworCWlmIChxdWVyeUlkICE9IFVJTlQ2NENP TlNUKDApICYmIHBsYW5JZCAhPSBVSU5UNjRDT05TVCgwKSAmJgorCQlwZ3NwX2VuYWJsZWQobmVz dGluZ19sZXZlbCkpCisJeworCQkvKgorCQkgKiBSZWNvcmQgaW5pdGlhbCBlbnRyeSBub3csIHNv IHBsYW4gdGV4dCBpcyBhdmFpbGFibGUgZm9yIGN1cnJlbnRseQorCQkgKiBydW5uaW5nIHF1ZXJp ZXMKKwkJICovCisJCXBnc3RhdF9yZXBvcnRfcGxhbl9zdGF0cyhxdWVyeURlc2MsCisJCQkJCQkJ CSAwLCAvKiBleGVjdXRpb25zIGFyZSBjb3VudGVkIGluCisJCQkJCQkJCQkgKiBwZ3NwX0V4ZWN1 dG9yRW5kICovCisJCQkJCQkJCSAwLjApOworCisJCS8qCisJCSAqIFNldCB1cCB0byB0cmFjayB0 b3RhbCBlbGFwc2VkIHRpbWUgaW4gRXhlY3V0b3JSdW4uICBNYWtlIHN1cmUgdGhlCisJCSAqIHNw YWNlIGlzIGFsbG9jYXRlZCBpbiB0aGUgcGVyLXF1ZXJ5IGNvbnRleHQgc28gaXQgd2lsbCBnbyBh d2F5IGF0CisJCSAqIEV4ZWN1dG9yRW5kLgorCQkgKi8KKwkJaWYgKHF1ZXJ5RGVzYy0+dG90YWx0 aW1lID09IE5VTEwpCisJCXsKKwkJCU1lbW9yeUNvbnRleHQgb2xkY3h0OworCisJCQlvbGRjeHQg PSBNZW1vcnlDb250ZXh0U3dpdGNoVG8ocXVlcnlEZXNjLT5lc3RhdGUtPmVzX3F1ZXJ5X2N4dCk7 CisJCQlxdWVyeURlc2MtPnRvdGFsdGltZSA9IEluc3RyQWxsb2MoMSwgSU5TVFJVTUVOVF9BTEws IGZhbHNlKTsKKwkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOworCQl9CisJfQorfQor CisvKgorICogRXhlY3V0b3JSdW4gaG9vazogYWxsIHdlIG5lZWQgZG8gaXMgdHJhY2sgbmVzdGlu ZyBkZXB0aAorICovCitzdGF0aWMgdm9pZAorcGdzcF9FeGVjdXRvclJ1bihRdWVyeURlc2MgKnF1 ZXJ5RGVzYywgU2NhbkRpcmVjdGlvbiBkaXJlY3Rpb24sIHVpbnQ2NCBjb3VudCkKK3sKKwluZXN0 aW5nX2xldmVsKys7CisJUEdfVFJZKCk7CisJeworCQlpZiAocHJldl9FeGVjdXRvclJ1bikKKwkJ CXByZXZfRXhlY3V0b3JSdW4ocXVlcnlEZXNjLCBkaXJlY3Rpb24sIGNvdW50KTsKKwkJZWxzZQor CQkJc3RhbmRhcmRfRXhlY3V0b3JSdW4ocXVlcnlEZXNjLCBkaXJlY3Rpb24sIGNvdW50KTsKKwl9 CisJUEdfRklOQUxMWSgpOworCXsKKwkJbmVzdGluZ19sZXZlbC0tOworCX0KKwlQR19FTkRfVFJZ KCk7Cit9CisKKy8qCisgKiBFeGVjdXRvckZpbmlzaCBob29rOiBhbGwgd2UgbmVlZCBkbyBpcyB0 cmFjayBuZXN0aW5nIGRlcHRoCisgKi8KK3N0YXRpYyB2b2lkCitwZ3NwX0V4ZWN1dG9yRmluaXNo KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjKQoreworCW5lc3RpbmdfbGV2ZWwrKzsKKwlQR19UUlkoKTsK Kwl7CisJCWlmIChwcmV2X0V4ZWN1dG9yRmluaXNoKQorCQkJcHJldl9FeGVjdXRvckZpbmlzaChx dWVyeURlc2MpOworCQllbHNlCisJCQlzdGFuZGFyZF9FeGVjdXRvckZpbmlzaChxdWVyeURlc2Mp OworCX0KKwlQR19GSU5BTExZKCk7CisJeworCQluZXN0aW5nX2xldmVsLS07CisJfQorCVBHX0VO RF9UUlkoKTsKK30KKworLyoKKyAqIEV4ZWN1dG9yRW5kIGhvb2s6IHN0b3JlIHJlc3VsdHMgaWYg bmVlZGVkCisgKi8KK3N0YXRpYyB2b2lkCitwZ3NwX0V4ZWN1dG9yRW5kKFF1ZXJ5RGVzYyAqcXVl cnlEZXNjKQoreworCXVpbnQ2NAkJcXVlcnlJZCA9IHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnF1 ZXJ5SWQ7CisJdWludDY0CQlwbGFuSWQgPSBxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5wbGFuSWQ7 CisKKwlpZiAocXVlcnlJZCAhPSBVSU5UNjRDT05TVCgwKSAmJiBwbGFuSWQgIT0gVUlOVDY0Q09O U1QoMCkgJiYKKwkJcXVlcnlEZXNjLT50b3RhbHRpbWUgJiYgcGdzcF9lbmFibGVkKG5lc3Rpbmdf bGV2ZWwpKQorCXsKKwkJLyoKKwkJICogTWFrZSBzdXJlIHN0YXRzIGFjY3VtdWxhdGlvbiBpcyBk b25lLiAgKE5vdGU6IGl0J3Mgb2theSBpZiBzZXZlcmFsCisJCSAqIGxldmVscyBvZiBob29rIGFs bCBkbyB0aGlzLikKKwkJICovCisJCUluc3RyRW5kTG9vcChxdWVyeURlc2MtPnRvdGFsdGltZSk7 CisKKwkJcGdzdGF0X3JlcG9ydF9wbGFuX3N0YXRzKHF1ZXJ5RGVzYywKKwkJCQkJCQkJIDEsCisJ CQkJCQkJCSBxdWVyeURlc2MtPnRvdGFsdGltZS0+dG90YWwgKiAxMDAwLjAgLyogY29udmVydCB0 byBtc2VjICovICk7CisJfQorCisJaWYgKHByZXZfRXhlY3V0b3JFbmQpCisJCXByZXZfRXhlY3V0 b3JFbmQocXVlcnlEZXNjKTsKKwllbHNlCisJCXN0YW5kYXJkX0V4ZWN1dG9yRW5kKHF1ZXJ5RGVz Yyk7Cit9CisKKy8qCisgKiBNb2R1bGUgbG9hZCBjYWxsYmFjaworICovCit2b2lkCitfUEdfaW5p dCh2b2lkKQoreworCS8qCisJICogSW4gb3JkZXIgdG8gcmVnaXN0ZXIgZm9yIHNoYXJlZCBtZW1v cnkgc3RhdHMsIHdlIGhhdmUgdG8gYmUgbG9hZGVkIHZpYQorCSAqIHNoYXJlZF9wcmVsb2FkX2xp YnJhcmllcy4gIElmIG5vdCwgZmFsbCBvdXQgd2l0aG91dCBob29raW5nIGludG8gYW55IG9mCisJ ICogdGhlIG1haW4gc3lzdGVtLiAgKFdlIGRvbid0IHRocm93IGVycm9yIGhlcmUgYmVjYXVzZSBp dCBzZWVtcyB1c2VmdWwgdG8KKwkgKiBhbGxvdyB0aGUgcGdfc3RhdF9wbGFucyBmdW5jdGlvbnMg dG8gYmUgY3JlYXRlZCBldmVuIHdoZW4gdGhlIG1vZHVsZQorCSAqIGlzbid0IGFjdGl2ZS4gIFRo ZSBmdW5jdGlvbnMgbXVzdCBwcm90ZWN0IHRoZW1zZWx2ZXMgYWdhaW5zdCBiZWluZworCSAqIGNh bGxlZCB0aGVuLCBob3dldmVyLikKKwkgKi8KKwlpZiAoIXByb2Nlc3Nfc2hhcmVkX3ByZWxvYWRf bGlicmFyaWVzX2luX3Byb2dyZXNzKQorCQlyZXR1cm47CisKKwkvKgorCSAqIEluZm9ybSB0aGUg cG9zdG1hc3RlciB0aGF0IHdlIHdhbnQgdG8gZW5hYmxlIHF1ZXJ5X2lkIGNhbGN1bGF0aW9uIGlm CisJICogY29tcHV0ZV9xdWVyeV9pZCBpcyBzZXQgdG8gYXV0bywgYXMgd2VsbCBhcyBwbGFuX2lk IGNhbGN1bGF0aW9uIGlmCisJICogY29tcHV0ZV9wbGFuX2lkIGlzIHNldCB0byBhdXRvLgorCSAq LworCUVuYWJsZVF1ZXJ5SWQoKTsKKwlFbmFibGVQbGFuSWQoKTsKKworCS8qCisJICogRGVmaW5l IChvciByZWRlZmluZSkgY3VzdG9tIEdVQyB2YXJpYWJsZXMuCisJICovCisJRGVmaW5lQ3VzdG9t SW50VmFyaWFibGUoInBnX3N0YXRfcGxhbnMubWF4IiwKKwkJCQkJCQkiU2V0cyB0aGUgbWF4aW11 bSBudW1iZXIgb2YgcGxhbnMgdHJhY2tlZCBieSBwZ19zdGF0X3BsYW5zIGluIHNoYXJlZCBtZW1v cnkuIiwKKwkJCQkJCQlOVUxMLAorCQkJCQkJCSZwZ3NwX21heCwKKwkJCQkJCQk1MDAwLAorCQkJ CQkJCTEwMCwKKwkJCQkJCQlJTlRfTUFYIC8gMiwKKwkJCQkJCQlQR0NfU0lHSFVQLAorCQkJCQkJ CTAsCisJCQkJCQkJTlVMTCwKKwkJCQkJCQlOVUxMLAorCQkJCQkJCU5VTEwpOworCisJRGVmaW5l Q3VzdG9tSW50VmFyaWFibGUoInBnX3N0YXRfcGxhbnMubWF4X3NpemUiLAorCQkJCQkJCSJTZXRz IHRoZSBtYXhpbXVtIHNpemUgb2YgcGxhbiB0ZXh0cyB0cmFja2VkIGJ5IHBnX3N0YXRfcGxhbnMg aW4gc2hhcmVkIG1lbW9yeS4iLAorCQkJCQkJCU5VTEwsCisJCQkJCQkJJnBnc3BfbWF4X3NpemUs CisJCQkJCQkJMjA0OCwKKwkJCQkJCQkxMDAsCisJCQkJCQkJMTA0ODU3NiwJLyogMU1CIGhhcmQg bGltaXQgKi8KKwkJCQkJCQlQR0NfU1VTRVQsCisJCQkJCQkJMCwKKwkJCQkJCQlOVUxMLAorCQkJ CQkJCU5VTEwsCisJCQkJCQkJTlVMTCk7CisKKwlEZWZpbmVDdXN0b21FbnVtVmFyaWFibGUoInBn X3N0YXRfcGxhbnMudHJhY2siLAorCQkJCQkJCSAiU2VsZWN0cyB3aGljaCBwbGFucyBhcmUgdHJh Y2tlZCBieSBwZ19zdGF0X3BsYW5zLiIsCisJCQkJCQkJIE5VTEwsCisJCQkJCQkJICZwZ3NwX3Ry YWNrLAorCQkJCQkJCSBQR1NQX1RSQUNLX1RPUCwKKwkJCQkJCQkgdHJhY2tfb3B0aW9ucywKKwkJ CQkJCQkgUEdDX1NVU0VULAorCQkJCQkJCSAwLAorCQkJCQkJCSBOVUxMLAorCQkJCQkJCSBOVUxM LAorCQkJCQkJCSBOVUxMKTsKKworCU1hcmtHVUNQcmVmaXhSZXNlcnZlZCgicGdfc3RhdF9wbGFu cyIpOworCisJLyoKKwkgKiBJbnN0YWxsIGhvb2tzLgorCSAqLworCXByZXZfcGxhbm5lcl9ob29r ID0gcGxhbm5lcl9ob29rOworCXBsYW5uZXJfaG9vayA9IHBnc3BfcGxhbm5lcjsKKwlwcmV2X0V4 ZWN1dG9yU3RhcnQgPSBFeGVjdXRvclN0YXJ0X2hvb2s7CisJRXhlY3V0b3JTdGFydF9ob29rID0g cGdzcF9FeGVjdXRvclN0YXJ0OworCXByZXZfRXhlY3V0b3JSdW4gPSBFeGVjdXRvclJ1bl9ob29r OworCUV4ZWN1dG9yUnVuX2hvb2sgPSBwZ3NwX0V4ZWN1dG9yUnVuOworCXByZXZfRXhlY3V0b3JG aW5pc2ggPSBFeGVjdXRvckZpbmlzaF9ob29rOworCUV4ZWN1dG9yRmluaXNoX2hvb2sgPSBwZ3Nw X0V4ZWN1dG9yRmluaXNoOworCXByZXZfRXhlY3V0b3JFbmQgPSBFeGVjdXRvckVuZF9ob29rOwor CUV4ZWN1dG9yRW5kX2hvb2sgPSBwZ3NwX0V4ZWN1dG9yRW5kOworCisJcGdzdGF0X3JlZ2lzdGVy X2tpbmQoUEdTVEFUX0tJTkRfUExBTlMsICZwbGFuX3N0YXRzKTsKK30KKworc3RhdGljIGJvb2wK K21hdGNoX3BsYW5zX2VudHJpZXMoUGdTdGF0U2hhcmVkX0hhc2hFbnRyeSAqZW50cnksIERhdHVt IG1hdGNoX2RhdGEpCit7CisJcmV0dXJuIGVudHJ5LT5rZXkua2luZCA9PSBQR1NUQVRfS0lORF9Q TEFOUzsKK30KKworLyoKKyAqIFJlc2V0IHN0YXRlbWVudCBzdGF0aXN0aWNzLgorICovCitEYXR1 bQorcGdfc3RhdF9wbGFuc19yZXNldChQR19GVU5DVElPTl9BUkdTKQoreworCXBnc3RhdF9kcm9w X21hdGNoaW5nX2VudHJpZXMobWF0Y2hfcGxhbnNfZW50cmllcywgMCk7CisKKwkvKiBGcmVlIHBs YW4gdGV4dCBtZW1vcnkgYW5kIGFsbG93IGNsZWFudXAgb2YgZHJvcHBlZCBlbnRyaWVzICovCisJ cGdzdGF0X2djX3BsYW5fbWVtb3J5KCk7CisKKwlQR19SRVRVUk5fVk9JRCgpOworfQorCisjZGVm aW5lIFBHX1NUQVRfUExBTlNfQ09MUyA4CisKK0RhdHVtCitwZ19zdGF0X3BsYW5zXzFfMChQR19G VU5DVElPTl9BUkdTKQoreworCWJvb2wJCXNob3dwbGFuID0gUEdfR0VUQVJHX0JPT0woMCk7CisJ UmV0dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZvLT5yZXN1bHRp bmZvOworCU9pZAkJCXVzZXJpZCA9IEdldFVzZXJJZCgpOworCWJvb2wJCWlzX2FsbG93ZWRfcm9s ZSA9IGZhbHNlOworCisJZHNoYXNoX3NlcV9zdGF0dXMgaHN0YXQ7CisJUGdTdGF0U2hhcmVkX0hh c2hFbnRyeSAqcDsKKworCS8qCisJICogU3VwZXJ1c2VycyBvciByb2xlcyB3aXRoIHRoZSBwcml2 aWxlZ2VzIG9mIHBnX3JlYWRfYWxsX3N0YXRzIG1lbWJlcnMKKwkgKiBhcmUgYWxsb3dlZAorCSAq LworCWlzX2FsbG93ZWRfcm9sZSA9IGhhc19wcml2c19vZl9yb2xlKHVzZXJpZCwgUk9MRV9QR19S RUFEX0FMTF9TVEFUUyk7CisKKwkvKiBzdGF0cyBraW5kIG11c3QgYmUgcmVnaXN0ZXJlZCBhbHJl YWR5ICovCisJaWYgKCFwZ3N0YXRfZ2V0X2tpbmRfaW5mbyhQR1NUQVRfS0lORF9QTEFOUykpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJF UVVJU0lURV9TVEFURSksCisJCQkJIGVycm1zZygicGdfc3RhdF9wbGFucyBtdXN0IGJlIGxvYWRl ZCB2aWEgXCJzaGFyZWRfcHJlbG9hZF9saWJyYXJpZXNcIiIpKSk7CisKKwlJbml0TWF0ZXJpYWxp emVkU1JGKGZjaW5mbywgMCk7CisKKwkvKiBkc2hhc2ggZW50cnkgaXMgbm90IG1vZGlmaWVkLCB0 YWtlIHNoYXJlZCBsb2NrICovCisJZHNoYXNoX3NlcV9pbml0KCZoc3RhdCwgcGdTdGF0TG9jYWwu c2hhcmVkX2hhc2gsIGZhbHNlKTsKKwl3aGlsZSAoKHAgPSBkc2hhc2hfc2VxX25leHQoJmhzdGF0 KSkgIT0gTlVMTCkKKwl7CisJCVBnU3RhdF9TdGF0UGxhbkVudHJ5ICpzdGF0ZW50OworCQlEYXR1 bQkJdmFsdWVzW1BHX1NUQVRfUExBTlNfQ09MU107CisJCWJvb2wJCW51bGxzW1BHX1NUQVRfUExB TlNfQ09MU107CisJCWludAkJCWkgPSAwOworCisJCWlmIChwLT5kcm9wcGVkIHx8IHAtPmtleS5r aW5kICE9IFBHU1RBVF9LSU5EX1BMQU5TKQorCQkJY29udGludWU7CisKKwkJbWVtc2V0KHZhbHVl cywgMCwgc2l6ZW9mKHZhbHVlcykpOworCQltZW1zZXQobnVsbHMsIDAsIHNpemVvZihudWxscykp OworCisJCXN0YXRlbnQgPSBwZ3N0YXRfZ2V0X2VudHJ5X2RhdGEocC0+a2V5LmtpbmQsIGRzYV9n ZXRfYWRkcmVzcyhwZ1N0YXRMb2NhbC5kc2EsIHAtPmJvZHkpKTsKKworCQl2YWx1ZXNbaSsrXSA9 IE9iamVjdElkR2V0RGF0dW0oc3RhdGVudC0+aW5mby51c2VyaWQpOworCQl2YWx1ZXNbaSsrXSA9 IE9iamVjdElkR2V0RGF0dW0ocC0+a2V5LmRib2lkKTsKKwkJdmFsdWVzW2krK10gPSBCb29sR2V0 RGF0dW0oc3RhdGVudC0+aW5mby50b3BsZXZlbCk7CisJCWlmIChpc19hbGxvd2VkX3JvbGUgfHwg c3RhdGVudC0+aW5mby51c2VyaWQgPT0gdXNlcmlkKQorCQl7CisJCQlpbnQ2NAkJcXVlcnlpZCA9 IHN0YXRlbnQtPmluZm8ucXVlcnlpZDsKKwkJCWludDY0CQlwbGFuaWQgPSBzdGF0ZW50LT5pbmZv LnBsYW5pZDsKKworCQkJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtRmFzdChxdWVyeWlkKTsK KwkJCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bUZhc3QocGxhbmlkKTsKKwkJfQorCQllbHNl CisJCXsKKwkJCW51bGxzW2krK10gPSB0cnVlOworCQkJbnVsbHNbaSsrXSA9IHRydWU7CisJCX0K KwkJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtRmFzdChzdGF0ZW50LT5leGVjX2NvdW50KTsK KwkJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bUZhc3Qoc3RhdGVudC0+ZXhlY190aW1lKTsK KworCQlpZiAoc2hvd3BsYW4gJiYgKGlzX2FsbG93ZWRfcm9sZSB8fCBzdGF0ZW50LT5pbmZvLnVz ZXJpZCA9PSB1c2VyaWQpKQorCQl7CisJCQljaGFyCSAgICpwc3RyID0gRHNhUG9pbnRlcklzVmFs aWQoc3RhdGVudC0+aW5mby5wbGFuX3RleHQpID8gZHNhX2dldF9hZGRyZXNzKHBnU3RhdExvY2Fs LmRzYSwgc3RhdGVudC0+aW5mby5wbGFuX3RleHQpIDogTlVMTDsKKworCQkJaWYgKHBzdHIpCisJ CQl7CisJCQkJY2hhcgkgICAqZW5jID0gcGdfYW55X3RvX3NlcnZlcihwc3RyLCBzdHJsZW4ocHN0 ciksIHN0YXRlbnQtPmluZm8ucGxhbl9lbmNvZGluZyk7CisKKwkJCQl2YWx1ZXNbaSsrXSA9IENT dHJpbmdHZXRUZXh0RGF0dW0oZW5jKTsKKworCQkJCWlmIChlbmMgIT0gcHN0cikKKwkJCQkJcGZy ZWUoZW5jKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQludWxsc1tpKytdID0gdHJ1ZTsKKwkJ CX0KKwkJfQorCQllbHNlIGlmIChzaG93cGxhbikKKwkJeworCQkJdmFsdWVzW2krK10gPSBDU3Ry aW5nR2V0VGV4dERhdHVtKCI8aW5zdWZmaWNpZW50IHByaXZpbGVnZT4iKTsKKwkJfQorCQllbHNl CisJCXsKKwkJCW51bGxzW2krK10gPSB0cnVlOworCQl9CisJCXR1cGxlc3RvcmVfcHV0dmFsdWVz KHJzaW5mby0+c2V0UmVzdWx0LCByc2luZm8tPnNldERlc2MsIHZhbHVlcywgbnVsbHMpOworCX0K Kwlkc2hhc2hfc2VxX3Rlcm0oJmhzdGF0KTsKKworCXJldHVybiAoRGF0dW0pIDA7Cit9CmRpZmYg LS1naXQgYS9jb250cmliL3BnX3N0YXRfcGxhbnMvcGdfc3RhdF9wbGFucy5jb25mIGIvY29udHJp Yi9wZ19zdGF0X3BsYW5zL3BnX3N0YXRfcGxhbnMuY29uZgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi42NzUwYjNlMmNjCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9w Z19zdGF0X3BsYW5zL3BnX3N0YXRfcGxhbnMuY29uZgpAQCAtMCwwICsxIEBACitzaGFyZWRfcHJl bG9hZF9saWJyYXJpZXMgPSAncGdfc3RhdF9wbGFucycKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdf c3RhdF9wbGFucy9wZ19zdGF0X3BsYW5zLmNvbnRyb2wgYi9jb250cmliL3BnX3N0YXRfcGxhbnMv cGdfc3RhdF9wbGFucy5jb250cm9sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLjRkYjNhNDcyMzkKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BnX3N0YXRfcGxhbnMv cGdfc3RhdF9wbGFucy5jb250cm9sCkBAIC0wLDAgKzEsNSBAQAorIyBwZ19zdGF0X3BsYW5zIGV4 dGVuc2lvbgorY29tbWVudCA9ICd0cmFjayBwZXItcGxhbiBjYWxsIGNvdW50cywgZXhlY3V0aW9u IHRpbWVzIGFuZCBFWFBMQUlOIHRleHRzJworZGVmYXVsdF92ZXJzaW9uID0gJzEuMCcKK21vZHVs ZV9wYXRobmFtZSA9ICckbGliZGlyL3BnX3N0YXRfcGxhbnMnCityZWxvY2F0YWJsZSA9IHRydWUK ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9wbGFucy9zcWwvY2xlYW51cC5zcWwgYi9jb250 cmliL3BnX3N0YXRfcGxhbnMvc3FsL2NsZWFudXAuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLjUxNTY1NjE3Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3Bn X3N0YXRfcGxhbnMvc3FsL2NsZWFudXAuc3FsCkBAIC0wLDAgKzEgQEAKK0RST1AgRVhURU5TSU9O IHBnX3N0YXRfcGxhbnM7CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfcGxhbnMvc3FsL3By aXZpbGVnZXMuc3FsIGIvY29udHJpYi9wZ19zdGF0X3BsYW5zL3NxbC9wcml2aWxlZ2VzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5hYWFkNzJhNjU1Ci0tLSAvZGV2 L251bGwKKysrIGIvY29udHJpYi9wZ19zdGF0X3BsYW5zL3NxbC9wcml2aWxlZ2VzLnNxbApAQCAt MCwwICsxLDU5IEBACistLQorLS0gT25seSBzdXBlcnVzZXJzIGFuZCByb2xlcyB3aXRoIHByaXZp bGVnZXMgb2YgdGhlIHBnX3JlYWRfYWxsX3N0YXRzIHJvbGUKKy0tIGFyZSBhbGxvd2VkIHRvIHNl ZSB0aGUgcGxhbiB0ZXh0LCBxdWVyeWlkIGFuZCBwbGFuaWQgb2YgcXVlcmllcyBleGVjdXRlZCBi eQorLS0gb3RoZXIgdXNlcnMuIE90aGVyIHVzZXJzIGNhbiBzZWUgdGhlIHN0YXRpc3RpY3MuCist LQorCitDUkVBVEUgUk9MRSByZWdyZXNzX3N0YXRzX3N1cGVydXNlciBTVVBFUlVTRVI7CitDUkVB VEUgUk9MRSByZWdyZXNzX3N0YXRzX3VzZXIxOworQ1JFQVRFIFJPTEUgcmVncmVzc19zdGF0c191 c2VyMjsKK0dSQU5UIHBnX3JlYWRfYWxsX3N0YXRzIFRPIHJlZ3Jlc3Nfc3RhdHNfdXNlcjI7CisK K1NFVCBST0xFIHJlZ3Jlc3Nfc3RhdHNfc3VwZXJ1c2VyOworU0VMRUNUIHBnX3N0YXRfcGxhbnNf cmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0OworU0VMRUNUIDEgQVMgIk9ORSI7CisKK1NFVCBST0xF IHJlZ3Jlc3Nfc3RhdHNfdXNlcjE7CitTRUxFQ1QgMSsxIEFTICJUV08iOworCistLQorLS0gQSBz dXBlcnVzZXIgY2FuIHJlYWQgYWxsIGNvbHVtbnMgb2YgcXVlcmllcyBleGVjdXRlZCBieSBvdGhl cnMsCistLSBpbmNsdWRpbmcgcGxhbiB0ZXh0LCBxdWVyeWlkIGFuZCBwbGFuaWQuCistLQorCitT RVQgUk9MRSByZWdyZXNzX3N0YXRzX3N1cGVydXNlcjsKK1NFTEVDVCByLnJvbG5hbWUsIHNzLnF1 ZXJ5aWQgPD4gMCBBUyBxdWVyeWlkX2Jvb2wsIHNzLnBsYW5pZCA8PiAwIEFTIHBsYW5pZF9ib29s LCBzcy5wbGFuLCBzcy5jYWxscworICBGUk9NIHBnX3N0YXRfcGxhbnMgc3MgSk9JTiBwZ19yb2xl cyByIE9OIHNzLnVzZXJpZCA9IHIub2lkCisgIE9SREVSIEJZIHIucm9sbmFtZSwgc3MucGxhbiBD T0xMQVRFICJDIiwgc3MuY2FsbHM7CisKKy0tCistLSByZWdyZXNzX3N0YXRzX3VzZXIxIGhhcyBu byBwcml2aWxlZ2VzIHRvIHJlYWQgdGhlIHBsYW4gdGV4dCwgcXVlcnlpZAorLS0gb3IgcGxhbmlk IG9mIHF1ZXJpZXMgZXhlY3V0ZWQgYnkgb3RoZXJzIGJ1dCBjYW4gc2VlIHN0YXRpc3RpY3MKKy0t IGxpa2UgY2FsbHMgYW5kIHJvd3MuCistLQorCitTRVQgUk9MRSByZWdyZXNzX3N0YXRzX3VzZXIx OworU0VMRUNUIHIucm9sbmFtZSwgc3MucXVlcnlpZCA8PiAwIEFTIHF1ZXJ5aWRfYm9vbCwgc3Mu cGxhbmlkIDw+IDAgQVMgcGxhbmlkX2Jvb2wsIHNzLnBsYW4sIHNzLmNhbGxzCisgIEZST00gcGdf c3RhdF9wbGFucyBzcyBKT0lOIHBnX3JvbGVzIHIgT04gc3MudXNlcmlkID0gci5vaWQKKyAgT1JE RVIgQlkgci5yb2xuYW1lLCBzcy5wbGFuIENPTExBVEUgIkMiLCBzcy5jYWxsczsKKworLS0KKy0t IHJlZ3Jlc3Nfc3RhdHNfdXNlcjIsIHdpdGggcGdfcmVhZF9hbGxfc3RhdHMgcm9sZSBwcml2aWxl Z2VzLCBjYW4KKy0tIHJlYWQgYWxsIGNvbHVtbnMsIGluY2x1ZGluZyBwbGFuIHRleHQsIHF1ZXJ5 aWQgYW5kIHBsYW5pZCwgb2YgcXVlcmllcworLS0gZXhlY3V0ZWQgYnkgb3RoZXJzLgorLS0KKwor U0VUIFJPTEUgcmVncmVzc19zdGF0c191c2VyMjsKK1NFTEVDVCByLnJvbG5hbWUsIHNzLnF1ZXJ5 aWQgPD4gMCBBUyBxdWVyeWlkX2Jvb2wsIHNzLnBsYW5pZCA8PiAwIEFTIHBsYW5pZF9ib29sLCBz cy5wbGFuLCBzcy5jYWxscworICBGUk9NIHBnX3N0YXRfcGxhbnMgc3MgSk9JTiBwZ19yb2xlcyBy IE9OIHNzLnVzZXJpZCA9IHIub2lkCisgIE9SREVSIEJZIHIucm9sbmFtZSwgc3MucGxhbiBDT0xM QVRFICJDIiwgc3MuY2FsbHM7CisKKy0tCistLSBjbGVhbnVwCistLQorCitSRVNFVCBST0xFOwor RFJPUCBST0xFIHJlZ3Jlc3Nfc3RhdHNfc3VwZXJ1c2VyOworRFJPUCBST0xFIHJlZ3Jlc3Nfc3Rh dHNfdXNlcjE7CitEUk9QIFJPTEUgcmVncmVzc19zdGF0c191c2VyMjsKK1NFTEVDVCBwZ19zdGF0 X3BsYW5zX3Jlc2V0KCkgSVMgTk9UIE5VTEwgQVMgdDsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdf c3RhdF9wbGFucy9zcWwvc2VsZWN0LnNxbCBiL2NvbnRyaWIvcGdfc3RhdF9wbGFucy9zcWwvc2Vs ZWN0LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5mMGU4MDNhZDcw Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wZ19zdGF0X3BsYW5zL3NxbC9zZWxlY3Quc3Fs CkBAIC0wLDAgKzEsNjcgQEAKKy0tCistLSBTRUxFQ1Qgc3RhdGVtZW50cworLS0KKworQ1JFQVRF IEVYVEVOU0lPTiBwZ19zdGF0X3BsYW5zOworU0VMRUNUIHBnX3N0YXRfcGxhbnNfcmVzZXQoKSBJ UyBOT1QgTlVMTCBBUyB0OworCistLQorLS0gc2ltcGxlIHN0YXRlbWVudHMKKy0tCisKK1NFTEVD VCAxIEZST00gcGdfY2xhc3MgTElNSVQgMTsKKworU0VMRUNUIDEgRlJPTSBwZ19jbGFzcyBXSEVS RSByZWxuYW1lID0gJ3BnX2NsYXNzJzsKKworU0VUIGVuYWJsZV9pbmRleHNjYW4gPSBvZmY7CitT RUxFQ1QgMSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAncGdfY2xhc3MnOworU0VUIGVu YWJsZV9pbmRleHNjYW4gPSBvbjsKKworU0VMRUNUIHBsYW4sIGNhbGxzIEZST00gcGdfc3RhdF9w bGFucyBPUkRFUiBCWSBwbGFuIENPTExBVEUgIkMiOworU0VMRUNUIHBnX3N0YXRfcGxhbnNfcmVz ZXQoKSBJUyBOT1QgTlVMTCBBUyB0OworCistLQorLS0gc3VicGxhbnMgYW5kIENURXMKKy0tCisK K1dJVEggeCBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAxKQorU0VMRUNUICogRlJPTSB4OworCitT RUxFQ1QgYS5hdHRuYW1lLAorICAgKFNFTEVDVCBwZ19jYXRhbG9nLnBnX2dldF9leHByKGQuYWRi aW4sIGQuYWRyZWxpZCkKKyAgICBGUk9NIHBnX2NhdGFsb2cucGdfYXR0cmRlZiBkCisgICAgV0hF UkUgZC5hZHJlbGlkID0gYS5hdHRyZWxpZCBBTkQgZC5hZG51bSA9IGEuYXR0bnVtIEFORCBhLmF0 dGhhc2RlZikKKyBGUk9NIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlIGEKKyBXSEVSRSBhLmF0dHJl bGlkID0gJ3BnX2NsYXNzJzo6cmVnY2xhc3MKKyBPUkRFUiBCWSBhdHRudW0gTElNSVQgMTsKKwor U0VMRUNUIHBsYW4sIGNhbGxzIEZST00gcGdfc3RhdF9wbGFucyBPUkRFUiBCWSBwbGFuIENPTExB VEUgIkMiOworU0VMRUNUIHBnX3N0YXRfcGxhbnNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0Owor CistLQorLS0gcGFydGl0b25pbmcKKy0tCisKK2NyZWF0ZSB0YWJsZSBscCAoYSBjaGFyKSBwYXJ0 aXRpb24gYnkgbGlzdCAoYSk7CitjcmVhdGUgdGFibGUgbHBfZGVmYXVsdCBwYXJ0aXRpb24gb2Yg bHAgZGVmYXVsdDsKK2NyZWF0ZSB0YWJsZSBscF9lZiBwYXJ0aXRpb24gb2YgbHAgZm9yIHZhbHVl cyBpbiAoJ2UnLCAnZicpOworY3JlYXRlIHRhYmxlIGxwX2FkIHBhcnRpdGlvbiBvZiBscCBmb3Ig dmFsdWVzIGluICgnYScsICdkJyk7CitjcmVhdGUgdGFibGUgbHBfYmMgcGFydGl0aW9uIG9mIGxw IGZvciB2YWx1ZXMgaW4gKCdiJywgJ2MnKTsKK2NyZWF0ZSB0YWJsZSBscF9nIHBhcnRpdGlvbiBv ZiBscCBmb3IgdmFsdWVzIGluICgnZycpOworY3JlYXRlIHRhYmxlIGxwX251bGwgcGFydGl0aW9u IG9mIGxwIGZvciB2YWx1ZXMgaW4gKG51bGwpOworCitzZWxlY3QgKiBmcm9tIGxwOworc2VsZWN0 ICogZnJvbSBscCB3aGVyZSBhID4gJ2EnIGFuZCBhIDwgJ2QnOworc2VsZWN0ICogZnJvbSBscCB3 aGVyZSBhID4gJ2EnIGFuZCBhIDw9ICdkJzsKK3NlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSA9ICdh JzsKK3NlbGVjdCAqIGZyb20gbHAgd2hlcmUgJ2EnID0gYTsJLyogY29tbXV0ZWQgKi8KK3NlbGVj dCAqIGZyb20gbHAgd2hlcmUgYSBpcyBub3QgbnVsbDsKK3NlbGVjdCAqIGZyb20gbHAgd2hlcmUg YSBpcyBudWxsOworc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhID0gJ2EnIG9yIGEgPSAnYyc7Citz ZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgaXMgbm90IG51bGwgYW5kIChhID0gJ2EnIG9yIGEgPSAn YycpOworc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIDw+ICdnJzsKK3NlbGVjdCAqIGZyb20gbHAg d2hlcmUgYSA8PiAnYScgYW5kIGEgPD4gJ2QnOworc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIG5v dCBpbiAoJ2EnLCAnZCcpOworCitTRUxFQ1QgcGxhbiwgY2FsbHMgRlJPTSBwZ19zdGF0X3BsYW5z IE9SREVSIEJZIHBsYW4gQ09MTEFURSAiQyI7CitTRUxFQ1QgcGdfc3RhdF9wbGFuc19yZXNldCgp IElTIE5PVCBOVUxMIEFTIHQ7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29udHJpYi5zZ21s IGIvZG9jL3NyYy9zZ21sL2NvbnRyaWIuc2dtbAppbmRleCA3YzM4MTk0OWE1Li40YTVhMDJjNzA0 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29udHJpYi5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9jb250cmliLnNnbWwKQEAgLTE1Nyw2ICsxNTcsNyBAQCBDUkVBVEUgRVhURU5TSU9OIDxyZXBs YWNlYWJsZT5leHRlbnNpb25fbmFtZTwvcmVwbGFjZWFibGU+OwogICZwZ2xvZ2ljYWxpbnNwZWN0 OwogICZwZ3ByZXdhcm07CiAgJnBncm93bG9ja3M7CisgJnBnc3RhdHBsYW5zOwogICZwZ3N0YXRz dGF0ZW1lbnRzOwogICZwZ3N0YXR0dXBsZTsKICAmcGdzdXJnZXJ5OwpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2ZpbGVsaXN0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZmlsZWxpc3Quc2dtbAppbmRl eCA2NmU2ZGNjZDRjLi5iMGFmYjMzY2UyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZmlsZWxp c3Quc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZmlsZWxpc3Quc2dtbApAQCAtMTQ2LDYgKzE0Niw3 IEBACiA8IUVOVElUWSBwZ2xvZ2ljYWxpbnNwZWN0ICBTWVNURU0gInBnbG9naWNhbGluc3BlY3Qu c2dtbCI+CiA8IUVOVElUWSBwZ3ByZXdhcm0gICAgICAgU1lTVEVNICJwZ3ByZXdhcm0uc2dtbCI+ CiA8IUVOVElUWSBwZ3Jvd2xvY2tzICAgICAgU1lTVEVNICJwZ3Jvd2xvY2tzLnNnbWwiPgorPCFF TlRJVFkgcGdzdGF0cGxhbnMgICAgIFNZU1RFTSAicGdzdGF0cGxhbnMuc2dtbCI+CiA8IUVOVElU WSBwZ3N0YXRzdGF0ZW1lbnRzIFNZU1RFTSAicGdzdGF0c3RhdGVtZW50cy5zZ21sIj4KIDwhRU5U SVRZIHBnc3RhdHR1cGxlICAgICBTWVNURU0gInBnc3RhdHR1cGxlLnNnbWwiPgogPCFFTlRJVFkg cGdzdXJnZXJ5ICAgICAgIFNZU1RFTSAicGdzdXJnZXJ5LnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3Bnc3RhdHBsYW5zLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGdzdGF0cGxhbnMuc2dt bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yZDVmYWZmMTVhCi0tLSAv ZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3Bnc3RhdHBsYW5zLnNnbWwKQEAgLTAsMCArMSw0 MjUgQEAKKzwhLS0gZG9jL3NyYy9zZ21sL3Bnc3RhdHBsYW5zLnNnbWwgLS0+CisKKzxzZWN0MSBp ZD0icGdzdGF0cGxhbnMiIHhyZWZsYWJlbD0icGdfc3RhdF9wbGFucyI+CisgPHRpdGxlPnBnX3N0 YXRfcGxhbnMgJm1kYXNoOyB0cmFjayBwZXItcGxhbiBjYWxsIGNvdW50cywgZXhlY3V0aW9uIHRp bWVzIGFuZCBFWFBMQUlOIHRleHRzPC90aXRsZT4KKworIDxpbmRleHRlcm0gem9uZT0icGdzdGF0 cGxhbnMiPgorICA8cHJpbWFyeT5wZ19zdGF0X3BsYW5zPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJt PgorCisgPHBhcmE+CisgIFRoZSA8ZmlsZW5hbWU+cGdfc3RhdF9wbGFuczwvZmlsZW5hbWU+IG1v ZHVsZSBwcm92aWRlcyBhIG1lYW5zIGZvcgorICB0cmFja2luZyBwZXItcGxhbiBzdGF0aXN0aWNz IGFuZCBwbGFuIHRleHRzIG9mIGFsbCBTUUwgc3RhdGVtZW50cyBleGVjdXRlZCBieQorICBhIHNl cnZlci4KKyA8L3BhcmE+CisKKyA8cGFyYT4KKyAgVGhlIG1vZHVsZSBtdXN0IGJlIGxvYWRlZCBi eSBhZGRpbmcgPGxpdGVyYWw+cGdfc3RhdF9wbGFuczwvbGl0ZXJhbD4gdG8KKyAgPHhyZWYgbGlu a2VuZD0iZ3VjLXNoYXJlZC1wcmVsb2FkLWxpYnJhcmllcyIvPiBpbgorICA8ZmlsZW5hbWU+cG9z dGdyZXNxbC5jb25mPC9maWxlbmFtZT4sIGJlY2F1c2UgaXQgcmVxdWlyZXMgYWRkaXRpb25hbCBz aGFyZWQgbWVtb3J5LgorICBUaGlzIG1lYW5zIHRoYXQgYSBzZXJ2ZXIgcmVzdGFydCBpcyBuZWVk ZWQgdG8gYWRkIG9yIHJlbW92ZSB0aGUgbW9kdWxlLgorICBJbiBhZGRpdGlvbiwgcXVlcnkgYW5k IHBsYW4gaWRlbnRpZmllciBjYWxjdWxhdGlvbiBtdXN0IGJlIGVuYWJsZWQgaW4gb3JkZXIgZm9y IHRoZQorICBtb2R1bGUgdG8gYmUgYWN0aXZlIGJ5IHNldHRpbmcgYm90aCA8eHJlZiBsaW5rZW5k PSJndWMtY29tcHV0ZS1wbGFuLWlkIi8+IHRvCisgIDxsaXRlcmFsPmF1dG88L2xpdGVyYWw+IG9y IDxsaXRlcmFsPm9uPC9saXRlcmFsPiBhbmQKKyAgPHhyZWYgbGlua2VuZD0iZ3VjLWNvbXB1dGUt cXVlcnktaWQiLz4gdG8gPGxpdGVyYWw+YXV0bzwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+b248L2xp dGVyYWw+LgorIDwvcGFyYT4KKworIDxwYXJhPgorICAgV2hlbiA8ZmlsZW5hbWU+cGdfc3RhdF9w bGFuczwvZmlsZW5hbWU+IGlzIGFjdGl2ZSwgaXQgdHJhY2tzCisgICBzdGF0aXN0aWNzIGFjcm9z cyBhbGwgZGF0YWJhc2VzIG9mIHRoZSBzZXJ2ZXIuICBUbyBhY2Nlc3MgYW5kIG1hbmlwdWxhdGUK KyAgIHRoZXNlIHN0YXRpc3RpY3MsIHRoZSBtb2R1bGUgcHJvdmlkZXMgdGhlIDxzdHJ1Y3RuYW1l PnBnX3N0YXRfcGxhbnM8L3N0cnVjdG5hbWU+CisgICB2aWV3IGFuZCB0aGUgdXRpbGl0eSBmdW5j dGlvbnMgPGZ1bmN0aW9uPnBnX3N0YXRfcGxhbnNfcmVzZXQ8L2Z1bmN0aW9uPiBhbmQKKyAgIDxm dW5jdGlvbj5wZ19zdGF0X3BsYW5zPC9mdW5jdGlvbj4uICBUaGVzZSBhcmUgbm90IGF2YWlsYWJs ZSBnbG9iYWxseSBidXQKKyAgIGNhbiBiZSBlbmFibGVkIGZvciBhIHNwZWNpZmljIGRhdGFiYXNl IHdpdGgKKyAgIDxjb21tYW5kPkNSRUFURSBFWFRFTlNJT04gcGdfc3RhdF9wbGFuczwvY29tbWFu ZD4uCisgPC9wYXJhPgorCisgPHNlY3QyIGlkPSJwZ3N0YXRwbGFucy1wZy1zdGF0LXBsYW5zIj4K KyAgPHRpdGxlPlRoZSA8c3RydWN0bmFtZT5wZ19zdGF0X3BsYW5zPC9zdHJ1Y3RuYW1lPiBWaWV3 PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSBzdGF0aXN0aWNzIGdhdGhlcmVkIGJ5IHRoZSBt b2R1bGUgYXJlIG1hZGUgYXZhaWxhYmxlIHZpYSBhCisgICB2aWV3IG5hbWVkIDxzdHJ1Y3RuYW1l PnBnX3N0YXRfcGxhbnM8L3N0cnVjdG5hbWU+LiAgVGhpcyB2aWV3CisgICBjb250YWlucyBvbmUg cm93IGZvciBlYWNoIGRpc3RpbmN0IGNvbWJpbmF0aW9uIG9mIGRhdGFiYXNlIElELCB1c2VyCisg ICBJRCwgd2hldGhlciBpdCdzIGEgdG9wLWxldmVsIHN0YXRlbWVudCBvciBub3QsIHF1ZXJ5IElE IGFuZCBwbGFuIElECisgICAodXAgdG8gdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpc3RpbmN0IHBs YW5zIHRoYXQgdGhlIG1vZHVsZSBjYW4gdHJhY2spLgorICAgVGhlIGNvbHVtbnMgb2YgdGhlIHZp ZXcgYXJlIHNob3duIGluIDx4cmVmIGxpbmtlbmQ9InBnc3RhdHBsYW5zLWNvbHVtbnMiLz4uCisg IDwvcGFyYT4KKworICA8dGFibGUgaWQ9InBnc3RhdHBsYW5zLWNvbHVtbnMiPgorICAgPHRpdGxl PjxzdHJ1Y3RuYW1lPnBnX3N0YXRfcGxhbnM8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgor ICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAg IDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD51c2VyaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+Cisg ICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdXRoaWQiPjxzdHJ1 Y3RuYW1lPnBnX2F1dGhpZDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0 cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE9JRCBvZiB1 c2VyIHdobyBleGVjdXRlZCB0aGUgc3RhdGVtZW50CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPmRiaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5j ZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1kYXRhYmFzZSI+PHN0cnVjdG5hbWU+cGdfZGF0 YWJhc2U8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4p CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBPSUQgb2YgZGF0YWJhc2UgaW4g d2hpY2ggdGhlIHN0YXRlbWVudCB3YXMgZXhlY3V0ZWQKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+dG9wbGV2ZWw8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVHJ1ZSBpZiB0aGUgcXVlcnkgd2FzIGV4ZWN1dGVk IGFzIGEgdG9wLWxldmVsIHN0YXRlbWVudAorICAgICAgIChhbHdheXMgdHJ1ZSBpZiA8dmFybmFt ZT5wZ19zdGF0X3BsYW5zLnRyYWNrPC92YXJuYW1lPiBpcyBzZXQgdG8KKyAgICAgICA8bGl0ZXJh bD50b3A8L2xpdGVyYWw+KQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5xdWVyeWlkPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgSGFzaCBjb2RlIHRvIGlkZW50aWZ5IGlkZW50aWNhbCBub3JtYWxpemVkIHF1 ZXJpZXMuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBsYW5pZDwvc3RydWN0ZmllbGQ+ IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IEhhc2ggY29kZSB0byBpZGVudGlmeSBpZGVudGljYWwgcGxhbiBzaGFwZXMuCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPmNhbGxzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTnVtYmVyIG9mIHRpbWVzIHRo ZSBwbGFuIHdhcyBleGVjdXRlZAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9l eGVjX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5kb3VibGUgcHJlY2lzaW9uPC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVG90YWwgdGltZSBzcGVudCBleGVjdXRp bmcgdGhlIHBsYW4sIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5wbGFuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFBsYW4gdGV4dCBvZiBhIHJlcHJlc2VudGF0aXZlIHBsYW4uIFRo aXMgaXMgc2ltaWxhciB0byB0aGUgb3V0cHV0IG9mCisgICAgICAgPGxpdGVyYWw+RVhQTEFJTiAo Q09TVFMgT0ZGKTwvbGl0ZXJhbD4uIE5vdGUgdGhlIHBsYW4gdGV4dCB3aWxsIGNvbnRhaW4gY29u c3RhbnQKKyAgICAgICB2YWx1ZXMgb2YgdGhlIGZpcnN0IHBsYW4gcmVjb3JkZWQsIGJ1dCBzdWJz ZXF1ZW50IGV4ZWN1dGlvbnMgb2YgdGhlCisgICAgICAgc2FtZSBwbGFuIGhhc2ggY29kZSAoPHN0 cnVjdGZpZWxkPnBsYW5pZDwvc3RydWN0ZmllbGQ+KSB3aXRoIGRpZmZlcmVudAorICAgICAgIGNv bnN0YW50IHZhbHVlcyB3aWxsIGJlIHRyYWNrZWQgdW5kZXIgdGhlIHNhbWUgZW50cnkuCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3Vw PgorICA8L3RhYmxlPgorCisgIDxwYXJhPgorICAgRm9yIHNlY3VyaXR5IHJlYXNvbnMsIG9ubHkg c3VwZXJ1c2VycyBhbmQgcm9sZXMgd2l0aCBwcml2aWxlZ2VzIG9mIHRoZQorICAgPGxpdGVyYWw+ cGdfcmVhZF9hbGxfc3RhdHM8L2xpdGVyYWw+IHJvbGUgYXJlIGFsbG93ZWQgdG8gc2VlIHRoZSBw bGFuIHRleHQsCisgICA8c3RydWN0ZmllbGQ+cXVlcnlpZDwvc3RydWN0ZmllbGQ+IGFuZCA8c3Ry dWN0ZmllbGQ+cGxhbmlkPC9zdHJ1Y3RmaWVsZD4KKyAgIG9mIHF1ZXJpZXMgZXhlY3V0ZWQgYnkg b3RoZXIgdXNlcnMuIE90aGVyIHVzZXJzIGNhbiBzZWUgdGhlIHN0YXRpc3RpY3MsCisgICBob3dl dmVyLCBpZiB0aGUgdmlldyBoYXMgYmVlbiBpbnN0YWxsZWQgaW4gdGhlaXIgZGF0YWJhc2UuCisg IDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFBsYW5uYWJsZSBxdWVyaWVzICh0aGF0IGlzLCA8Y29t bWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+LCA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+LAorICAgPGNv bW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiwgYW5kIDxj b21tYW5kPk1FUkdFPC9jb21tYW5kPikKKyAgIHdpbGwgaGF2ZSB0aGUgc2FtZSA8c3RydWN0Zmll bGQ+cGxhbmlkPC9zdHJ1Y3RmaWVsZD4gd2hlbmV2ZXIgdGhleSBoYXZlIGlkZW50aWNhbCBwbGFu CisgICBzdHJ1Y3R1cmVzIGFjY29yZGluZyB0byBhbiBpbnRlcm5hbCBoYXNoIGNhbGN1bGF0aW9u LiBUeXBpY2FsbHksIHR3byBwbGFucyB3aWxsIGJlCisgICBjb25zaWRlcmVkIHRoZSBzYW1lIGZv ciB0aGlzIHB1cnBvc2UgaWYgdGhleSBoYXZlIHRoZSBzYW1lCisgICA8bGl0ZXJhbD5FWFBMQUlO IChDT1NUUyBPRkYpPC9saXRlcmFsPiBvdXRwdXQgYW5kIGFyZSBzZW1hbnRpY2FsbHkgZXF1aXZh bGVudCBleGNlcHQKKyAgIGZvciB0aGUgdmFsdWVzIG9mIGxpdGVyYWwgY29uc3RhbnRzIGFwcGVh cmluZyBpbiB0aGUgcXVlcnkgcGxhbi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgTm90ZSB0 aGF0IHF1ZXJpZXMgdGhhdCBoYXZlIG5vdCBmaW5pc2hlZCBleGVjdXRpbmcgeWV0IHdpbGwgc2hv dyBpbgorICAgPHN0cnVjdG5hbWU+cGdfc3RhdF9wbGFuczwvc3RydWN0bmFtZT4gd2l0aCB0aGVp ciBwbGFuIHRleHQsIGJ1dCB3aXRob3V0CisgICB0aGUgPHN0cnVjdG5hbWU+Y2FsbHM8L3N0cnVj dG5hbWU+IGZpZWxkIGJlaW5nIGluY3JlbWVudGVkLiBUaGlzIGNhbiBiZQorICAgdXNlZCB0byBp ZGVudGlmeSB0aGUgcXVlcnkgcGxhbiBmb3IgYSBjdXJyZW50bHkgcnVubmluZyBzdGF0ZW1lbnQg Ynkgam9pbmluZworICAgPGxpbmsgbGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LWFjdGl2aXR5 LXZpZXciPnBnX3N0YXRfYWN0aXZpdHk8L2xpbms+CisgICB3aXRoIDxzdHJ1Y3RuYW1lPnBnX3N0 YXRfcGxhbnM8L3N0cnVjdG5hbWU+LCBzZWUgZXhhbXBsZSB1c2FnZSBpbgorICAgPHhyZWYgbGlu a2VuZD0icGdzdGF0cGxhbnMtc2FtcGxlLW91dHB1dCIvPi4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgQ29uc3VtZXJzIG9mIDxzdHJ1Y3RuYW1lPnBnX3N0YXRfcGxhbnM8L3N0cnVjdG5hbWU+ IHNob3VsZCB1c2UKKyAgIDxzdHJ1Y3RmaWVsZD5wbGFuaWQ8L3N0cnVjdGZpZWxkPiBpbiBjb21i aW5hdGlvbiB3aXRoCisgICA8c3RydWN0ZmllbGQ+cXVlcnlpZDwvc3RydWN0ZmllbGQ+LCA8c3Ry dWN0ZmllbGQ+ZGJpZDwvc3RydWN0ZmllbGQ+LAorICAgPHN0cnVjdGZpZWxkPnVzZXJpZDwvc3Ry dWN0ZmllbGQ+IGFuZCA8c3RydWN0ZmllbGQ+dG9wbGV2ZWw8L3N0cnVjdGZpZWxkPgorICAgYXMg YSBzdGFibGUgYW5kIHJlbGlhYmxlIGlkZW50aWZpZXIgZm9yIGVhY2ggZW50cnksIGluc3RlYWQg b2YgdXNpbmcgaXRzCisgICBwbGFuIHRleHQuIEhvd2V2ZXIsIGl0IGlzIGltcG9ydGFudCB0byB1 bmRlcnN0YW5kIHRoYXQgdGhlcmUgYXJlIG9ubHkgbGltaXRlZAorICAgZ3VhcmFudGVlcyBhcm91 bmQgdGhlIHN0YWJpbGl0eSBvZiB0aGUgPHN0cnVjdGZpZWxkPnBsYW5pZDwvc3RydWN0ZmllbGQ+ CisgICBoYXNoIHZhbHVlLiAgU2luY2UgdGhlIGlkZW50aWZpZXIgaXMgZGVyaXZlZCBmcm9tIHRo ZSBwbGFuIHRyZWUsIGl0cyB2YWx1ZQorICAgaXMgYSBmdW5jdGlvbiBvZiwgYW1vbmcgb3RoZXIg dGhpbmdzLCB0aGUgaW50ZXJuYWwgb2JqZWN0IGlkZW50aWZpZXJzCisgICBhcHBlYXJpbmcgaW4g dGhpcyByZXByZXNlbnRhdGlvbi4gVGhpcyBoYXMgc29tZSBjb3VudGVyaW50dWl0aXZlIGltcGxp Y2F0aW9ucy4KKyAgIEZvciBleGFtcGxlLCA8ZmlsZW5hbWU+cGdfc3RhdF9wbGFuczwvZmlsZW5h bWU+IHdpbGwgY29uc2lkZXIgdHdvCisgICBhcHBhcmVudGx5LWlkZW50aWNhbCBwbGFucyB0byBi ZSBkaXN0aW5jdCwgaWYgdGhleSByZWZlcmVuY2UgYSB0YWJsZQorICAgdGhhdCB3YXMgZHJvcHBl ZCBhbmQgcmVjcmVhdGVkIGJldHdlZW4gdGhlIGNyZWF0aW9uIG9mIHRoZSB0d28gcGxhbnMuCisg ICBUaGUgaGFzaGluZyBwcm9jZXNzIGlzIGFsc28gc2Vuc2l0aXZlIHRvIGRpZmZlcmVuY2VzIGlu CisgICBtYWNoaW5lIGFyY2hpdGVjdHVyZSBhbmQgb3RoZXIgZmFjZXRzIG9mIHRoZSBwbGF0Zm9y bS4KKyAgIEZ1cnRoZXJtb3JlLCBpdCBpcyBub3Qgc2FmZSB0byBhc3N1bWUgdGhhdCA8c3RydWN0 ZmllbGQ+cGxhbmlkPC9zdHJ1Y3RmaWVsZD4KKyAgIHdpbGwgYmUgc3RhYmxlIGFjcm9zcyBtYWpv ciB2ZXJzaW9ucyBvZiA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LgorICA8 L3BhcmE+CisKKyAgPHBhcmE+CisgICBUd28gc2VydmVycyBwYXJ0aWNpcGF0aW5nIGluIHJlcGxp Y2F0aW9uIGJhc2VkIG9uIHBoeXNpY2FsIFdBTCByZXBsYXkgY2FuCisgICBiZSBleHBlY3RlZCB0 byBoYXZlIGlkZW50aWNhbCA8c3RydWN0ZmllbGQ+cGxhbmlkPC9zdHJ1Y3RmaWVsZD4gdmFsdWVz IGZvcgorICAgdGhlIHNhbWUgcGxhbi4gIEhvd2V2ZXIsIGxvZ2ljYWwgcmVwbGljYXRpb24gc2No ZW1lcyBkbyBub3QgcHJvbWlzZSB0bworICAga2VlcCByZXBsaWNhcyBpZGVudGljYWwgaW4gYWxs IHJlbGV2YW50IGRldGFpbHMsIHNvCisgICA8c3RydWN0ZmllbGQ+cGxhbmlkPC9zdHJ1Y3RmaWVs ZD4gd2lsbCBub3QgYmUgYSB1c2VmdWwgaWRlbnRpZmllciBmb3IKKyAgIGFjY3VtdWxhdGluZyBj b3N0cyBhY3Jvc3MgYSBzZXQgb2YgbG9naWNhbCByZXBsaWNhcy4KKyAgIElmIGluIGRvdWJ0LCBk aXJlY3QgdGVzdGluZyBpcyByZWNvbW1lbmRlZC4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAg UGxhbiB0ZXh0cyBhcmUgc3RvcmVkIGluIHNoYXJlZCBtZW1vcnksIGFuZCBsaW1pdGVkIGluIGxl bmd0aC4gVG8gaW5jcmVhc2UKKyAgIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBzdG9yZWQgcGxhbiB0 ZXh0cyB5b3UgY2FuIGluY3JlYXNlCisgICA8dmFybmFtZT5wZ19zdGF0X3BsYW5zLm1heF9zaXpl PC92YXJuYW1lPi4gVGhpcyB2YWx1ZSBjYW4gYmUgY2hhbmdlZCBmb3IKKyAgIGFuIGluZGl2aWR1 YWwgY29ubmVjdGlvbiwgb3Igc2V0IGFzIGEgc2VydmVyLXdpZGUgc2V0dGluZy4KKyAgPC9wYXJh PgorIDwvc2VjdDI+CisKKyA8c2VjdDIgaWQ9InBnc3RhdHBsYW5zLWZ1bmNzIj4KKyAgPHRpdGxl PkZ1bmN0aW9uczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+CisgICAgIDxmdW5jdGlvbj5wZ19zdGF0X3BsYW5zX3Jlc2V0KCkgcmV0dXJu cyB2b2lkPC9mdW5jdGlvbj4KKyAgICAgPGluZGV4dGVybT4KKyAgICAgIDxwcmltYXJ5PnBnX3N0 YXRfcGxhbnNfcmVzZXQ8L3ByaW1hcnk+CisgICAgIDwvaW5kZXh0ZXJtPgorICAgIDwvdGVybT4K KworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICA8ZnVuY3Rpb24+cGdfc3RhdF9w bGFuc19yZXNldDwvZnVuY3Rpb24+IGRpc2NhcmRzIHN0YXRpc3RpY3MgYW5kIHBsYW4gdGV4dHMK KyAgICAgIGdhdGhlcmVkIHNvIGZhciBieSA8ZmlsZW5hbWU+cGdfc3RhdF9wbGFuczwvZmlsZW5h bWU+LgorICAgICAgQnkgZGVmYXVsdCwgdGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSBleGVjdXRl ZCBieSBzdXBlcnVzZXJzLgorICAgICAgQWNjZXNzIG1heSBiZSBncmFudGVkIHRvIG90aGVycyB1 c2luZyA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+ CisgICAgIDxmdW5jdGlvbj5wZ19zdGF0X3BsYW5zKHNob3dwbGFuIGJvb2xlYW4pIHJldHVybnMg c2V0b2YgcmVjb3JkPC9mdW5jdGlvbj4KKyAgICAgPGluZGV4dGVybT4KKyAgICAgIDxwcmltYXJ5 PnBnX3N0YXRfcGxhbnM8L3ByaW1hcnk+CisgICAgICA8c2Vjb25kYXJ5PmZ1bmN0aW9uPC9zZWNv bmRhcnk+CisgICAgIDwvaW5kZXh0ZXJtPgorICAgIDwvdGVybT4KKworICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBUaGUgPHN0cnVjdG5hbWU+cGdfc3RhdF9wbGFuczwvc3RydWN0 bmFtZT4gdmlldyBpcyBkZWZpbmVkIGluCisgICAgICB0ZXJtcyBvZiBhIGZ1bmN0aW9uIGFsc28g bmFtZWQgPGZ1bmN0aW9uPnBnX3N0YXRfcGxhbnM8L2Z1bmN0aW9uPi4KKyAgICAgIEl0IGlzIHBv c3NpYmxlIGZvciBjbGllbnRzIHRvIGNhbGwKKyAgICAgIHRoZSA8ZnVuY3Rpb24+cGdfc3RhdF9w bGFuczwvZnVuY3Rpb24+IGZ1bmN0aW9uIGRpcmVjdGx5LCBhbmQgYnkKKyAgICAgIHNwZWNpZnlp bmcgPGxpdGVyYWw+c2hvd3BsYW4gOj0gZmFsc2U8L2xpdGVyYWw+IGhhdmUgcGxhbiB0ZXh0cyBi ZQorICAgICAgb21pdHRlZCAodGhhdCBpcywgdGhlIDxsaXRlcmFsPk9VVDwvbGl0ZXJhbD4gYXJn dW1lbnQgdGhhdCBjb3JyZXNwb25kcworICAgICAgdG8gdGhlIHZpZXcncyA8c3RydWN0ZmllbGQ+ cGxhbjwvc3RydWN0ZmllbGQ+IGNvbHVtbiB3aWxsIHJldHVybiBudWxscykuICBUaGlzCisgICAg ICBmZWF0dXJlIGlzIGludGVuZGVkIHRvIHN1cHBvcnQgZXh0ZXJuYWwgdG9vbHMgdGhhdCBtaWdo dCB3aXNoIHRvIGF2b2lkCisgICAgICB0aGUgb3ZlcmhlYWQgb2YgcmVwZWF0ZWRseSByZXRyaWV2 aW5nIHBsYW4gdGV4dHMgb2YgaW5kZXRlcm1pbmF0ZQorICAgICAgbGVuZ3RoLiAgU3VjaCB0b29s cyBjYW4gaW5zdGVhZCBjYWNoZSB0aGUgZmlyc3QgcGxhbiB0ZXh0IG9ic2VydmVkCisgICAgICBm b3IgZWFjaCBlbnRyeSB0aGVtc2VsdmVzLCBzaW5jZSB0aGF0IGlzCisgICAgICBhbGwgPGZpbGVu YW1lPnBnX3N0YXRfcGxhbnM8L2ZpbGVuYW1lPiBpdHNlbGYgZG9lcywgYW5kIHRoZW4gcmV0cmll dmUKKyAgICAgIHBsYW4gdGV4dHMgb25seSBhcyBuZWVkZWQuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvc2Vj dDI+CisKKyA8c2VjdDIgaWQ9InBnc3RhdHBsYW5zLWNvbmZpZy1wYXJhbXMiPgorICA8dGl0bGU+ Q29uZmlndXJhdGlvbiBQYXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT4KKyAgICAgPHZhcm5hbWU+cGdfc3RhdF9wbGFucy5t YXg8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikKKyAgICAgPGluZGV4dGVybT4KKyAg ICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnBnX3N0YXRfcGxhbnMubWF4PC92YXJuYW1lPiBjb25maWd1 cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgPC9pbmRleHRlcm0+CisgICAgPC90ZXJt PgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIDx2YXJuYW1lPnBnX3N0YXRf cGxhbnMubWF4PC92YXJuYW1lPiBpcyB0aGUgbWF4aW11bSBudW1iZXIgb2YKKyAgICAgIHBsYW5z IHRyYWNrZWQgYnkgdGhlIG1vZHVsZSAoaS5lLiwgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJvd3MK KyAgICAgIGluIHRoZSA8c3RydWN0bmFtZT5wZ19zdGF0X3BsYW5zPC9zdHJ1Y3RuYW1lPiB2aWV3 KS4gIElmIG1vcmUgZGlzdGluY3QKKyAgICAgIHBsYW5zIHRoYW4gdGhhdCBhcmUgb2JzZXJ2ZWQs IGluZm9ybWF0aW9uIGFib3V0IHRoZSBsZWFzdC1leGVjdXRlZAorICAgICAgcGxhbnMgaXMgZGlz Y2FyZGVkLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA1MDAwLgorICAgICAgT25seSBzdXBlcnVzZXJz IGNhbiBjaGFuZ2UgdGhpcyBzZXR0aW5nLiBDaGFuZ2luZyB0aGUgc2V0dGluZyByZXF1aXJlcwor ICAgICAgYSByZWxvYWQgb2YgdGhlIHNlcnZlci4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT4K KyAgICAgPHZhcm5hbWU+cGdfc3RhdF9wbGFucy5tYXhfc2l6ZTwvdmFybmFtZT4gKDx0eXBlPmlu dGVnZXI8L3R5cGU+KQorICAgICA8aW5kZXh0ZXJtPgorICAgICAgPHByaW1hcnk+PHZhcm5hbWU+ cGdfc3RhdF9wbGFucy5tYXhfc2l6ZTwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8 L3ByaW1hcnk+CisgICAgIDwvaW5kZXh0ZXJtPgorICAgIDwvdGVybT4KKworICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICA8dmFybmFtZT5wZ19zdGF0X3BsYW5zLm1heF9zaXplPC92 YXJuYW1lPiBpcyB0aGUgbWF4aW11bSBsZW5ndGggb2YKKyAgICAgIGVhY2ggcGxhbiB0ZXh0IHRy YWNrZWQgYnkgdGhlIG1vZHVsZSBpbiBieXRlcy4gTG9uZ2VyIHBsYW4gdGV4dHMgd2lsbCBiZSB0 cnVuY2F0ZWQuCisgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAyMDQ4ICgya0IpLgorICAgICAg T25seSBzdXBlcnVzZXJzIGNhbiBjaGFuZ2UgdGhpcyBzZXR0aW5nLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5Pgor ICAgIDx0ZXJtPgorICAgICA8dmFybmFtZT5wZ19zdGF0X3BsYW5zLnRyYWNrPC92YXJuYW1lPiAo PHR5cGU+ZW51bTwvdHlwZT4pCisgICAgIDxpbmRleHRlcm0+CisgICAgICA8cHJpbWFyeT48dmFy bmFtZT5wZ19zdGF0X3BsYW5zLnRyYWNrPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRl cjwvcHJpbWFyeT4KKyAgICAgPC9pbmRleHRlcm0+CisgICAgPC90ZXJtPgorCisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIDx2YXJuYW1lPnBnX3N0YXRfcGxhbnMudHJhY2s8L3Zh cm5hbWU+IGNvbnRyb2xzIHdoaWNoIHBsYW5zCisgICAgICBhcmUgY291bnRlZCBieSB0aGUgbW9k dWxlLgorICAgICAgU3BlY2lmeSA8bGl0ZXJhbD50b3A8L2xpdGVyYWw+IHRvIHRyYWNrIHBsYW5z IGJ5IHRvcC1sZXZlbCBzdGF0ZW1lbnRzICh0aG9zZSBpc3N1ZWQKKyAgICAgIGRpcmVjdGx5IGJ5 IGNsaWVudHMpLCA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+IHRvIGFsc28gdHJhY2sgbmVzdGVkIHN0 YXRlbWVudHMKKyAgICAgIChzdWNoIGFzIHN0YXRlbWVudHMgaW52b2tlZCB3aXRoaW4gZnVuY3Rp b25zKSwgb3IgPGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD4gdG8KKyAgICAgIGRpc2FibGUgcGxhbiBz dGF0aXN0aWNzIGNvbGxlY3Rpb24uCisgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA8bGl0ZXJh bD50b3A8L2xpdGVyYWw+LgorICAgICAgT25seSBzdXBlcnVzZXJzIGNhbiBjaGFuZ2UgdGhpcyBz ZXR0aW5nLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5 PgorICA8L3ZhcmlhYmxlbGlzdD4KKworICA8cGFyYT4KKyAgIFRoZSBtb2R1bGUgcmVxdWlyZXMg YWRkaXRpb25hbCBzaGFyZWQgbWVtb3J5IHByb3BvcnRpb25hbCB0bworICAgPHZhcm5hbWU+cGdf c3RhdF9wbGFucy5tYXg8L3Zhcm5hbWU+IGZvciBzdGF0aXN0aWNzLCBhcyB3ZWxsIGFzCisgICA8 dmFybmFtZT5wZ19zdGF0X3BsYW5zLm1heDwvdmFybmFtZT4gbXVsdGlwbGllZCBieQorICAgPHZh cm5hbWU+cGdfc3RhdF9wbGFucy5tYXhfc2l6ZTwvdmFybmFtZT4gZm9yIHBsYW4gdGV4dHMuIE5v dGUgdGhhdCB0aGlzCisgICBtZW1vcnkgaXMgb25seSBjb25zdW1lZCB3aGVuIGVudHJpZXMgYXJl IGNyZWF0ZWQsIGFuZCBub3QgaWYKKyAgIDx2YXJuYW1lPnBnX3N0YXRfcGxhbnMudHJhY2s8L3Zh cm5hbWU+IGlzIHNldCB0byA8bGl0ZXJhbD5ub25lPC9saXRlcmFsPi4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgVGhlc2UgcGFyYW1ldGVycyBtdXN0IGJlIHNldCBpbiA8ZmlsZW5hbWU+cG9z dGdyZXNxbC5jb25mPC9maWxlbmFtZT4uCisgICBUeXBpY2FsIHVzYWdlIG1pZ2h0IGJlOgorCis8 cHJvZ3JhbWxpc3Rpbmc+CisjIHBvc3RncmVzcWwuY29uZgorc2hhcmVkX3ByZWxvYWRfbGlicmFy aWVzID0gJ3BnX3N0YXRfcGxhbnMnCisKK2NvbXB1dGVfcXVlcnlfaWQgPSBvbgorY29tcHV0ZV9w bGFuX2lkID0gb24KK3BnX3N0YXRfcGxhbnMubWF4ID0gMTAwMDAKK3BnX3N0YXRfcGxhbnMubWF4 X3NpemUgPSA0MDk2CitwZ19zdGF0X3BsYW5zLnRyYWNrID0gYWxsCis8L3Byb2dyYW1saXN0aW5n PgorICA8L3BhcmE+CisgPC9zZWN0Mj4KKworIDxzZWN0MiBpZD0icGdzdGF0cGxhbnMtc2FtcGxl LW91dHB1dCI+CisgIDx0aXRsZT5TYW1wbGUgT3V0cHV0PC90aXRsZT4KKworPHNjcmVlbj4KK2Jl bmNoPSMgU0VMRUNUIHBnX3N0YXRfcGxhbnNfcmVzZXQoKTsKKworJCBwZ2JlbmNoIC1pIGJlbmNo CiskIHBnYmVuY2ggLWMxMCAtdDMwMCBiZW5jaAorCitiZW5jaD0jIFx4CitiZW5jaD0jIFNFTEVD VCBwbGFuLCBjYWxscywgdG90YWxfZXhlY190aW1lCisgIEZST00gcGdfc3RhdF9wbGFucyBPUkRF UiBCWSB0b3RhbF9leGVjX3RpbWUgREVTQyBMSU1JVCA1OworLVsgUkVDT1JEIDEgXS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorcGxhbiAgICAgICAgICAgIHwgVXBkYXRlIG9uIHBnYmVuY2hfdGVsbGVycyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICB8ICAgLT4g IFNlcSBTY2FuIG9uIHBnYmVuY2hfdGVsbGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgfCAgICAgICAgIEZpbHRlcjogKHRpZCA9IDUpCitjYWxscyAg ICAgICAgICAgfCAzMDAwCit0b3RhbF9leGVjX3RpbWUgfCA2NDIuODg4MDkxOTk5OTk5MworLVsg UkVDT1JEIDIgXS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorcGxhbiAgICAgICAgICAgIHwgVXBkYXRlIG9uIHBnYmVu Y2hfYnJhbmNoZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICB8ICAgLT4gIFNlcSBTY2FuIG9uIHBnYmVuY2hfYnJhbmNoZXMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgfCAgICAgICAgIEZpbHRlcjog KGJpZCA9IDEpCitjYWxscyAgICAgICAgICAgfCAxODEzCit0b3RhbF9leGVjX3RpbWUgfCA0NzYu NjQxNTI3MDAwMDAwMDUKKy1bIFJFQ09SRCAzIF0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3BsYW4gICAgICAgICAg ICB8IFVwZGF0ZSBvbiBwZ2JlbmNoX2JyYW5jaGVzICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgfCAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHBn YmVuY2hfYnJhbmNoZXNfcGtleSBvbiBwZ2JlbmNoX2JyYW5jaGVzKworICAgICAgICAgICAgICAg IHwgICAgICAgICBJbmRleCBDb25kOiAoYmlkID0gMSkKK2NhbGxzICAgICAgICAgICB8IDExODcK K3RvdGFsX2V4ZWNfdGltZSB8IDMyNi4xMjU3NTQ5OTk5OTk5CistWyBSRUNPUkQgNCBdLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCitwbGFuICAgICAgICAgICAgfCBVcGRhdGUgb24gcGdiZW5jaF9hY2NvdW50cyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgIHwgICAt PiAgSW5kZXggU2NhbiB1c2luZyBwZ2JlbmNoX2FjY291bnRzX3BrZXkgb24gcGdiZW5jaF9hY2Nv dW50cysKKyAgICAgICAgICAgICAgICB8ICAgICAgICAgSW5kZXggQ29uZDogKGFpZCA9IDQ4Nzkz KQorY2FsbHMgICAgICAgICAgIHwgMzAwMAordG90YWxfZXhlY190aW1lIHwgMjEuNjY0NjkwMDAw MDAwMDkzCistWyBSRUNPUkQgNSBdLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitwbGFuICAgICAgICAgICAgfCBJbnNl cnQgb24gcGdiZW5jaF9oaXN0b3J5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgIHwgICAtPiAgUmVzdWx0CitjYWxscyAgICAgICAgICAgfCAz MDAwCit0b3RhbF9leGVjX3RpbWUgfCA0LjM2NTI1MDk5OTk5OTk1NworCitzZXNzaW9uIDE6CisK K2JlbmNoIyBTRUxFQ1QgcGdfc2xlZXAoMTAwKSwgQ09VTlQoKikgRlJPTSBwZ2JlbmNoX2FjY291 bnRzOworCitzZXNzaW9uIDI6CisKK2JlbmNoPSMgU0VMRUNUIHF1ZXJ5LCBwbGFuIEZST00gcGdf c3RhdF9hY3Rpdml0eQorICBKT0lOIHBnX3N0YXRfcGxhbnMgT04gKHVzZXN5c2lkID0gdXNlcmlk IEFORCBkYXRpZCA9IGRiaWQgQU5EIHF1ZXJ5X2lkID0gcXVlcnlpZCBBTkQgcGxhbl9pZCA9IHBs YW5pZCkKKyAgV0hFUkUgcXVlcnkgTElLRSAnU0VMRUNUIHBnX3NsZWVwJSc7CisgICAgICAgICAg ICAgICAgICAgICAgICAgcXVlcnkgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICBwbGFuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFTEVDVCBw Z19zbGVlcCgxMDApLCBDT1VOVCgqKSBGUk9NIHBnYmVuY2hfYWNjb3VudHM7IHwgQWdncmVnYXRl ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgLT4gIFNlcSBTY2FuIG9uIHBnYmVuY2hfYWNj b3VudHMKKygxIHJvdykKKworPC9zY3JlZW4+CisgPC9zZWN0Mj4KKworIDxzZWN0MiBpZD0icGdz dGF0cGxhbnMtYXV0aG9ycyI+CisgIDx0aXRsZT5BdXRob3JzPC90aXRsZT4KKworICA8cGFyYT4K KyAgIEx1a2FzIEZpdHRsIDxlbWFpbD5sdWthc0BmaXR0bC5jb208L2VtYWlsPi4KKyAgPC9wYXJh PgorIDwvc2VjdDI+CisKKzwvc2VjdDE+Ci0tIAoyLjQ3LjEKCg== --000000000000a01605062d839e08 Content-Type: application/octet-stream; name="v5-0003-Optionally-record-a-plan_id-in-PlannedStmt-to-ide.patch" Content-Disposition: attachment; filename="v5-0003-Optionally-record-a-plan_id-in-PlannedStmt-to-ide.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6u3whiw2 RnJvbSA2ZDNlOTE3YjlmZDM0OGRmYTMzODRiZTMyZWExMzEyYzRhMWMyNjQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBG cmksIDcgRmViIDIwMjUgMDE6MTg6MjggKzAwMDAKU3ViamVjdDogW1BBVENIIHY1IDMvNF0gT3B0 aW9uYWxseSByZWNvcmQgYSBwbGFuX2lkIGluIFBsYW5uZWRTdG10IHRvIGlkZW50aWZ5CiBwbGFu IHNoYXBlCgpXaGVuIGVuYWJsZWQgdmlhIHRoZSBuZXcgY29tcHV0ZV9wbGFuX2lkIEdVQyAoZGVm YXVsdCBvZmYpLCB0aGlzIHV0aWxpemVzCnRoZSBleGlzdGluZyB0cmVld2FsayBpbiBzZXRyZWZz LmMgYWZ0ZXIgcGxhbm5pbmcgdG8gY2FsY3VsYXRlIGEgaGFzaAoodGhlICJwbGFuX2lkIiwgb3Ig cGxhbiBpZGVudGlmaWVyKSB0aGF0IGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5CndoaWNoIHBsYW4g d2FzIGNob3Nlbi4KClRoZSBwbGFuX2lkIGdlbmVyYWxseSBpbnRlbmRzIHRvIGJlIHRoZSBzYW1l IGlmIGEgZ2l2ZW4gRVhQTEFJTiAod2l0aG91dApBTkFMWVpFKSBvdXRwdXQgaXMgdGhlIHNhbWUu IFRoZSBwbGFuX2lkIGluY2x1ZGVzIGJvdGggdGhlIHRvcC1sZXZlbCBwbGFuCmFzIHdlbGwgYXMg YWxsIHN1YnBsYW5zLiBFeGVjdXRpb24gc3RhdGlzdGljcyBhcmUgZXhjbHVkZWQuCgpJZiBlbmFi bGVkLCB0aGUgcGxhbl9pZCBpcyBzaG93biBmb3IgY3VycmVudGx5IHJ1bm5pbmcgcXVlcmllcyBp bgpwZ19zdGF0X2FjdGl2aXR5LCBhcyB3ZWxsIGFzIHJlY29yZGVkIGluIEVYUExBSU4gYW5kIGF1 dG9fZXhwbGFpbiBvdXRwdXQuCgpPdGhlciBpbiBjb3JlIHVzZXJzIG9yIGV4dGVuc2lvbnMgY2Fu IHVzZSB0aGlzIGZhY2lsaXR5IHRvIHNob3cgb3IKYWNjdW11bGF0ZSBzdGF0aXN0aWNzIGFib3V0 IHRoZSBwbGFucyB1c2VkIGJ5IHF1ZXJpZXMsIHRvIGhlbHAgaWRlbnRpZnkKcGxhbiByZWdyZXNz aW9ucywgb3IgZHJpdmUgcGxhbiBtYW5hZ2VtZW50IGRlY2lzaW9ucy4KCk5vdGUgdGhhdCB0aGlz IGNvbW1pdCBpbnRlbnRpb25hbGx5IGRvZXMgbm90IGluY2x1ZGUgYSBmYWNpbGl0eSB0byBtYXAK YSBnaXZlbiBwbGFuX2lkIHRvIHRoZSBFWFBMQUlOIHRleHQgb3V0cHV0IC0gaXQgaXMgYSBhc3N1 bWVkIHRoYXQgdXNlcnMKY2FuIHV0aWxpemUgdGhlIGF1dG9fZXhwbGFpbiBleHRlbnNpb24gdG8g ZXN0YWJsaXNoIHRoaXMgbWFwcGluZyBhcwpuZWVkZWQsIG9yIGV4dGVuc2lvbnMgY2FuIHJlY29y ZCB0aGlzIHZpYSB0aGUgZXhpc3RpbmcgcGxhbm5lciBob29rLgotLS0KIGRvYy9zcmMvc2dtbC9j b25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDM0ICsrKysrKysrKwogZG9jL3NyYy9z Z21sL21vbml0b3Jpbmcuc2dtbCAgICAgICAgICAgICAgICAgIHwgMTYgKysrKysKIHNyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICAxICsKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2V4cGxhaW4uYyAgICAgICAgICAgICAgICB8IDE2ICsrKysrCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAxMCArLS0KIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgICAgICAgICB8ICAxICsKIHNyYy9iYWNrZW5kL25v ZGVzL2dlbl9ub2RlX3N1cHBvcnQucGwgICAgICAgICB8IDM2ICsrKysrKysrKy0KIHNyYy9iYWNr ZW5kL25vZGVzL2p1bWJsZWZ1bmNzLmMgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysr KysrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAxOSAr KysrKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jICAgICAgICAgIHwgIDkg KysrCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL2xhdW5jaF9iYWNrZW5kLmMgICAgICAgfCAgMyAr CiBzcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgICAgICAgICAgICAgICAgICAgfCAgMSArCiBz cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1cy5jICAgfCA3MCArKysrKysr KysrKysrKysrKystCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAg ICAgfCAgNyArLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgICAg IHwgMjggKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNh bXBsZSB8ICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAg ICB8ICA2ICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9qdW1ibGUuaCAgICAgICAgICAgICAgICAgICAg fCAyOCArKysrKysrKwogc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggICAgICAgICAgICAg ICAgIHwgIDMgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggICAgICAgICAgICAgICAg IHwgNTEgKysrKysrKy0tLS0tLS0KIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAg ICAgICAgICAgICB8ICA3ICstCiBzcmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5oICAg ICAgICAgICAgfCAgNSArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluLm91dCAg ICAgICAgIHwgMTEgKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAg ICAgICAgfCAgOSArLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2V4cGxhaW4uc3FsICAgICAgICAg ICAgICB8ICA0ICsrCiAyNSBmaWxlcyBjaGFuZ2VkLCAzOTYgaW5zZXJ0aW9ucygrKSwgNDUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDM4MjQ0NDA5ZTMuLjRjMjZmOWViMTMgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwKQEAgLTg0MDYsNiArODQwNiw0MCBAQCBDT1BZIHBvc3RncmVzX2xvZyBGUk9NICcvZnVsbC9w YXRoL3RvL2xvZ2ZpbGUuY3N2JyBXSVRIIGNzdjsKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwv dmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1jb21wdXRlLXBsYW4t aWQiIHhyZWZsYWJlbD0iY29tcHV0ZV9wbGFuX2lkIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPmNv bXB1dGVfcGxhbl9pZDwvdmFybmFtZT4gKDx0eXBlPmVudW08L3R5cGU+KQorICAgICAgPGluZGV4 dGVybT4KKyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5jb21wdXRlX3BsYW5faWQ8L3Zhcm5hbWU+ IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+Cisg ICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEVu YWJsZXMgaW4tY29yZSBjb21wdXRhdGlvbiBvZiBhIHBsYW4gaWRlbnRpZmllci4KKyAgICAgICAg UGxhbiBpZGVudGlmaWVycyBjYW4gYmUgZGlzcGxheWVkIGluIHRoZSA8bGluaworICAgICAgICBs aW5rZW5kPSJtb25pdG9yaW5nLXBnLXN0YXQtYWN0aXZpdHktdmlldyI+PHN0cnVjdG5hbWU+cGdf c3RhdF9hY3Rpdml0eTwvc3RydWN0bmFtZT48L2xpbms+CisgICAgICAgIHZpZXcgb3IgdXNpbmcg PGNvbW1hbmQ+RVhQTEFJTjwvY29tbWFuZD4uCisgICAgICAgIE5vdGUgdGhhdCBhbiBleHRlcm5h bCBtb2R1bGUgY2FuIGFsdGVybmF0aXZlbHkgYmUgdXNlZCBpZiB0aGUKKyAgICAgICAgaW4tY29y ZSBwbGFuIGlkZW50aWZpZXIgY29tcHV0YXRpb24gbWV0aG9kIGlzIG5vdCBhY2NlcHRhYmxlLgor ICAgICAgICBJbiB0aGlzIGNhc2UsIGluLWNvcmUgY29tcHV0YXRpb24gbXVzdCBiZSBhbHdheXMg ZGlzYWJsZWQuCisgICAgICAgIFZhbGlkIHZhbHVlcyBhcmUgPGxpdGVyYWw+b2ZmPC9saXRlcmFs PiAoYWx3YXlzIGRpc2FibGVkKSwKKyAgICAgICAgPGxpdGVyYWw+b248L2xpdGVyYWw+IChhbHdh eXMgZW5hYmxlZCksIDxsaXRlcmFsPmF1dG88L2xpdGVyYWw+LAorICAgICAgICB3aGljaCBsZXRz IG1vZHVsZXMgdGhhdCB1dGlsaXplIHBsYW4gaWRlbnRpZmllcnMgZW5hYmxlCisgICAgICAgIGl0 IGF1dG9tYXRpY2FsbHksIGFuZCA8bGl0ZXJhbD5yZWdyZXNzPC9saXRlcmFsPiB3aGljaAorICAg ICAgICBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzIDxsaXRlcmFsPm9uPC9saXRlcmFsPiwgZXhjZXB0 IHRoYXQgdGhlCisgICAgICAgIHF1ZXJ5IGlkZW50aWZpZXIgaXMgbm90IHNob3duIGluIHRoZSA8 bGl0ZXJhbD5FWFBMQUlOPC9saXRlcmFsPiBvdXRwdXQKKyAgICAgICAgaW4gb3JkZXIgdG8gZmFj aWxpdGF0ZSBhdXRvbWF0ZWQgcmVncmVzc2lvbiB0ZXN0aW5nLgorICAgICAgICBUaGUgZGVmYXVs dCBpcyA8bGl0ZXJhbD5hdXRvPC9saXRlcmFsPi4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPG5v dGU+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVG8gZW5zdXJlIHRoYXQgb25seSBvbmUgcGxh biBpZGVudGlmaWVyIGlzIGNhbGN1bGF0ZWQgYW5kCisgICAgICAgICBkaXNwbGF5ZWQsIGV4dGVu c2lvbnMgdGhhdCBjYWxjdWxhdGUgcGxhbiBpZGVudGlmaWVycyBzaG91bGQKKyAgICAgICAgIHRo cm93IGFuIGVycm9yIGlmIGEgcGxhbiBpZGVudGlmaWVyIGhhcyBhbHJlYWR5IGJlZW4gY29tcHV0 ZWQuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L25vdGU+CisgICAgICA8L2xpc3RpdGVtPgor ICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtbG9nLXN0 YXRlbWVudC1zdGF0cyI+CiAgICAgICA8dGVybT48dmFybmFtZT5sb2dfc3RhdGVtZW50X3N0YXRz PC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCiAgICAgICA8aW5kZXh0ZXJtPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9tb25p dG9yaW5nLnNnbWwKaW5kZXggZWRjMjQ3MGJjZi4uNjRlNjJhMDkwNSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5z Z21sCkBAIC05NzIsNiArOTcyLDIyIEBAIHBvc3RncmVzICAgMjcwOTMgIDAuMCAgMC4wICAzMDA5 NiAgMjc1MiA/ICAgICAgICBTcyAgIDExOjM0ICAgMDowMCBwb3N0Z3Jlczogc2VyCiAgICAgIDwv cGFyYT48L2VudHJ5PgogICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+cGxhbl9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElkZW50aWZpZXIgb2Yg dGhpcyBiYWNrZW5kJ3MgbW9zdCByZWNlbnQgcXVlcnkgcGxhbi4gSWYKKyAgICAgICA8c3RydWN0 ZmllbGQ+c3RhdGU8L3N0cnVjdGZpZWxkPiBpcyA8bGl0ZXJhbD5hY3RpdmU8L2xpdGVyYWw+IHRo aXMKKyAgICAgICBmaWVsZCBzaG93cyB0aGUgaWRlbnRpZmllciBvZiB0aGUgY3VycmVudGx5IGV4 ZWN1dGluZyBxdWVyeSBwbGFuLiBJbgorICAgICAgIGFsbCBvdGhlciBzdGF0ZXMsIGl0IHNob3dz IHRoZSBpZGVudGlmaWVyIG9mIGxhc3QgcXVlcnkgcGxhbiB0aGF0CisgICAgICAgd2FzIGV4ZWN1 dGVkLiAgUGxhbiBpZGVudGlmaWVycyBhcmUgbm90IGNvbXB1dGVkIGJ5IGRlZmF1bHQgc28gdGhp cworICAgICAgIGZpZWxkIHdpbGwgYmUgbnVsbCB1bmxlc3MgPHhyZWYgbGlua2VuZD0iZ3VjLWNv bXB1dGUtcGxhbi1pZCIvPgorICAgICAgIHBhcmFtZXRlciBpcyBlbmFibGVkIG9yIGEgdGhpcmQt cGFydHkgbW9kdWxlIHRoYXQgY29tcHV0ZXMgcGxhbgorICAgICAgIGlkZW50aWZpZXJzIGlzIGNv bmZpZ3VyZWQuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJv dz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnF1ZXJ5PC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+dGV4dDwvdHlwZT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRl eCBjZGRjM2VhOWI1Li5kM2Q1NTc4ZDJjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Mu c3FsCkBAIC04ODksNiArODg5LDcgQEAgQ1JFQVRFIFZJRVcgcGdfc3RhdF9hY3Rpdml0eSBBUwog ICAgICAgICAgICAgUy5iYWNrZW5kX3hpZCwKICAgICAgICAgICAgIHMuYmFja2VuZF94bWluLAog ICAgICAgICAgICAgUy5xdWVyeV9pZCwKKyAgICAgICAgICAgIFMucGxhbl9pZCwKICAgICAgICAg ICAgIFMucXVlcnksCiAgICAgICAgICAgICBTLmJhY2tlbmRfdHlwZQogICAgIEZST00gcGdfc3Rh dF9nZXRfYWN0aXZpdHkoTlVMTCkgQVMgUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IGMyNGU2 NmY4MmUuLjMxYTE3NjFmNTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxh aW4uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTk2Niw2ICs5NjYs MjIgQEAgRXhwbGFpblByaW50UGxhbihFeHBsYWluU3RhdGUgKmVzLCBRdWVyeURlc2MgKnF1ZXJ5 RGVzYykKIAkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiUXVlcnkgSWRlbnRpZmllciIsIE5VTEws IChpbnQ2NCkKIAkJCQkJCQkgICBxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5xdWVyeUlkLCBlcyk7 CiAJfQorCisJLyoKKwkgKiBDT01QVVRFX1BMQU5fSURfUkVHUkVTUyBtZWFucyBDT01QVVRFX1BM QU5fSURfWUVTLCBidXQgd2UgZG9uJ3Qgc2hvdworCSAqIHRoZSBxdWVyeWlkIGluIGFueSBvZiB0 aGUgRVhQTEFJTiBwbGFucyB0byBrZWVwIHN0YWJsZSB0aGUgcmVzdWx0cworCSAqIGdlbmVyYXRl ZCBieSByZWdyZXNzaW9uIHRlc3Qgc3VpdGVzLgorCSAqLworCWlmIChlcy0+dmVyYm9zZSAmJiBx dWVyeURlc2MtPnBsYW5uZWRzdG10LT5wbGFuSWQgIT0gVUlOVDY0Q09OU1QoMCkgJiYKKwkJY29t cHV0ZV9wbGFuX2lkICE9IENPTVBVVEVfUExBTl9JRF9SRUdSRVNTKQorCXsKKwkJLyoKKwkJICog T3V0cHV0IHRoZSBxdWVyeWlkIGFzIGFuIGludDY0IHJhdGhlciB0aGFuIGEgdWludDY0IHNvIHdl IG1hdGNoCisJCSAqIHdoYXQgd291bGQgYmUgc2VlbiBpbiB0aGUgQklHSU5UIHBnX3N0YXRfYWN0 aXZpdHkucGxhbl9pZCBjb2x1bW4uCisJCSAqLworCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJQ bGFuIElkZW50aWZpZXIiLCBOVUxMLCAoaW50NjQpCisJCQkJCQkJICAgcXVlcnlEZXNjLT5wbGFu bmVkc3RtdC0+cGxhbklkLCBlcyk7CisJfQogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMK aW5kZXggZmE2MDAyZDVmOS4uOTIwYzYzZjRjZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBA IC0xMjEsMTMgKzEyMSwxNSBAQCBFeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBp bnQgZWZsYWdzKQogewogCS8qCiAJICogSW4gc29tZSBjYXNlcyAoZS5nLiBhbiBFWEVDVVRFIHN0 YXRlbWVudCBvciBhbiBleGVjdXRlIG1lc3NhZ2Ugd2l0aCB0aGUKLQkgKiBleHRlbmRlZCBxdWVy eSBwcm90b2NvbCkgdGhlIHF1ZXJ5X2lkIHdvbid0IGJlIHJlcG9ydGVkLCBzbyBkbyBpdCBub3cu CisJICogZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wpIHRoZSBxdWVyeV9pZCBhbmQgcGxhbl9pZCB3 b24ndCBiZSByZXBvcnRlZCwgc28KKwkgKiBkbyBpdCBub3cuCiAJICoKLQkgKiBOb3RlIHRoYXQg aXQncyBoYXJtbGVzcyB0byByZXBvcnQgdGhlIHF1ZXJ5X2lkIG11bHRpcGxlIHRpbWVzLCBhcyB0 aGUKLQkgKiBjYWxsIHdpbGwgYmUgaWdub3JlZCBpZiB0aGUgdG9wIGxldmVsIHF1ZXJ5X2lkIGhh cyBhbHJlYWR5IGJlZW4KLQkgKiByZXBvcnRlZC4KKwkgKiBOb3RlIHRoYXQgaXQncyBoYXJtbGVz cyB0byByZXBvcnQgdGhlIGlkZW50aWZpZXJzIG11bHRpcGxlIHRpbWVzLCBhcworCSAqIHRoZSBj YWxsIHdpbGwgYmUgaWdub3JlZCBpZiB0aGUgdG9wIGxldmVsIHF1ZXJ5X2lkIC8gcGxhbl9pZCBo YXMKKwkgKiBhbHJlYWR5IGJlZW4gcmVwb3J0ZWQuCiAJICovCiAJcGdzdGF0X3JlcG9ydF9xdWVy eV9pZChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5xdWVyeUlkLCBmYWxzZSk7CisJcGdzdGF0X3Jl cG9ydF9wbGFuX2lkKHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnBsYW5JZCwgcXVlcnlEZXNjLT5w bGFubmVkc3RtdC0+cXVlcnlJZCwgZmFsc2UpOwogCiAJaWYgKEV4ZWN1dG9yU3RhcnRfaG9vaykK IAkJKCpFeGVjdXRvclN0YXJ0X2hvb2spIChxdWVyeURlc2MsIGVmbGFncyk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNQYXJhbGxlbC5jCmluZGV4IDljMzEzZDgxMzEuLmRhMjI3OTU3OWEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCkBAIC0xNzQsNiArMTc0LDcgQEAgRXhlY1NlcmlhbGl6 ZVBsYW4oUGxhbiAqcGxhbiwgRVN0YXRlICplc3RhdGUpCiAJcHN0bXQgPSBtYWtlTm9kZShQbGFu bmVkU3RtdCk7CiAJcHN0bXQtPmNvbW1hbmRUeXBlID0gQ01EX1NFTEVDVDsKIAlwc3RtdC0+cXVl cnlJZCA9IHBnc3RhdF9nZXRfbXlfcXVlcnlfaWQoKTsKKwlwc3RtdC0+cGxhbklkID0gcGdzdGF0 X2dldF9teV9wbGFuX2lkKCk7CiAJcHN0bXQtPmhhc1JldHVybmluZyA9IGZhbHNlOwogCXBzdG10 LT5oYXNNb2RpZnlpbmdDVEUgPSBmYWxzZTsKIAlwc3RtdC0+Y2FuU2V0VGFnID0gdHJ1ZTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL2dlbl9ub2RlX3N1cHBvcnQucGwgYi9zcmMvYmFj a2VuZC9ub2Rlcy9nZW5fbm9kZV9zdXBwb3J0LnBsCmluZGV4IDI2ZWM3ZTBkNTkuLjJkNzliZGM0 YjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL2dlbl9ub2RlX3N1cHBvcnQucGwKKysr IGIvc3JjL2JhY2tlbmQvbm9kZXMvZ2VuX25vZGVfc3VwcG9ydC5wbApAQCAtMTI4MSwxMyArMTI4 MSwxOCBAQCBfanVtYmxlJHtufShKdW1ibGVTdGF0ZSAqanN0YXRlLCBOb2RlICpub2RlKQogCXsK IAkJbXkgJHQgPSAkbm9kZV90eXBlX2luZm97JG59LT57ZmllbGRfdHlwZXN9eyRmfTsKIAkJbXkg QGEgPSBAeyAkbm9kZV90eXBlX2luZm97JG59LT57ZmllbGRfYXR0cnN9eyRmfSB9OworCQlteSAk YXJyYXlfc2l6ZV9maWVsZDsKIAkJbXkgJHF1ZXJ5X2p1bWJsZV9pZ25vcmUgPSAkc3RydWN0X25v X3F1ZXJ5X2p1bWJsZTsKIAkJbXkgJHF1ZXJ5X2p1bWJsZV9sb2NhdGlvbiA9IDA7CiAKIAkJIyBl eHRyYWN0IHBlci1maWVsZCBhdHRyaWJ1dGVzCiAJCWZvcmVhY2ggbXkgJGEgKEBhKQogCQl7Ci0J CQlpZiAoJGEgZXEgJ3F1ZXJ5X2p1bWJsZV9pZ25vcmUnKQorCQkJaWYgKCRhID1+IC9eYXJyYXlf c2l6ZVwoKFtcdy5dKylcKSQvKQorCQkJeworCQkJCSRhcnJheV9zaXplX2ZpZWxkID0gJDE7CisJ CQl9CisJCQllbHNpZiAoJGEgZXEgJ3F1ZXJ5X2p1bWJsZV9pZ25vcmUnKQogCQkJewogCQkJCSRx dWVyeV9qdW1ibGVfaWdub3JlID0gMTsKIAkJCX0KQEAgLTEyOTcsOCArMTMwMiwxNSBAQCBfanVt YmxlJHtufShKdW1ibGVTdGF0ZSAqanN0YXRlLCBOb2RlICpub2RlKQogCQkJfQogCQl9CiAKKwkJ bmV4dCBpZiAkcXVlcnlfanVtYmxlX2lnbm9yZTsKKworCQlpZiAoJHQgZXEgJ0JpdG1hcHNldCon KQorCQl7CisJCQlwcmludCAkamZmICJcdEpVTUJMRV9CSVRNQVBTRVQoJGYpO1xuIgorCQkJICB1 bmxlc3MgJHF1ZXJ5X2p1bWJsZV9pZ25vcmU7CisJCX0KIAkJIyBub2RlIHR5cGUKLQkJaWYgKCgk dCA9fiAvXihcdyspXCokLyBvciAkdCA9fiAvXnN0cnVjdFxzKyhcdyspXCokLykKKwkJZWxzaWYg KCgkdCA9fiAvXihcdyspXCokLyBvciAkdCA9fiAvXnN0cnVjdFxzKyhcdyspXCokLykKIAkJCWFu ZCBlbGVtICQxLCBAbm9kZV90eXBlcykKIAkJewogCQkJcHJpbnQgJGpmZiAiXHRKVU1CTEVfTk9E RSgkZik7XG4iCkBAIC0xMzE4LDYgKzEzMzAsMjYgQEAgX2p1bWJsZSR7bn0oSnVtYmxlU3RhdGUg KmpzdGF0ZSwgTm9kZSAqbm9kZSkKIAkJCXByaW50ICRqZmYgIlx0SlVNQkxFX1NUUklORygkZik7 XG4iCiAJCQkgIHVubGVzcyAkcXVlcnlfanVtYmxlX2lnbm9yZTsKIAkJfQorCQllbHNpZiAoJHQg PX4gL14oXHcrKShcKnxcW1x3K1xdKSQvIGFuZCBlbGVtICQxLCBAc2NhbGFyX3R5cGVzKQorCQl7 CisJCQlpZiAoIWRlZmluZWQgJGFycmF5X3NpemVfZmllbGQpCisJCQl7CisJCQkJZGllICJubyBh cnJheSBzaXplIGRlZmluZWQgZm9yICRuLiRmIG9mIHR5cGUgJHRcbiI7CisJCQl9CisJCQlpZiAo JG5vZGVfdHlwZV9pbmZveyRufS0+e2ZpZWxkX3R5cGVzfXskYXJyYXlfc2l6ZV9maWVsZH0gZXEK KwkJCQknTGlzdConKQorCQkJeworCQkJCXByaW50ICRqZmYKKwkJCQkgICJcdEpVTUJMRV9BUlJB WSgkZiwgbGlzdF9sZW5ndGgoZXhwci0+JGFycmF5X3NpemVfZmllbGQpKTtcbiIKKwkJCQkgIHVu bGVzcyAkcXVlcnlfanVtYmxlX2lnbm9yZTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlwcmlu dCAkamZmCisJCQkJICAiXHRKVU1CTEVfQVJSQVkoJGYsIGV4cHItPiRhcnJheV9zaXplX2ZpZWxk KTtcbiIKKwkJCQkgIHVubGVzcyAkcXVlcnlfanVtYmxlX2lnbm9yZTsKKwkJCX0KKwkJfQogCQll bHNlCiAJCXsKIAkJCXByaW50ICRqZmYgIlx0SlVNQkxFX0ZJRUxEKCRmKTtcbiIKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL25vZGVzL2p1bWJsZWZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9q dW1ibGVmdW5jcy5jCmluZGV4IGZjZjM0YWU0NzkuLmRmMWFjYmNiOTYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL25vZGVzL2p1bWJsZWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvanVt YmxlZnVuY3MuYwpAQCAtMzksMTIgKzM5LDE0IEBACiAjaW5jbHVkZSAiY29tbW9uL2hhc2hmbi5o IgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL2p1bWJsZS5oIgorI2lu Y2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIKICNpbmNsdWRlICJwYXJzZXIvc2NhbnN1cC5oIgog CiAjZGVmaW5lIEpVTUJMRV9TSVpFCQkJCTEwMjQJLyogcXVlcnkgc2VyaWFsaXphdGlvbiBidWZm ZXIgc2l6ZSAqLwogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwogaW50CQkJY29tcHV0ZV9xdWVyeV9p ZCA9IENPTVBVVEVfUVVFUllfSURfQVVUTzsKK2ludAkJCWNvbXB1dGVfcGxhbl9pZCA9IENPTVBV VEVfUExBTl9JRF9BVVRPOwogCiAvKgogICogVHJ1ZSB3aGVuIGNvbXB1dGVfcXVlcnlfaWQgaXMg T04gb3IgQVVUTywgYW5kIGEgbW9kdWxlIHJlcXVlc3RzIHRoZW0uCkBAIC01NSw2ICs1NywxNSBA QCBpbnQJCQljb21wdXRlX3F1ZXJ5X2lkID0gQ09NUFVURV9RVUVSWV9JRF9BVVRPOwogICovCiBi b29sCQlxdWVyeV9pZF9lbmFibGVkID0gZmFsc2U7CiAKKy8qCisgKiBUcnVlIHdoZW4gY29tcHV0 ZV9wbGFuX2lkIGlzIE9OIG9yIEFVVE8sIGFuZCBhIG1vZHVsZSByZXF1ZXN0cyB0aGVtLgorICoK KyAqIE5vdGUgdGhhdCBJc1BsYW5JZEVuYWJsZWQoKSBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9m IGNoZWNraW5nCisgKiBwbGFuX2lkX2VuYWJsZWQgb3IgcGxhbl9xdWVyeV9pZCBkaXJlY3RseSB3 aGVuIHdlIHdhbnQgdG8ga25vdworICogd2hldGhlciBwbGFuIGlkZW50aWZpZXJzIGFyZSBjb21w dXRlZCBpbiB0aGUgY29yZSBvciBub3QuCisgKi8KK2Jvb2wJCXBsYW5faWRfZW5hYmxlZCA9IGZh bHNlOworCiBzdGF0aWMgdm9pZCBSZWNvcmRDb25zdExvY2F0aW9uKEp1bWJsZVN0YXRlICpqc3Rh dGUsIGludCBsb2NhdGlvbik7CiBzdGF0aWMgdm9pZCBfanVtYmxlQV9Db25zdChKdW1ibGVTdGF0 ZSAqanN0YXRlLCBOb2RlICpub2RlKTsKIHN0YXRpYyB2b2lkIF9qdW1ibGVMaXN0KEp1bWJsZVN0 YXRlICpqc3RhdGUsIE5vZGUgKm5vZGUpOwpAQCAtMTc1LDYgKzE4NiwxOSBAQCBFbmFibGVRdWVy eUlkKHZvaWQpCiAJCXF1ZXJ5X2lkX2VuYWJsZWQgPSB0cnVlOwogfQogCisvKgorICogRW5hYmxl cyBwbGFuIGlkZW50aWZpZXIgY29tcHV0YXRpb24uCisgKgorICogVGhpcmQtcGFydHkgcGx1Z2lu cyBjYW4gdXNlIHRoaXMgZnVuY3Rpb24gdG8gaW5mb3JtIGNvcmUgdGhhdCB0aGV5IHJlcXVpcmUK KyAqIGEgcXVlcnkgaWRlbnRpZmllciB0byBiZSBjb21wdXRlZC4KKyAqLwordm9pZAorRW5hYmxl UGxhbklkKHZvaWQpCit7CisJaWYgKGNvbXB1dGVfcGxhbl9pZCAhPSBDT01QVVRFX1BMQU5fSURf T0ZGKQorCQlwbGFuX2lkX2VuYWJsZWQgPSB0cnVlOworfQorCiAvKgogICogQXBwZW5kSnVtYmxl OiBBcHBlbmQgYSB2YWx1ZSB0aGF0IGlzIHN1YnN0YW50aXZlIGluIGEgZ2l2ZW4gcXVlcnkgdG8K ICAqIHRoZSBjdXJyZW50IGp1bWJsZS4KQEAgLTI0NCw2ICsyNjgsMTMgQEAgUmVjb3JkQ29uc3RM b2NhdGlvbihKdW1ibGVTdGF0ZSAqanN0YXRlLCBpbnQgbG9jYXRpb24pCiAJUmVjb3JkQ29uc3RM b2NhdGlvbihqc3RhdGUsIGV4cHItPmxvY2F0aW9uKQogI2RlZmluZSBKVU1CTEVfRklFTEQoaXRl bSkgXAogCUFwcGVuZEp1bWJsZShqc3RhdGUsIChjb25zdCB1bnNpZ25lZCBjaGFyICopICYoZXhw ci0+aXRlbSksIHNpemVvZihleHByLT5pdGVtKSkKKyNkZWZpbmUgSlVNQkxFX0JJVE1BUFNFVChp dGVtKSBcCitkbyB7IFwKKwlpZiAoZXhwci0+aXRlbSkgXAorCQlBcHBlbmRKdW1ibGUoanN0YXRl LCAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBleHByLT5pdGVtLT53b3Jkcywgc2l6ZW9mKGJpdG1h cHdvcmQpICogZXhwci0+aXRlbS0+bndvcmRzKTsgXAorfSB3aGlsZSgwKQorI2RlZmluZSBKVU1C TEVfQVJSQVkoaXRlbSwgbGVuKSBcCisJQXBwZW5kSnVtYmxlKGpzdGF0ZSwgKGNvbnN0IHVuc2ln bmVkIGNoYXIgKikgZXhwci0+aXRlbSwgc2l6ZW9mKCooZXhwci0+aXRlbSkpICogbGVuKQogI2Rl ZmluZSBKVU1CTEVfRklFTERfU0lOR0xFKGl0ZW0pIFwKIAlBcHBlbmRKdW1ibGUoanN0YXRlLCAo Y29uc3QgdW5zaWduZWQgY2hhciAqKSAmKGl0ZW0pLCBzaXplb2YoaXRlbSkpCiAjZGVmaW5lIEpV TUJMRV9TVFJJTkcoc3RyKSBcCkBAIC0zOTIsMyArNDIzLDM3IEBAIF9qdW1ibGVWYXJpYWJsZVNl dFN0bXQoSnVtYmxlU3RhdGUgKmpzdGF0ZSwgTm9kZSAqbm9kZSkKIAlKVU1CTEVfRklFTEQoaXNf bG9jYWwpOwogCUpVTUJMRV9MT0NBVElPTihsb2NhdGlvbik7CiB9CisKKy8qCisgKiBKdW1ibGUg dGhlIGVudHJpZXMgaW4gdGhlIHJhbmdsZSB0YWJsZSB0byBtYXAgUlQgaW5kZXhlcyB0byByZWxh dGlvbnMKKyAqCisgKiBUaGlzIGVuc3VyZXMganVtYmxlZCBSVCBpbmRleGVzIChlLmcuIGluIGEg U2NhbiBvciBNb2RpZnkgbm9kZSksIGFyZQorICogZGlzdGluZ3Vpc2hlZCBieSB0aGUgdGFyZ2V0 IG9mIHRoZSBSVCBlbnRyeSwgZXZlbiBpZiB0aGUgaW5kZXggaXMgdGhlIHNhbWUuCisgKi8KK3Zv aWQKK0p1bWJsZVJhbmdlVGFibGUoSnVtYmxlU3RhdGUgKmpzdGF0ZSwgTGlzdCAqcnRhYmxlKQor eworCUxpc3RDZWxsICpsYzsKKworCWZvcmVhY2gobGMsIHJ0YWJsZSkKKwl7CisJCVJhbmdlVGJs RW50cnkgKmV4cHIgPSBsZmlyc3Rfbm9kZShSYW5nZVRibEVudHJ5LCBsYyk7CisKKwkJc3dpdGNo IChleHByLT5ydGVraW5kKQorCQl7CisJCQljYXNlIFJURV9SRUxBVElPTjoKKwkJCQlKVU1CTEVf RklFTEQocmVsaWQpOworCQkJCWJyZWFrOworCQkJY2FzZSBSVEVfQ1RFOgorCQkJCUpVTUJMRV9T VFJJTkcoY3RlbmFtZSk7CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCisJCQkJLyoKKwkJCQkq IElnbm9yZSBvdGhlciB0YXJnZXRzLCB0aGUganVtYmxlIGluY2x1ZGVzIHNvbWV0aGluZyBpZGVu dGlmeWluZworCQkJCSogYWJvdXQgdGhlbSBhbHJlYWR5CisJCQkJKi8KKwkJCQlicmVhazsKKwkJ fQorCX0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxh bi9wbGFubmVyLmMKaW5kZXggZmZkNzUxN2VhOS4uYTZmZjk1YjQzYyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3BsYW5uZXIuYwpAQCAtMzcsNiArMzcsNyBAQAogI2lmZGVmIE9QVElNSVpFUl9E RUJVRwogI2luY2x1ZGUgIm5vZGVzL3ByaW50LmgiCiAjZW5kaWYKKyNpbmNsdWRlICJub2Rlcy9q dW1ibGUuaCIKICNpbmNsdWRlICJub2Rlcy9zdXBwb3J0bm9kZXMuaCIKICNpbmNsdWRlICJvcHRp bWl6ZXIvYXBwZW5kaW5mby5oIgogI2luY2x1ZGUgIm9wdGltaXplci9jbGF1c2VzLmgiCkBAIC01 MzIsNiArNTMzLDE2IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFy ICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAogCUFzc2VydChnbG9iLT5maW5hbHJv d21hcmtzID09IE5JTCk7CiAJQXNzZXJ0KGdsb2ItPnJlc3VsdFJlbGF0aW9ucyA9PSBOSUwpOwog CUFzc2VydChnbG9iLT5hcHBlbmRSZWxhdGlvbnMgPT0gTklMKTsKKworCS8qCisJICogSW5pdGlh bGl6ZSBwbGFuIGlkZW50aWZpZXIganVtYmxlIGlmIG5lZWRlZAorCSAqCisJICogTm90ZSB0aGUg YWN0dWFsIGp1bWJsaW5nIGlzIGRvbmUgaW4gdGhlIHRyZWUgd2FsayBpbgorCSAqIHNldF9wbGFu X3JlZmVyZW5jZXMKKwkgKi8KKwlpZiAoSXNQbGFuSWRFbmFibGVkKCkpCisJCWdsb2ItPnBsYW5f anVtYmxlX3N0YXRlID0gSW5pdGlhbGl6ZUp1bWJsZVN0YXRlKGZhbHNlKTsKKwogCXRvcF9wbGFu ID0gc2V0X3BsYW5fcmVmZXJlbmNlcyhyb290LCB0b3BfcGxhbik7CiAJLyogLi4uIGFuZCB0aGUg c3VicGxhbnMgKGJvdGggcmVndWxhciBzdWJwbGFucyBhbmQgaW5pdHBsYW5zKSAqLwogCUFzc2Vy dChsaXN0X2xlbmd0aChnbG9iLT5zdWJwbGFucykgPT0gbGlzdF9sZW5ndGgoZ2xvYi0+c3Vicm9v dHMpKTsKQEAgLTU5Niw2ICs2MDcsMTQgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2Us IGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJCQlyZXN1bHQt PmppdEZsYWdzIHw9IFBHSklUX0RFRk9STTsKIAl9CiAKKwlpZiAoSXNQbGFuSWRFbmFibGVkKCkp CisJeworCQlKdW1ibGVSYW5nZVRhYmxlKGdsb2ItPnBsYW5fanVtYmxlX3N0YXRlLCBnbG9iLT5m aW5hbHJ0YWJsZSk7CisJCXJlc3VsdC0+cGxhbklkID0gSGFzaEp1bWJsZVN0YXRlKGdsb2ItPnBs YW5fanVtYmxlX3N0YXRlKTsKKwkJcGZyZWUoZ2xvYi0+cGxhbl9qdW1ibGVfc3RhdGUtPmp1bWJs ZSk7CisJCXBmcmVlKGdsb2ItPnBsYW5fanVtYmxlX3N0YXRlKTsKKwl9CisKIAlpZiAoZ2xvYi0+ cGFydGl0aW9uX2RpcmVjdG9yeSAhPSBOVUxMKQogCQlEZXN0cm95UGFydGl0aW9uRGlyZWN0b3J5 KGdsb2ItPnBhcnRpdGlvbl9kaXJlY3RvcnkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRy ZWZzLmMKaW5kZXggMDg2ODI0OWJlOS4uYzU0MzRkZDMxNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3NldHJlZnMuYwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVG dW5jcy5oIgorI2luY2x1ZGUgIm5vZGVzL2p1bWJsZS5oIgogI2luY2x1ZGUgIm9wdGltaXplci9v cHRpbWl6ZXIuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvcGF0aG5vZGUuaCIKICNpbmNsdWRlICJv cHRpbWl6ZXIvcGxhbm1haW4uaCIKQEAgLTEzMDYsNiArMTMwNywxNCBAQCBzZXRfcGxhbl9yZWZz KFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpwbGFuLCBpbnQgcnRvZmZzZXQpCiAJcGxhbi0+bGVm dHRyZWUgPSBzZXRfcGxhbl9yZWZzKHJvb3QsIHBsYW4tPmxlZnR0cmVlLCBydG9mZnNldCk7CiAJ cGxhbi0+cmlnaHR0cmVlID0gc2V0X3BsYW5fcmVmcyhyb290LCBwbGFuLT5yaWdodHRyZWUsIHJ0 b2Zmc2V0KTsKIAorCS8qCisJICogSWYgZW5hYmxlZCwgYXBwZW5kIHNpZ25pZmljYW50IGluZm9y bWF0aW9uIHRvIHRoZSBwbGFuIGlkZW50aWZpZXIKKwkgKiBqdW1ibGUgKHdlIGRvIHRoaXMgaGVy ZSBzaW5jZSB3ZSdyZSBhbHJlYWR5IHdhbGtpbmcgdGhlIHRyZWUgaW4gYQorCSAqIG5lYXItZmlu YWwgc3RhdGUpCisJICovCisJaWYgKElzUGxhbklkRW5hYmxlZCgpKQorCQlKdW1ibGVOb2RlKHJv b3QtPmdsb2ItPnBsYW5fanVtYmxlX3N0YXRlLCAoTm9kZSAqKSBwbGFuKTsKKwogCXJldHVybiBw bGFuOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2xhdW5jaF9iYWNr ZW5kLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2xhdW5jaF9iYWNrZW5kLmMKaW5kZXggYjEy N2IxYmVmMy4uM2QzNDc4NGMwNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9s YXVuY2hfYmFja2VuZC5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvbGF1bmNoX2JhY2tl bmQuYwpAQCAtMTE1LDYgKzExNSw3IEBAIHR5cGVkZWYgc3RydWN0CiAJYm9vbAkJcmVkaXJlY3Rp b25fZG9uZTsKIAlib29sCQlJc0JpbmFyeVVwZ3JhZGU7CiAJYm9vbAkJcXVlcnlfaWRfZW5hYmxl ZDsKKwlib29sCQlwbGFuX2lkX2VuYWJsZWQ7CiAJaW50CQkJbWF4X3NhZmVfZmRzOwogCWludAkJ CU1heEJhY2tlbmRzOwogCWludAkJCW51bV9wbWNoaWxkX3Nsb3RzOwpAQCAtNzQ0LDYgKzc0NSw3 IEBAIHNhdmVfYmFja2VuZF92YXJpYWJsZXMoQmFja2VuZFBhcmFtZXRlcnMgKnBhcmFtLAogCXBh cmFtLT5yZWRpcmVjdGlvbl9kb25lID0gcmVkaXJlY3Rpb25fZG9uZTsKIAlwYXJhbS0+SXNCaW5h cnlVcGdyYWRlID0gSXNCaW5hcnlVcGdyYWRlOwogCXBhcmFtLT5xdWVyeV9pZF9lbmFibGVkID0g cXVlcnlfaWRfZW5hYmxlZDsKKwlwYXJhbS0+cGxhbl9pZF9lbmFibGVkID0gcGxhbl9pZF9lbmFi bGVkOwogCXBhcmFtLT5tYXhfc2FmZV9mZHMgPSBtYXhfc2FmZV9mZHM7CiAKIAlwYXJhbS0+TWF4 QmFja2VuZHMgPSBNYXhCYWNrZW5kczsKQEAgLTEwMDQsNiArMTAwNiw3IEBAIHJlc3RvcmVfYmFj a2VuZF92YXJpYWJsZXMoQmFja2VuZFBhcmFtZXRlcnMgKnBhcmFtKQogCXJlZGlyZWN0aW9uX2Rv bmUgPSBwYXJhbS0+cmVkaXJlY3Rpb25fZG9uZTsKIAlJc0JpbmFyeVVwZ3JhZGUgPSBwYXJhbS0+ SXNCaW5hcnlVcGdyYWRlOwogCXF1ZXJ5X2lkX2VuYWJsZWQgPSBwYXJhbS0+cXVlcnlfaWRfZW5h YmxlZDsKKwlwbGFuX2lkX2VuYWJsZWQgPSBwYXJhbS0+cGxhbl9pZF9lbmFibGVkOwogCW1heF9z YWZlX2ZkcyA9IHBhcmFtLT5tYXhfc2FmZV9mZHM7CiAKIAlNYXhCYWNrZW5kcyA9IHBhcmFtLT5N YXhCYWNrZW5kczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3Ny Yy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCA1NjU1MzQ4YTJlLi42ZDg5NDdiYWU5IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQv dGNvcC9wb3N0Z3Jlcy5jCkBAIC0xMTA2LDYgKzExMDYsNyBAQCBleGVjX3NpbXBsZV9xdWVyeShj b25zdCBjaGFyICpxdWVyeV9zdHJpbmcpCiAJCXNpemVfdAkJY21kdGFnbGVuOwogCiAJCXBnc3Rh dF9yZXBvcnRfcXVlcnlfaWQoMCwgdHJ1ZSk7CisJCXBnc3RhdF9yZXBvcnRfcGxhbl9pZCgwLCAw LCB0cnVlKTsKIAogCQkvKgogCQkgKiBHZXQgdGhlIGNvbW1hbmQgbmFtZSBmb3IgdXNlIGluIHN0 YXR1cyBkaXNwbGF5IChpdCBhbHNvIGJlY29tZXMgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvYmFja2VuZF9zdGF0dXMuYwppbmRleCA3MzEzNDI3OTlhLi4xZGZiN2E1OGY4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1cy5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L2JhY2tlbmRfc3RhdHVzLmMKQEAgLTM3OSw2ICsz NzksNyBAQCBwZ3N0YXRfYmVzdGFydCh2b2lkKQogCWxiZWVudHJ5LnN0X3Byb2dyZXNzX2NvbW1h bmQgPSBQUk9HUkVTU19DT01NQU5EX0lOVkFMSUQ7CiAJbGJlZW50cnkuc3RfcHJvZ3Jlc3NfY29t bWFuZF90YXJnZXQgPSBJbnZhbGlkT2lkOwogCWxiZWVudHJ5LnN0X3F1ZXJ5X2lkID0gVUlOVDY0 Q09OU1QoMCk7CisJbGJlZW50cnkuc3RfcGxhbl9pZCA9IFVJTlQ2NENPTlNUKDApOwogCiAJLyoK IAkgKiB3ZSBkb24ndCB6ZXJvIHN0X3Byb2dyZXNzX3BhcmFtIGhlcmUgdG8gc2F2ZSBjeWNsZXM7 IG5vYm9keSBzaG91bGQKQEAgLTUzMyw2ICs1MzQsNyBAQCBwZ3N0YXRfcmVwb3J0X2FjdGl2aXR5 KEJhY2tlbmRTdGF0ZSBzdGF0ZSwgY29uc3QgY2hhciAqY21kX3N0cikKIAkJCS8qIHN0X3hhY3Rf c3RhcnRfdGltZXN0YW1wIGFuZCB3YWl0X2V2ZW50X2luZm8gYXJlIGFsc28gZGlzYWJsZWQgKi8K IAkJCWJlZW50cnktPnN0X3hhY3Rfc3RhcnRfdGltZXN0YW1wID0gMDsKIAkJCWJlZW50cnktPnN0 X3F1ZXJ5X2lkID0gVUlOVDY0Q09OU1QoMCk7CisJCQliZWVudHJ5LT5zdF9wbGFuX2lkID0gVUlO VDY0Q09OU1QoMCk7CiAJCQlwcm9jLT53YWl0X2V2ZW50X2luZm8gPSAwOwogCQkJUEdTVEFUX0VO RF9XUklURV9BQ1RJVklUWShiZWVudHJ5KTsKIAkJfQpAQCAtNTg4LDEyICs1OTAsMTUgQEAgcGdz dGF0X3JlcG9ydF9hY3Rpdml0eShCYWNrZW5kU3RhdGUgc3RhdGUsIGNvbnN0IGNoYXIgKmNtZF9z dHIpCiAJYmVlbnRyeS0+c3Rfc3RhdGVfc3RhcnRfdGltZXN0YW1wID0gY3VycmVudF90aW1lc3Rh bXA7CiAKIAkvKgotCSAqIElmIGEgbmV3IHF1ZXJ5IGlzIHN0YXJ0ZWQsIHdlIHJlc2V0IHRoZSBx dWVyeSBpZGVudGlmaWVyIGFzIGl0J2xsIG9ubHkKLQkgKiBiZSBrbm93biBhZnRlciBwYXJzZSBh bmFseXNpcywgdG8gYXZvaWQgcmVwb3J0aW5nIGxhc3QgcXVlcnkncwotCSAqIGlkZW50aWZpZXIu CisJICogSWYgYSBuZXcgcXVlcnkgaXMgc3RhcnRlZCwgd2UgcmVzZXQgdGhlIHF1ZXJ5IGFuZCBw bGFuIGlkZW50aWZpZXIgYXMKKwkgKiBpdCdsbCBvbmx5IGJlIGtub3duIGFmdGVyIHBhcnNlIGFu YWx5c2lzIC8gcGxhbm5pbmcsIHRvIGF2b2lkIHJlcG9ydGluZworCSAqIGxhc3QgcXVlcnkncyBp ZGVudGlmaWVycy4KIAkgKi8KIAlpZiAoc3RhdGUgPT0gU1RBVEVfUlVOTklORykKKwl7CiAJCWJl ZW50cnktPnN0X3F1ZXJ5X2lkID0gVUlOVDY0Q09OU1QoMCk7CisJCWJlZW50cnktPnN0X3BsYW5f aWQgPSBVSU5UNjRDT05TVCgwKTsKKwl9CiAKIAlpZiAoY21kX3N0ciAhPSBOVUxMKQogCXsKQEAg LTY0NCw2ICs2NDksNDUgQEAgcGdzdGF0X3JlcG9ydF9xdWVyeV9pZCh1aW50NjQgcXVlcnlfaWQs IGJvb2wgZm9yY2UpCiAJUEdTVEFUX0VORF9XUklURV9BQ1RJVklUWShiZWVudHJ5KTsKIH0KIAor LyogLS0tLS0tLS0KKyAqIHBnc3RhdF9yZXBvcnRfcGxhbl9pZCgpIC0KKyAqCisgKiBDYWxsZWQg dG8gdXBkYXRlIHRvcC1sZXZlbCBwbGFuIGlkZW50aWZpZXIuCisgKiAtLS0tLS0tLQorICovCit2 b2lkCitwZ3N0YXRfcmVwb3J0X3BsYW5faWQodWludDY0IHBsYW5faWQsIHVpbnQ2NCBxdWVyeV9p ZCwgYm9vbCBmb3JjZSkKK3sKKwl2b2xhdGlsZSBQZ0JhY2tlbmRTdGF0dXMgKmJlZW50cnkgPSBN eUJFRW50cnk7CisKKwkvKgorCSAqIGlmIHRyYWNrX2FjdGl2aXRpZXMgaXMgZGlzYWJsZWQsIHN0 X3BsYW5faWQgc2hvdWxkIGFscmVhZHkgaGF2ZSBiZWVuCisJICogcmVzZXQKKwkgKi8KKwlpZiAo IWJlZW50cnkgfHwgIXBnc3RhdF90cmFja19hY3Rpdml0aWVzKQorCQlyZXR1cm47CisKKwkvKgor CSAqIFdlIG9ubHkgcmVwb3J0IHRoZSB0b3AtbGV2ZWwgcGxhbiBpZGVudGlmaWVycy4gIFRoZSBz dG9yZWQgcGxhbl9pZCBpcworCSAqIHJlc2V0IHdoZW4gYSBiYWNrZW5kIGNhbGxzIHBnc3RhdF9y ZXBvcnRfYWN0aXZpdHkoU1RBVEVfUlVOTklORyksIG9yCisJICogd2l0aCBhbiBleHBsaWNpdCBj YWxsIHRvIHRoaXMgZnVuY3Rpb24gdXNpbmcgdGhlIGZvcmNlIGZsYWcuICBJZiB0aGUKKwkgKiBz YXZlZCBwbGFuIGlkZW50aWZpZXIgaXMgbm90IHplcm8gb3IgdGhlIHF1ZXJ5IGlkZW50aWZpZXIg aXMgMCwgaXQKKwkgKiBtZWFucyB0aGF0IGl0J3Mgbm90IGEgdG9wLWxldmVsIGNvbW1hbmQsIHNv IGlnbm9yZSB0aGUgb25lIHByb3ZpZGVkCisJICogdW5sZXNzIGl0J3MgYW4gZXhwbGljaXQgY2Fs bCB0byByZXNldCB0aGUgaWRlbnRpZmllci4KKwkgKi8KKwlpZiAoKGJlZW50cnktPnN0X3BsYW5f aWQgIT0gMCB8fCBxdWVyeV9pZCA9PSAwKSAmJiAhZm9yY2UpCisJCXJldHVybjsKKworCS8qCisJ ICogVXBkYXRlIG15IHN0YXR1cyBlbnRyeSwgZm9sbG93aW5nIHRoZSBwcm90b2NvbCBvZiBidW1w aW5nCisJICogc3RfY2hhbmdlY291bnQgYmVmb3JlIGFuZCBhZnRlci4gIFdlIHVzZSBhIHZvbGF0 aWxlIHBvaW50ZXIgaGVyZSB0bworCSAqIGVuc3VyZSB0aGUgY29tcGlsZXIgZG9lc24ndCB0cnkg dG8gZ2V0IGN1dGUuCisJICovCisJUEdTVEFUX0JFR0lOX1dSSVRFX0FDVElWSVRZKGJlZW50cnkp OworCWJlZW50cnktPnN0X3BsYW5faWQgPSBwbGFuX2lkOworCVBHU1RBVF9FTkRfV1JJVEVfQUNU SVZJVFkoYmVlbnRyeSk7Cit9CisKIAogLyogLS0tLS0tLS0tLQogICogcGdzdGF0X3JlcG9ydF9h cHBuYW1lKCkgLQpAQCAtMTA0MCw2ICsxMDg0LDI2IEBAIHBnc3RhdF9nZXRfbXlfcXVlcnlfaWQo dm9pZCkKIAlyZXR1cm4gTXlCRUVudHJ5LT5zdF9xdWVyeV9pZDsKIH0KIAorLyogLS0tLS0tLS0t LQorICogcGdzdGF0X2dldF9teV9wbGFuX2lkKCkgLQorICoKKyAqIFJldHVybiBjdXJyZW50IGJh Y2tlbmQncyBwbGFuIGlkZW50aWZpZXIuCisgKi8KK3VpbnQ2NAorcGdzdGF0X2dldF9teV9wbGFu X2lkKHZvaWQpCit7CisJaWYgKCFNeUJFRW50cnkpCisJCXJldHVybiAwOworCisJLyoKKwkgKiBU aGVyZSdzIG5vIG5lZWQgZm9yIGEgbG9jayBhcm91bmQgcGdzdGF0X2JlZ2luX3JlYWRfYWN0aXZp dHkgLworCSAqIHBnc3RhdF9lbmRfcmVhZF9hY3Rpdml0eSBoZXJlIGFzIGl0J3Mgb25seSBjYWxs ZWQgZnJvbQorCSAqIHBnX3N0YXRfZ2V0X2FjdGl2aXR5IHdoaWNoIGlzIGFscmVhZHkgcHJvdGVj dGVkLCBvciBmcm9tIHRoZSBzYW1lCisJICogYmFja2VuZCB3aGljaCBtZWFucyB0aGF0IHRoZXJl IHdvbid0IGJlIGNvbmN1cnJlbnQgd3JpdGVzLgorCSAqLworCXJldHVybiBNeUJFRW50cnktPnN0 X3BsYW5faWQ7Cit9CisKIC8qIC0tLS0tLS0tLS0KICAqIHBnc3RhdF9nZXRfYmFja2VuZF90eXBl X2J5X3Byb2NfbnVtYmVyKCkgLQogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKaW5k ZXggZTkwOTZhODg0OS4uYTNkNTU5MmJlYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3Bnc3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNz LmMKQEAgLTMzMCw3ICszMzAsNyBAQCBwZ19zdGF0X2dldF9wcm9ncmVzc19pbmZvKFBHX0ZVTkNU SU9OX0FSR1MpCiBEYXR1bQogcGdfc3RhdF9nZXRfYWN0aXZpdHkoUEdfRlVOQ1RJT05fQVJHUykK IHsKLSNkZWZpbmUgUEdfU1RBVF9HRVRfQUNUSVZJVFlfQ09MUwkzMQorI2RlZmluZSBQR19TVEFU X0dFVF9BQ1RJVklUWV9DT0xTCTMyCiAJaW50CQkJbnVtX2JhY2tlbmRzID0gcGdzdGF0X2ZldGNo X3N0YXRfbnVtYmFja2VuZHMoKTsKIAlpbnQJCQljdXJyX2JhY2tlbmQ7CiAJaW50CQkJcGlkID0g UEdfQVJHSVNOVUxMKDApID8gLTEgOiBQR19HRVRBUkdfSU5UMzIoMCk7CkBAIC02NDEsNiArNjQx LDEwIEBAIHBnX3N0YXRfZ2V0X2FjdGl2aXR5KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJbnVsbHNb MzBdID0gdHJ1ZTsKIAkJCWVsc2UKIAkJCQl2YWx1ZXNbMzBdID0gVUludDY0R2V0RGF0dW0oYmVl bnRyeS0+c3RfcXVlcnlfaWQpOworCQkJaWYgKGJlZW50cnktPnN0X3BsYW5faWQgPT0gMCkKKwkJ CQludWxsc1szMV0gPSB0cnVlOworCQkJZWxzZQorCQkJCXZhbHVlc1szMV0gPSBVSW50NjRHZXRE YXR1bShiZWVudHJ5LT5zdF9wbGFuX2lkKTsKIAkJfQogCQllbHNlCiAJCXsKQEAgLTY3MCw2ICs2 NzQsNyBAQCBwZ19zdGF0X2dldF9hY3Rpdml0eShQR19GVU5DVElPTl9BUkdTKQogCQkJbnVsbHNb MjhdID0gdHJ1ZTsKIAkJCW51bGxzWzI5XSA9IHRydWU7CiAJCQludWxsc1szMF0gPSB0cnVlOwor CQkJbnVsbHNbMzFdID0gdHJ1ZTsKIAkJfQogCiAJCXR1cGxlc3RvcmVfcHV0dmFsdWVzKHJzaW5m by0+c2V0UmVzdWx0LCByc2luZm8tPnNldERlc2MsIHZhbHVlcywgbnVsbHMpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Y190YWJsZXMuYwppbmRleCA5YTIyNTEyZmVmLi44YWJiOWJlYWQ3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMzA5LDYgKzMwOSwyNCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5IGNvbXB1dGVfcXVlcnlfaWRfb3B0aW9uc1tdID0g ewogCXtOVUxMLCAwLCBmYWxzZX0KIH07CiAKKy8qCisgKiBBbHRob3VnaCBvbmx5ICJvbiIgYW5k ICJvZmYiIGFyZSBkb2N1bWVudGVkLCB3ZSBhY2NlcHQKKyAqIGFsbCB0aGUgbGlrZWx5IHZhcmlh bnRzIG9mICJvbiIgYW5kICJvZmYiLgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IGNvbmZpZ19l bnVtX2VudHJ5IGNvbXB1dGVfcGxhbl9pZF9vcHRpb25zW10gPSB7CisJeyJhdXRvIiwgQ09NUFVU RV9QTEFOX0lEX0FVVE8sIGZhbHNlfSwKKwl7InJlZ3Jlc3MiLCBDT01QVVRFX1BMQU5fSURfUkVH UkVTUywgZmFsc2V9LAorCXsib24iLCBDT01QVVRFX1BMQU5fSURfT04sIGZhbHNlfSwKKwl7Im9m ZiIsIENPTVBVVEVfUExBTl9JRF9PRkYsIGZhbHNlfSwKKwl7InRydWUiLCBDT01QVVRFX1BMQU5f SURfT04sIHRydWV9LAorCXsiZmFsc2UiLCBDT01QVVRFX1BMQU5fSURfT0ZGLCB0cnVlfSwKKwl7 InllcyIsIENPTVBVVEVfUExBTl9JRF9PTiwgdHJ1ZX0sCisJeyJubyIsIENPTVBVVEVfUExBTl9J RF9PRkYsIHRydWV9LAorCXsiMSIsIENPTVBVVEVfUExBTl9JRF9PTiwgdHJ1ZX0sCisJeyIwIiwg Q09NUFVURV9QTEFOX0lEX09GRiwgdHJ1ZX0sCisJe05VTEwsIDAsIGZhbHNlfQorfTsKKwogLyoK ICAqIEFsdGhvdWdoIG9ubHkgIm9uIiwgIm9mZiIsIGFuZCAicGFydGl0aW9uIiBhcmUgZG9jdW1l bnRlZCwgd2UKICAqIGFjY2VwdCBhbGwgdGhlIGxpa2VseSB2YXJpYW50cyBvZiAib24iIGFuZCAi b2ZmIi4KQEAgLTQ4ODIsNiArNDkwMCwxNiBAQCBzdHJ1Y3QgY29uZmlnX2VudW0gQ29uZmlndXJl TmFtZXNFbnVtW10gPQogCQlOVUxMLCBOVUxMLCBOVUxMCiAJfSwKIAorCXsKKwkJeyJjb21wdXRl X3BsYW5faWQiLCBQR0NfU1VTRVQsIFNUQVRTX01PTklUT1JJTkcsCisJCQlnZXR0ZXh0X25vb3Ao IkVuYWJsZXMgaW4tY29yZSBjb21wdXRhdGlvbiBvZiBwbGFuIGlkZW50aWZpZXJzLiIpLAorCQkJ TlVMTAorCQl9LAorCQkmY29tcHV0ZV9wbGFuX2lkLAorCQlDT01QVVRFX1BMQU5fSURfQVVUTywg Y29tcHV0ZV9wbGFuX2lkX29wdGlvbnMsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAorCiAJewog CQl7ImNvbnN0cmFpbnRfZXhjbHVzaW9uIiwgUEdDX1VTRVJTRVQsIFFVRVJZX1RVTklOR19PVEhF UiwKIAkJCWdldHRleHRfbm9vcCgiRW5hYmxlcyB0aGUgcGxhbm5lciB0byB1c2UgY29uc3RyYWlu dHMgdG8gb3B0aW1pemUgcXVlcmllcy4iKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9z dGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCBjNDBiN2EzMTIxLi44YjdlODAyYjk5IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC02NDEsNiAr NjQxLDcgQEAKICMgLSBNb25pdG9yaW5nIC0KIAogI2NvbXB1dGVfcXVlcnlfaWQgPSBhdXRvCisj Y29tcHV0ZV9wbGFuX2lkID0gYXV0bwogI2xvZ19zdGF0ZW1lbnRfc3RhdHMgPSBvZmYKICNsb2df cGFyc2VyX3N0YXRzID0gb2ZmCiAjbG9nX3BsYW5uZXJfc3RhdHMgPSBvZmYKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CmluZGV4IDViOGMyYWQyYTUuLjU1NDdkYjdkMmYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w cm9jLmRhdApAQCAtNTU2OCw5ICs1NTY4LDkgQEAKICAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRf YWN0aXZpdHknLCBwcm9yb3dzID0+ICcxMDAnLCBwcm9pc3N0cmljdCA9PiAnZicsCiAgIHByb3Jl dHNldCA9PiAndCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLAogICBw cm9yZXR0eXBlID0+ICdyZWNvcmQnLCBwcm9hcmd0eXBlcyA9PiAnaW50NCcsCi0gIHByb2FsbGFy Z3R5cGVzID0+ICd7aW50NCxvaWQsaW50NCxvaWQsdGV4dCx0ZXh0LHRleHQsdGV4dCx0ZXh0LHRp bWVzdGFtcHR6LHRpbWVzdGFtcHR6LHRpbWVzdGFtcHR6LHRpbWVzdGFtcHR6LGluZXQsdGV4dCxp bnQ0LHhpZCx4aWQsdGV4dCxib29sLHRleHQsdGV4dCxpbnQ0LHRleHQsbnVtZXJpYyx0ZXh0LGJv b2wsdGV4dCxib29sLGJvb2wsaW50NCxpbnQ4fScsCi0gIHByb2FyZ21vZGVzID0+ICd7aSxvLG8s byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv fScsCi0gIHByb2FyZ25hbWVzID0+ICd7cGlkLGRhdGlkLHBpZCx1c2VzeXNpZCxhcHBsaWNhdGlv bl9uYW1lLHN0YXRlLHF1ZXJ5LHdhaXRfZXZlbnRfdHlwZSx3YWl0X2V2ZW50LHhhY3Rfc3RhcnQs cXVlcnlfc3RhcnQsYmFja2VuZF9zdGFydCxzdGF0ZV9jaGFuZ2UsY2xpZW50X2FkZHIsY2xpZW50 X2hvc3RuYW1lLGNsaWVudF9wb3J0LGJhY2tlbmRfeGlkLGJhY2tlbmRfeG1pbixiYWNrZW5kX3R5 cGUsc3NsLHNzbHZlcnNpb24sc3NsY2lwaGVyLHNzbGJpdHMsc3NsX2NsaWVudF9kbixzc2xfY2xp ZW50X3NlcmlhbCxzc2xfaXNzdWVyX2RuLGdzc19hdXRoLGdzc19wcmluYyxnc3NfZW5jLGdzc19k ZWxlZ2F0aW9uLGxlYWRlcl9waWQscXVlcnlfaWR9JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tp bnQ0LG9pZCxpbnQ0LG9pZCx0ZXh0LHRleHQsdGV4dCx0ZXh0LHRleHQsdGltZXN0YW1wdHosdGlt ZXN0YW1wdHosdGltZXN0YW1wdHosdGltZXN0YW1wdHosaW5ldCx0ZXh0LGludDQseGlkLHhpZCx0 ZXh0LGJvb2wsdGV4dCx0ZXh0LGludDQsdGV4dCxudW1lcmljLHRleHQsYm9vbCx0ZXh0LGJvb2ws Ym9vbCxpbnQ0LGludDgsaW50OH0nLAorICBwcm9hcmdtb2RlcyA9PiAne2ksbyxvLG8sbyxvLG8s byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisg IHByb2FyZ25hbWVzID0+ICd7cGlkLGRhdGlkLHBpZCx1c2VzeXNpZCxhcHBsaWNhdGlvbl9uYW1l LHN0YXRlLHF1ZXJ5LHdhaXRfZXZlbnRfdHlwZSx3YWl0X2V2ZW50LHhhY3Rfc3RhcnQscXVlcnlf c3RhcnQsYmFja2VuZF9zdGFydCxzdGF0ZV9jaGFuZ2UsY2xpZW50X2FkZHIsY2xpZW50X2hvc3Ru YW1lLGNsaWVudF9wb3J0LGJhY2tlbmRfeGlkLGJhY2tlbmRfeG1pbixiYWNrZW5kX3R5cGUsc3Ns LHNzbHZlcnNpb24sc3NsY2lwaGVyLHNzbGJpdHMsc3NsX2NsaWVudF9kbixzc2xfY2xpZW50X3Nl cmlhbCxzc2xfaXNzdWVyX2RuLGdzc19hdXRoLGdzc19wcmluYyxnc3NfZW5jLGdzc19kZWxlZ2F0 aW9uLGxlYWRlcl9waWQscXVlcnlfaWQscGxhbl9pZH0nLAogICBwcm9zcmMgPT4gJ3BnX3N0YXRf Z2V0X2FjdGl2aXR5JyB9LAogeyBvaWQgPT4gJzYzMTgnLCBkZXNjciA9PiAnZGVzY3JpYmUgd2Fp dCBldmVudHMnLAogICBwcm9uYW1lID0+ICdwZ19nZXRfd2FpdF9ldmVudHMnLCBwcm9jb3N0ID0+ ICcxMCcsIHByb3Jvd3MgPT4gJzI1MCcsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9q dW1ibGUuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2p1bWJsZS5oCmluZGV4IDc1ODdjOWY3MDguLjU2 YzY1MzEwZGQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2p1bWJsZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL2p1bWJsZS5oCkBAIC0xNSw2ICsxNSw3IEBACiAjZGVmaW5lIEpVTUJM RV9ICiAKICNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCisjaW5jbHVkZSAibm9kZXMvcGF0 aG5vZGVzLmgiCiAKIC8qCiAgKiBTdHJ1Y3QgZm9yIHRyYWNraW5nIGxvY2F0aW9ucy9sZW5ndGhz IG9mIGNvbnN0YW50cyBkdXJpbmcgbm9ybWFsaXphdGlvbgpAQCAtNTksMTUgKzYwLDI3IEBAIGVu dW0gQ29tcHV0ZVF1ZXJ5SWRUeXBlCiAJQ09NUFVURV9RVUVSWV9JRF9SRUdSRVNTLAogfTsKIAor LyogVmFsdWVzIGZvciB0aGUgY29tcHV0ZV9wbGFuX2lkIEdVQyAqLworZW51bSBDb21wdXRlUGxh bklkVHlwZQoreworCUNPTVBVVEVfUExBTl9JRF9PRkYsCisJQ09NUFVURV9QTEFOX0lEX09OLAor CUNPTVBVVEVfUExBTl9JRF9BVVRPLAorCUNPTVBVVEVfUExBTl9JRF9SRUdSRVNTLAorfTsKKwog LyogR1VDIHBhcmFtZXRlcnMgKi8KIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgY29tcHV0ZV9xdWVy eV9pZDsKK2V4dGVybiBQR0RMTElNUE9SVCBpbnQgY29tcHV0ZV9wbGFuX2lkOwogCiAKIGV4dGVy biBjb25zdCBjaGFyICpDbGVhblF1ZXJ5dGV4dChjb25zdCBjaGFyICpxdWVyeSwgaW50ICpsb2Nh dGlvbiwgaW50ICpsZW4pOwogZXh0ZXJuIEp1bWJsZVN0YXRlICpKdW1ibGVRdWVyeShRdWVyeSAq cXVlcnkpOwogZXh0ZXJuIHZvaWQgRW5hYmxlUXVlcnlJZCh2b2lkKTsKK2V4dGVybiB2b2lkIEVu YWJsZVBsYW5JZCh2b2lkKTsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgcXVlcnlfaWRfZW5h YmxlZDsKK2V4dGVybiBQR0RMTElNUE9SVCBib29sIHBsYW5faWRfZW5hYmxlZDsKIAogLyoKICAq IFJldHVybnMgd2hldGhlciBxdWVyeSBpZGVudGlmaWVyIGNvbXB1dGF0aW9uIGhhcyBiZWVuIGVu YWJsZWQsIGVpdGhlcgpAQCAtODMsMTAgKzk2LDI1IEBAIElzUXVlcnlJZEVuYWJsZWQodm9pZCkK IAlyZXR1cm4gcXVlcnlfaWRfZW5hYmxlZDsKIH0KIAorLyoKKyAqIFJldHVybnMgd2hldGhlciBw bGFuIGlkZW50aWZpZXIgY29tcHV0YXRpb24gaGFzIGJlZW4gZW5hYmxlZCwgZWl0aGVyCisgKiBk aXJlY3RseSBpbiB0aGUgR1VDIG9yIGJ5IGEgbW9kdWxlIHdoZW4gdGhlIHNldHRpbmcgaXMgJ2F1 dG8nLgorICovCitzdGF0aWMgaW5saW5lIGJvb2wKK0lzUGxhbklkRW5hYmxlZCh2b2lkKQorewor CWlmIChjb21wdXRlX3BsYW5faWQgPT0gQ09NUFVURV9QTEFOX0lEX09GRikKKwkJcmV0dXJuIGZh bHNlOworCWlmIChjb21wdXRlX3BsYW5faWQgPT0gQ09NUFVURV9QTEFOX0lEX09OKQorCQlyZXR1 cm4gdHJ1ZTsKKwlyZXR1cm4gcGxhbl9pZF9lbmFibGVkOworfQorCiAvKiBGdW5jdGlvbnMgY2Fs bGVkIGZvciBwbGFuIGp1bWJsaW5nIG9yIGV4dGVuc2lvbnMgZG9pbmcgdGhlaXIgb3duIGp1bWJs aW5nICovCiBleHRlcm4gSnVtYmxlU3RhdGUgKkluaXRpYWxpemVKdW1ibGVTdGF0ZShib29sIHJl Y29yZF9jbG9jYXRpb25zKTsKIGV4dGVybiB2b2lkIEFwcGVuZEp1bWJsZShKdW1ibGVTdGF0ZSAq anN0YXRlLCBjb25zdCB1bnNpZ25lZCBjaGFyICppdGVtLCBTaXplIHNpemUpOwogZXh0ZXJuIHZv aWQgSnVtYmxlTm9kZShKdW1ibGVTdGF0ZSAqanN0YXRlLCBOb2RlICpub2RlKTsKK2V4dGVybiB2 b2lkIEp1bWJsZVJhbmdlVGFibGUoSnVtYmxlU3RhdGUgKmpzdGF0ZSwgTGlzdCAqcnRhYmxlKTsK IGV4dGVybiB1aW50NjQgSGFzaEp1bWJsZVN0YXRlKEp1bWJsZVN0YXRlICpqc3RhdGUpOwogCiAj ZW5kaWYJCQkJCQkJLyogSlVNQkxFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKaW5kZXggNTJkNDRm NDMwMi4uNGJhZjgyOWY2NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAgLTE2Niw2ICsxNjYsOSBA QCB0eXBlZGVmIHN0cnVjdCBQbGFubmVyR2xvYmFsCiAKIAkvKiBwYXJ0aXRpb24gZGVzY3JpcHRv cnMgKi8KIAlQYXJ0aXRpb25EaXJlY3RvcnkgcGFydGl0aW9uX2RpcmVjdG9yeSBwZ19ub2RlX2F0 dHIocmVhZF93cml0ZV9pZ25vcmUpOworCisJLyogb3B0aW9uYWwganVtYmxlIHN0YXRlIGZvciBw bGFuIGlkZW50aWZpZXIgY2FsY3VsYXRpb24gKi8KKwlzdHJ1Y3QgSnVtYmxlU3RhdGUgKnBsYW5f anVtYmxlX3N0YXRlIHBnX25vZGVfYXR0cihyZWFkX3dyaXRlX2lnbm9yZSk7CiB9IFBsYW5uZXJH bG9iYWw7CiAKIC8qIG1hY3JvIGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3NvY2lhdGVkIHdpdGgg YSBTdWJQbGFuIG5vZGUgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggMWUwODJiZmRjZC4uNmE5 Nzk1ZjZhMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKKysrIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKQEAgLTU1LDYgKzU1LDkgQEAgdHlwZWRlZiBz dHJ1Y3QgUGxhbm5lZFN0bXQKIAkvKiBxdWVyeSBpZGVudGlmaWVyIChjb3BpZWQgZnJvbSBRdWVy eSkgKi8KIAl1aW50NjQJCXF1ZXJ5SWQ7CiAKKwkvKiBwbGFuIGlkZW50aWZpZXIgKHNldCB3aGVu IGNvbXB1dGVfcGxhbl9pZCBpcyBlbmFibGVkIG9yIGJ5IHBsdWdpbnMpICovCisJdWludDY0CQlw bGFuSWQ7CisKIAkvKiBpcyBpdCBpbnNlcnR8dXBkYXRlfGRlbGV0ZXxtZXJnZSBSRVRVUk5JTkc/ ICovCiAJYm9vbAkJaGFzUmV0dXJuaW5nOwogCkBAIC0xNDIsNyArMTQ1LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgUGxhbm5lZFN0bXQKICAqLwogdHlwZWRlZiBzdHJ1Y3QgUGxhbgogewotCXBnX25vZGVf YXR0cihhYnN0cmFjdCwgbm9fZXF1YWwsIG5vX3F1ZXJ5X2p1bWJsZSkKKwlwZ19ub2RlX2F0dHIo YWJzdHJhY3QsIG5vX2VxdWFsKQogCiAJTm9kZVRhZwkJdHlwZTsKIApAQCAtMTUwLDE5ICsxNTMs MTkgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbgogCSAqIGVzdGltYXRlZCBleGVjdXRpb24gY29zdHMg Zm9yIHBsYW4gKHNlZSBjb3N0c2l6ZS5jIGZvciBtb3JlIGluZm8pCiAJICovCiAJLyogY291bnQg b2YgZGlzYWJsZWQgbm9kZXMgKi8KLQlpbnQJCQlkaXNhYmxlZF9ub2RlczsKKwlpbnQJCQlkaXNh YmxlZF9ub2RlcyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogY29zdCBl eHBlbmRlZCBiZWZvcmUgZmV0Y2hpbmcgYW55IHR1cGxlcyAqLwotCUNvc3QJCXN0YXJ0dXBfY29z dDsKKwlDb3N0CQlzdGFydHVwX2Nvc3QgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUp OwogCS8qIHRvdGFsIGNvc3QgKGFzc3VtaW5nIGFsbCB0dXBsZXMgZmV0Y2hlZCkgKi8KLQlDb3N0 CQl0b3RhbF9jb3N0OworCUNvc3QJCXRvdGFsX2Nvc3QgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJs ZV9pZ25vcmUpOwogCiAJLyoKIAkgKiBwbGFubmVyJ3MgZXN0aW1hdGUgb2YgcmVzdWx0IHNpemUg b2YgdGhpcyBwbGFuIHN0ZXAKIAkgKi8KIAkvKiBudW1iZXIgb2Ygcm93cyBwbGFuIGlzIGV4cGVj dGVkIHRvIGVtaXQgKi8KLQlDYXJkaW5hbGl0eSBwbGFuX3Jvd3M7CisJQ2FyZGluYWxpdHkgcGxh bl9yb3dzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBhdmVyYWdlIHJv dyB3aWR0aCBpbiBieXRlcyAqLwotCWludAkJCXBsYW5fd2lkdGg7CisJaW50CQkJcGxhbl93aWR0 aCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAKIAkvKgogCSAqIGluZm9ybWF0 aW9uIG5lZWRlZCBmb3IgcGFyYWxsZWwgcXVlcnkKQEAgLTE4OCwxMCArMTkxLDEwIEBAIHR5cGVk ZWYgc3RydWN0IFBsYW4KIAkvKiBpbXBsaWNpdGx5LUFORGVkIHF1YWwgY29uZGl0aW9ucyAqLwog CUxpc3QJICAgKnF1YWw7CiAJLyogaW5wdXQgcGxhbiB0cmVlKHMpICovCi0Jc3RydWN0IFBsYW4g KmxlZnR0cmVlOwotCXN0cnVjdCBQbGFuICpyaWdodHRyZWU7CisJc3RydWN0IFBsYW4gKmxlZnR0 cmVlIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKwlzdHJ1Y3QgUGxhbiAqcmln aHR0cmVlIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBJbml0IFBsYW4g bm9kZXMgKHVuLWNvcnJlbGF0ZWQgZXhwciBzdWJzZWxlY3RzKSAqLwotCUxpc3QJICAgKmluaXRQ bGFuOworCUxpc3QJICAgKmluaXRQbGFuIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3Jl KTsKIAogCS8qCiAJICogSW5mb3JtYXRpb24gZm9yIG1hbmFnZW1lbnQgb2YgcGFyYW1ldGVyLWNo YW5nZS1kcml2ZW4gcmVzY2FubmluZwpAQCAtMjg5LDcgKzI5Miw3IEBAIHR5cGVkZWYgc3RydWN0 IE1vZGlmeVRhYmxlCiAJLyogcGVyLXRhcmdldC10YWJsZSBSRVRVUk5JTkcgdGxpc3RzICovCiAJ TGlzdAkgICAqcmV0dXJuaW5nTGlzdHM7CiAJLyogcGVyLXRhcmdldC10YWJsZSBGRFcgcHJpdmF0 ZSBkYXRhIGxpc3RzICovCi0JTGlzdAkgICAqZmR3UHJpdkxpc3RzOworCUxpc3QJICAgKmZkd1By aXZMaXN0cyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaW5kaWNlcyBv ZiBGRFcgRE0gcGxhbnMgKi8KIAlCaXRtYXBzZXQgICpmZHdEaXJlY3RNb2RpZnlQbGFuczsKIAkv KiBQbGFuUm93TWFya3MgKG5vbi1sb2NraW5nIG9ubHkpICovCkBAIC0zMjgsNyArMzMxLDcgQEAg dHlwZWRlZiBzdHJ1Y3QgQXBwZW5kCiAJUGxhbgkJcGxhbjsKIAkvKiBSVElzIG9mIGFwcGVuZHJl bChzKSBmb3JtZWQgYnkgdGhpcyBub2RlICovCiAJQml0bWFwc2V0ICAqYXBwcmVsaWRzOwotCUxp c3QJICAgKmFwcGVuZHBsYW5zOworCUxpc3QJICAgKmFwcGVuZHBsYW5zIHBnX25vZGVfYXR0cihx dWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiAjIG9mIGFzeW5jaHJvbm91cyBwbGFucyAqLwogCWlu dAkJCW5hc3luY3BsYW5zOwogCkBAIC0zNTgsNyArMzYxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgTWVy Z2VBcHBlbmQKIAkvKiBSVElzIG9mIGFwcGVuZHJlbChzKSBmb3JtZWQgYnkgdGhpcyBub2RlICov CiAJQml0bWFwc2V0ICAqYXBwcmVsaWRzOwogCi0JTGlzdAkgICAqbWVyZ2VwbGFuczsKKwlMaXN0 CSAgICptZXJnZXBsYW5zIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAogCS8q IHRoZXNlIGZpZWxkcyBhcmUganVzdCBsaWtlIHRoZSBzb3J0LWtleSBpbmZvIGluIHN0cnVjdCBT b3J0OiAqLwogCkBAIC00MTMsNyArNDE2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVjdXJzaXZlVW5p b24KIAlPaWQJCSAgICpkdXBDb2xsYXRpb25zIHBnX25vZGVfYXR0cihhcnJheV9zaXplKG51bUNv bHMpKTsKIAogCS8qIGVzdGltYXRlZCBudW1iZXIgb2YgZ3JvdXBzIGluIGlucHV0ICovCi0JbG9u ZwkJbnVtR3JvdXBzOworCWxvbmcJCW51bUdyb3VwcyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxl X2lnbm9yZSk7CiB9IFJlY3Vyc2l2ZVVuaW9uOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC00 MjcsNyArNDMwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVjdXJzaXZlVW5pb24KIHR5cGVkZWYgc3Ry dWN0IEJpdG1hcEFuZAogewogCVBsYW4JCXBsYW47Ci0JTGlzdAkgICAqYml0bWFwcGxhbnM7CisJ TGlzdAkgICAqYml0bWFwcGxhbnMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwog fSBCaXRtYXBBbmQ7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ0Miw3ICs0NDUsNyBAQCB0 eXBlZGVmIHN0cnVjdCBCaXRtYXBPcgogewogCVBsYW4JCXBsYW47CiAJYm9vbAkJaXNzaGFyZWQ7 Ci0JTGlzdAkgICAqYml0bWFwcGxhbnM7CisJTGlzdAkgICAqYml0bWFwcGxhbnMgcGdfbm9kZV9h dHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogfSBCaXRtYXBPcjsKIAogLyoKQEAgLTY5MCw3ICs2 OTMsNyBAQCB0eXBlZGVmIGVudW0gU3VicXVlcnlTY2FuU3RhdHVzCiB0eXBlZGVmIHN0cnVjdCBT dWJxdWVyeVNjYW4KIHsKIAlTY2FuCQlzY2FuOwotCVBsYW4JICAgKnN1YnBsYW47CisJUGxhbgkg ICAqc3VicGxhbiBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJU3VicXVlcnlT Y2FuU3RhdHVzIHNjYW5zdGF0dXM7CiB9IFN1YnF1ZXJ5U2NhbjsKIApAQCAtODE4LDcgKzgyMSw3 IEBAIHR5cGVkZWYgc3RydWN0IEZvcmVpZ25TY2FuCiAJLyogZXhwcmVzc2lvbnMgdGhhdCBGRFcg bWF5IGV2YWx1YXRlICovCiAJTGlzdAkgICAqZmR3X2V4cHJzOwogCS8qIHByaXZhdGUgZGF0YSBm b3IgRkRXICovCi0JTGlzdAkgICAqZmR3X3ByaXZhdGU7CisJTGlzdAkgICAqZmR3X3ByaXZhdGUg cGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIG9wdGlvbmFsIHRsaXN0IGRl c2NyaWJpbmcgc2NhbiB0dXBsZSAqLwogCUxpc3QJICAgKmZkd19zY2FuX3RsaXN0OwogCQkvKiBv cmlnaW5hbCBxdWFscyBub3QgaW4gc2Nhbi5wbGFuLnF1YWwgKi8KQEAgLTg1Niw3ICs4NTksNyBA QCB0eXBlZGVmIHN0cnVjdCBDdXN0b21TY2FuCiAJLyogZXhwcmVzc2lvbnMgdGhhdCBjdXN0b20g Y29kZSBtYXkgZXZhbHVhdGUgKi8KIAlMaXN0CSAgICpjdXN0b21fZXhwcnM7CiAJLyogcHJpdmF0 ZSBkYXRhIGZvciBjdXN0b20gY29kZSAqLwotCUxpc3QJICAgKmN1c3RvbV9wcml2YXRlOworCUxp c3QJICAgKmN1c3RvbV9wcml2YXRlIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsK IAkvKiBvcHRpb25hbCB0bGlzdCBkZXNjcmliaW5nIHNjYW4gdHVwbGUgKi8KIAlMaXN0CSAgICpj dXN0b21fc2Nhbl90bGlzdDsKIAkvKiBSVElzIGdlbmVyYXRlZCBieSB0aGlzIHNjYW4gKi8KQEAg LTg2Nyw3ICs4NzAsNyBAQCB0eXBlZGVmIHN0cnVjdCBDdXN0b21TY2FuCiAJICogc3RhdGljIHRh YmxlIG9mIGNhbGxiYWNrIGZ1bmN0aW9ucy4gIFNvIHdlIGRvbid0IGNvcHkgdGhlIHRhYmxlIGl0 c2VsZiwKIAkgKiBqdXN0IHJlZmVyZW5jZSB0aGUgb3JpZ2luYWwgb25lLgogCSAqLwotCWNvbnN0 IHN0cnVjdCBDdXN0b21TY2FuTWV0aG9kcyAqbWV0aG9kczsKKwljb25zdCBzdHJ1Y3QgQ3VzdG9t U2Nhbk1ldGhvZHMgKm1ldGhvZHMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwog fSBDdXN0b21TY2FuOwogCiAvKgpAQCAtOTI5LDcgKzkzMiw3IEBAIHR5cGVkZWYgc3RydWN0IE5l c3RMb29wCiAKIHR5cGVkZWYgc3RydWN0IE5lc3RMb29wUGFyYW0KIHsKLQlwZ19ub2RlX2F0dHIo bm9fZXF1YWwsIG5vX3F1ZXJ5X2p1bWJsZSkKKwlwZ19ub2RlX2F0dHIobm9fZXF1YWwpCiAKIAlO b2RlVGFnCQl0eXBlOwogCS8qIG51bWJlciBvZiB0aGUgUEFSQU1fRVhFQyBQYXJhbSB0byBzZXQg Ki8KQEAgLTEwMzcsNyArMTA0MCw3IEBAIHR5cGVkZWYgc3RydWN0IE1lbW9pemUKIAkgKiBUaGUg bWF4aW11bSBudW1iZXIgb2YgZW50cmllcyB0aGF0IHRoZSBwbGFubmVyIGV4cGVjdHMgd2lsbCBm aXQgaW4gdGhlCiAJICogY2FjaGUsIG9yIDAgaWYgdW5rbm93bgogCSAqLwotCXVpbnQzMgkJZXN0 X2VudHJpZXM7CisJdWludDMyCQllc3RfZW50cmllcyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxl X2lnbm9yZSk7CiAKIAkvKiBwYXJhbWlkcyBmcm9tIHBhcmFtX2V4cHJzICovCiAJQml0bWFwc2V0 ICAqa2V5cGFyYW1pZHM7CkBAIC0xMTM0LDcgKzExMzcsNyBAQCB0eXBlZGVmIHN0cnVjdCBBZ2cK IAlPaWQJCSAgICpncnBDb2xsYXRpb25zIHBnX25vZGVfYXR0cihhcnJheV9zaXplKG51bUNvbHMp KTsKIAogCS8qIGVzdGltYXRlZCBudW1iZXIgb2YgZ3JvdXBzIGluIGlucHV0ICovCi0JbG9uZwkJ bnVtR3JvdXBzOworCWxvbmcJCW51bUdyb3VwcyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2ln bm9yZSk7CiAKIAkvKiBmb3IgcGFzcy1ieS1yZWYgdHJhbnNpdGlvbiBkYXRhICovCiAJdWludDY0 CQl0cmFuc2l0aW9uU3BhY2U7CkBAIC0xMzM5LDcgKzEzNDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBI YXNoCiAJYm9vbAkJc2tld0luaGVyaXQ7CiAJLyogYWxsIG90aGVyIGluZm8gaXMgaW4gdGhlIHBh cmVudCBIYXNoSm9pbiBub2RlICovCiAJLyogZXN0aW1hdGUgdG90YWwgcm93cyBpZiBwYXJhbGxl bF9hd2FyZSAqLwotCUNhcmRpbmFsaXR5IHJvd3NfdG90YWw7CisJQ2FyZGluYWxpdHkgcm93c190 b3RhbCAgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogfSBIYXNoOwogCiAvKiAt LS0tLS0tLS0tLS0tLS0tCkBAIC0xMzcwLDcgKzEzNzMsNyBAQCB0eXBlZGVmIHN0cnVjdCBTZXRP cAogCWJvb2wJICAgKmNtcE51bGxzRmlyc3QgcGdfbm9kZV9hdHRyKGFycmF5X3NpemUobnVtQ29s cykpOwogCiAJLyogZXN0aW1hdGVkIG51bWJlciBvZiBncm91cHMgaW4gbGVmdCBpbnB1dCAqLwot CWxvbmcJCW51bUdyb3VwczsKKwlsb25nCQludW1Hcm91cHMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1 bWJsZV9pZ25vcmUpOwogfSBTZXRPcDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmlt bm9kZXMuaAppbmRleCA4MzllNzFkNTJmLi44NTcwMmY3NTA3IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMu aApAQCAtMTA3NSw4ICsxMDc1LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgU3ViTGluawogICovCiB0eXBl ZGVmIHN0cnVjdCBTdWJQbGFuCiB7Ci0JcGdfbm9kZV9hdHRyKG5vX3F1ZXJ5X2p1bWJsZSkKLQog CUV4cHIJCXhwcjsKIAkvKiBGaWVsZHMgY29waWVkIGZyb20gb3JpZ2luYWwgU3ViTGluazogKi8K IAlTdWJMaW5rVHlwZSBzdWJMaW5rVHlwZTsJLyogc2VlIGFib3ZlICovCkBAIC0xMTA3LDggKzEx MDUsOSBAQCB0eXBlZGVmIHN0cnVjdCBTdWJQbGFuCiAJTGlzdAkgICAqcGFyUGFyYW07CQkvKiBp bmRpY2VzIG9mIGlucHV0IFBhcmFtcyBmcm9tIHBhcmVudCBwbGFuICovCiAJTGlzdAkgICAqYXJn czsJCQkvKiBleHBycyB0byBwYXNzIGFzIHBhclBhcmFtIHZhbHVlcyAqLwogCS8qIEVzdGltYXRl ZCBleGVjdXRpb24gY29zdHM6ICovCi0JQ29zdAkJc3RhcnR1cF9jb3N0OwkvKiBvbmUtdGltZSBz ZXR1cCBjb3N0ICovCi0JQ29zdAkJcGVyX2NhbGxfY29zdDsJLyogY29zdCBmb3IgZWFjaCBzdWJw bGFuIGV2YWx1YXRpb24gKi8KKwlDb3N0CQlzdGFydHVwX2Nvc3QgcGdfbm9kZV9hdHRyKHF1ZXJ5 X2p1bWJsZV9pZ25vcmUpOyAvKiBvbmUtdGltZSBzZXR1cCBjb3N0ICovCisJQ29zdAkJcGVyX2Nh bGxfY29zdCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CS8qIGNvc3QgZm9yIGVh Y2ggc3VicGxhbgorCQkJCQkJCQkJCQkJCQkJCQkgKiBldmFsdWF0aW9uICovCiB9IFN1YlBsYW47 CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5oIGIv c3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0dXMuaAppbmRleCBkM2Q0ZmY2YzVjLi40Mzdh NGNlYzViIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5oCisr KyBiL3NyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVzLmgKQEAgLTE3MCw2ICsxNzAsOSBA QCB0eXBlZGVmIHN0cnVjdCBQZ0JhY2tlbmRTdGF0dXMKIAogCS8qIHF1ZXJ5IGlkZW50aWZpZXIs IG9wdGlvbmFsbHkgY29tcHV0ZWQgdXNpbmcgcG9zdF9wYXJzZV9hbmFseXplX2hvb2sgKi8KIAl1 aW50NjQJCXN0X3F1ZXJ5X2lkOworCisJLyogcGxhbiBpZGVudGlmaWVyLCBvcHRpb25hbGx5IGNv bXB1dGVkIGFmdGVyIHBsYW5uaW5nICovCisJdWludDY0CQlzdF9wbGFuX2lkOwogfSBQZ0JhY2tl bmRTdGF0dXM7CiAKIApAQCAtMzE2LDYgKzMxOSw3IEBAIGV4dGVybiB2b2lkIHBnc3RhdF9jbGVh cl9iYWNrZW5kX2FjdGl2aXR5X3NuYXBzaG90KHZvaWQpOwogLyogQWN0aXZpdHkgcmVwb3J0aW5n IGZ1bmN0aW9ucyAqLwogZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF9hY3Rpdml0eShCYWNrZW5k U3RhdGUgc3RhdGUsIGNvbnN0IGNoYXIgKmNtZF9zdHIpOwogZXh0ZXJuIHZvaWQgcGdzdGF0X3Jl cG9ydF9xdWVyeV9pZCh1aW50NjQgcXVlcnlfaWQsIGJvb2wgZm9yY2UpOworZXh0ZXJuIHZvaWQg cGdzdGF0X3JlcG9ydF9wbGFuX2lkKHVpbnQ2NCBxdWVyeV9pZCwgdWludDY0IHBsYW5faWQsIGJv b2wgZm9yY2UpOwogZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF90ZW1wZmlsZShzaXplX3QgZmls ZXNpemUpOwogZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF9hcHBuYW1lKGNvbnN0IGNoYXIgKmFw cG5hbWUpOwogZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF94YWN0X3RpbWVzdGFtcChUaW1lc3Rh bXBUeiB0c3RhbXApOwpAQCAtMzIzLDYgKzMyNyw3IEBAIGV4dGVybiBjb25zdCBjaGFyICpwZ3N0 YXRfZ2V0X2JhY2tlbmRfY3VycmVudF9hY3Rpdml0eShpbnQgcGlkLCBib29sIGNoZWNrVXNlcik7 CiBleHRlcm4gY29uc3QgY2hhciAqcGdzdGF0X2dldF9jcmFzaGVkX2JhY2tlbmRfYWN0aXZpdHko aW50IHBpZCwgY2hhciAqYnVmZmVyLAogCQkJCQkJCQkJCQkJCSAgIGludCBidWZsZW4pOwogZXh0 ZXJuIHVpbnQ2NCBwZ3N0YXRfZ2V0X215X3F1ZXJ5X2lkKHZvaWQpOworZXh0ZXJuIHVpbnQ2NCBw Z3N0YXRfZ2V0X215X3BsYW5faWQodm9pZCk7CiBleHRlcm4gQmFja2VuZFR5cGUgcGdzdGF0X2dl dF9iYWNrZW5kX3R5cGVfYnlfcHJvY19udW1iZXIoUHJvY051bWJlciBwcm9jTnVtYmVyKTsKIAog CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW4ub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluLm91dAppbmRleCBlZTMxZTQxZDUwLi44YmZh M2MxYTVmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW4ub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwbGFpbi5vdXQKQEAgLTY5OSw2ICs2 OTksMTcgQEAgc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluICh2ZXJib3NlKSBjcmVhdGUg dGFibGUgdGVzdF9jdGFzIGFzIHNlbGVjdCAxJyk7CiAgUXVlcnkgSWRlbnRpZmllcjogTgogKDMg cm93cykKIAorLS0gVGVzdCBjb21wdXRlX3BsYW5faWQKK3NldCBjb21wdXRlX3BsYW5faWQgPSBv bjsKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAodmVyYm9zZSkgc2VsZWN0ICogZnJv bSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVy ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy5p bnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICBPdXRwdXQ6IHEx LCBxMgorIFF1ZXJ5IElkZW50aWZpZXI6IE4KKyBQbGFuIElkZW50aWZpZXI6IE4KKyg0IHJvd3Mp CisKIC0tIFRlc3QgU0VSSUFMSVpFIG9wdGlvbgogc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBs YWluIChhbmFseXplLGJ1ZmZlcnMgb2ZmLHNlcmlhbGl6ZSkgc2VsZWN0ICogZnJvbSBpbnQ4X3Ri bCBpOCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5f ZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggMzM2MWY2YTY5Yy4uNjc3OGI3OWU2NSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE3NjAsOSArMTc2MCwxMCBAQCBwZ19zdGF0 X2FjdGl2aXR5fCBTRUxFQ1Qgcy5kYXRpZCwKICAgICBzLmJhY2tlbmRfeGlkLAogICAgIHMuYmFj a2VuZF94bWluLAogICAgIHMucXVlcnlfaWQsCisgICAgcy5wbGFuX2lkLAogICAgIHMucXVlcnks CiAgICAgcy5iYWNrZW5kX3R5cGUKLSAgIEZST00gKChwZ19zdGF0X2dldF9hY3Rpdml0eShOVUxM OjppbnRlZ2VyKSBzKGRhdGlkLCBwaWQsIHVzZXN5c2lkLCBhcHBsaWNhdGlvbl9uYW1lLCBzdGF0 ZSwgcXVlcnksIHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9ldmVudCwgeGFjdF9zdGFydCwgcXVlcnlf c3RhcnQsIGJhY2tlbmRfc3RhcnQsIHN0YXRlX2NoYW5nZSwgY2xpZW50X2FkZHIsIGNsaWVudF9o b3N0bmFtZSwgY2xpZW50X3BvcnQsIGJhY2tlbmRfeGlkLCBiYWNrZW5kX3htaW4sIGJhY2tlbmRf dHlwZSwgc3NsLCBzc2x2ZXJzaW9uLCBzc2xjaXBoZXIsIHNzbGJpdHMsIHNzbF9jbGllbnRfZG4s IHNzbF9jbGllbnRfc2VyaWFsLCBzc2xfaXNzdWVyX2RuLCBnc3NfYXV0aCwgZ3NzX3ByaW5jLCBn c3NfZW5jLCBnc3NfZGVsZWdhdGlvbiwgbGVhZGVyX3BpZCwgcXVlcnlfaWQpCisgICBGUk9NICgo cGdfc3RhdF9nZXRfYWN0aXZpdHkoTlVMTDo6aW50ZWdlcikgcyhkYXRpZCwgcGlkLCB1c2VzeXNp ZCwgYXBwbGljYXRpb25fbmFtZSwgc3RhdGUsIHF1ZXJ5LCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRf ZXZlbnQsIHhhY3Rfc3RhcnQsIHF1ZXJ5X3N0YXJ0LCBiYWNrZW5kX3N0YXJ0LCBzdGF0ZV9jaGFu Z2UsIGNsaWVudF9hZGRyLCBjbGllbnRfaG9zdG5hbWUsIGNsaWVudF9wb3J0LCBiYWNrZW5kX3hp ZCwgYmFja2VuZF94bWluLCBiYWNrZW5kX3R5cGUsIHNzbCwgc3NsdmVyc2lvbiwgc3NsY2lwaGVy LCBzc2xiaXRzLCBzc2xfY2xpZW50X2RuLCBzc2xfY2xpZW50X3NlcmlhbCwgc3NsX2lzc3Vlcl9k biwgZ3NzX2F1dGgsIGdzc19wcmluYywgZ3NzX2VuYywgZ3NzX2RlbGVnYXRpb24sIGxlYWRlcl9w aWQsIHF1ZXJ5X2lkLCBwbGFuX2lkKQogICAgICBMRUZUIEpPSU4gcGdfZGF0YWJhc2UgZCBPTiAo KHMuZGF0aWQgPSBkLm9pZCkpKQogICAgICBMRUZUIEpPSU4gcGdfYXV0aGlkIHUgT04gKChzLnVz ZXN5c2lkID0gdS5vaWQpKSk7CiBwZ19zdGF0X2FsbF9pbmRleGVzfCBTRUxFQ1QgYy5vaWQgQVMg cmVsaWQsCkBAIC0xODkwLDcgKzE4OTEsNyBAQCBwZ19zdGF0X2dzc2FwaXwgU0VMRUNUIHBpZCwK ICAgICBnc3NfcHJpbmMgQVMgcHJpbmNpcGFsLAogICAgIGdzc19lbmMgQVMgZW5jcnlwdGVkLAog ICAgIGdzc19kZWxlZ2F0aW9uIEFTIGNyZWRlbnRpYWxzX2RlbGVnYXRlZAotICAgRlJPTSBwZ19z dGF0X2dldF9hY3Rpdml0eShOVUxMOjppbnRlZ2VyKSBzKGRhdGlkLCBwaWQsIHVzZXN5c2lkLCBh cHBsaWNhdGlvbl9uYW1lLCBzdGF0ZSwgcXVlcnksIHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9ldmVu dCwgeGFjdF9zdGFydCwgcXVlcnlfc3RhcnQsIGJhY2tlbmRfc3RhcnQsIHN0YXRlX2NoYW5nZSwg Y2xpZW50X2FkZHIsIGNsaWVudF9ob3N0bmFtZSwgY2xpZW50X3BvcnQsIGJhY2tlbmRfeGlkLCBi YWNrZW5kX3htaW4sIGJhY2tlbmRfdHlwZSwgc3NsLCBzc2x2ZXJzaW9uLCBzc2xjaXBoZXIsIHNz bGJpdHMsIHNzbF9jbGllbnRfZG4sIHNzbF9jbGllbnRfc2VyaWFsLCBzc2xfaXNzdWVyX2RuLCBn c3NfYXV0aCwgZ3NzX3ByaW5jLCBnc3NfZW5jLCBnc3NfZGVsZWdhdGlvbiwgbGVhZGVyX3BpZCwg cXVlcnlfaWQpCisgICBGUk9NIHBnX3N0YXRfZ2V0X2FjdGl2aXR5KE5VTEw6OmludGVnZXIpIHMo ZGF0aWQsIHBpZCwgdXNlc3lzaWQsIGFwcGxpY2F0aW9uX25hbWUsIHN0YXRlLCBxdWVyeSwgd2Fp dF9ldmVudF90eXBlLCB3YWl0X2V2ZW50LCB4YWN0X3N0YXJ0LCBxdWVyeV9zdGFydCwgYmFja2Vu ZF9zdGFydCwgc3RhdGVfY2hhbmdlLCBjbGllbnRfYWRkciwgY2xpZW50X2hvc3RuYW1lLCBjbGll bnRfcG9ydCwgYmFja2VuZF94aWQsIGJhY2tlbmRfeG1pbiwgYmFja2VuZF90eXBlLCBzc2wsIHNz bHZlcnNpb24sIHNzbGNpcGhlciwgc3NsYml0cywgc3NsX2NsaWVudF9kbiwgc3NsX2NsaWVudF9z ZXJpYWwsIHNzbF9pc3N1ZXJfZG4sIGdzc19hdXRoLCBnc3NfcHJpbmMsIGdzc19lbmMsIGdzc19k ZWxlZ2F0aW9uLCBsZWFkZXJfcGlkLCBxdWVyeV9pZCwgcGxhbl9pZCkKICAgV0hFUkUgKGNsaWVu dF9wb3J0IElTIE5PVCBOVUxMKTsKIHBnX3N0YXRfaW98IFNFTEVDVCBiYWNrZW5kX3R5cGUsCiAg ICAgb2JqZWN0LApAQCAtMjA5Niw3ICsyMDk3LDcgQEAgcGdfc3RhdF9yZXBsaWNhdGlvbnwgU0VM RUNUIHMucGlkLAogICAgIHcuc3luY19wcmlvcml0eSwKICAgICB3LnN5bmNfc3RhdGUsCiAgICAg dy5yZXBseV90aW1lCi0gICBGUk9NICgocGdfc3RhdF9nZXRfYWN0aXZpdHkoTlVMTDo6aW50ZWdl cikgcyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwgc3RhdGUsIHF1ZXJ5 LCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQsIHhhY3Rfc3RhcnQsIHF1ZXJ5X3N0YXJ0LCBi YWNrZW5kX3N0YXJ0LCBzdGF0ZV9jaGFuZ2UsIGNsaWVudF9hZGRyLCBjbGllbnRfaG9zdG5hbWUs IGNsaWVudF9wb3J0LCBiYWNrZW5kX3hpZCwgYmFja2VuZF94bWluLCBiYWNrZW5kX3R5cGUsIHNz bCwgc3NsdmVyc2lvbiwgc3NsY2lwaGVyLCBzc2xiaXRzLCBzc2xfY2xpZW50X2RuLCBzc2xfY2xp ZW50X3NlcmlhbCwgc3NsX2lzc3Vlcl9kbiwgZ3NzX2F1dGgsIGdzc19wcmluYywgZ3NzX2VuYywg Z3NzX2RlbGVnYXRpb24sIGxlYWRlcl9waWQsIHF1ZXJ5X2lkKQorICAgRlJPTSAoKHBnX3N0YXRf Z2V0X2FjdGl2aXR5KE5VTEw6OmludGVnZXIpIHMoZGF0aWQsIHBpZCwgdXNlc3lzaWQsIGFwcGxp Y2F0aW9uX25hbWUsIHN0YXRlLCBxdWVyeSwgd2FpdF9ldmVudF90eXBlLCB3YWl0X2V2ZW50LCB4 YWN0X3N0YXJ0LCBxdWVyeV9zdGFydCwgYmFja2VuZF9zdGFydCwgc3RhdGVfY2hhbmdlLCBjbGll bnRfYWRkciwgY2xpZW50X2hvc3RuYW1lLCBjbGllbnRfcG9ydCwgYmFja2VuZF94aWQsIGJhY2tl bmRfeG1pbiwgYmFja2VuZF90eXBlLCBzc2wsIHNzbHZlcnNpb24sIHNzbGNpcGhlciwgc3NsYml0 cywgc3NsX2NsaWVudF9kbiwgc3NsX2NsaWVudF9zZXJpYWwsIHNzbF9pc3N1ZXJfZG4sIGdzc19h dXRoLCBnc3NfcHJpbmMsIGdzc19lbmMsIGdzc19kZWxlZ2F0aW9uLCBsZWFkZXJfcGlkLCBxdWVy eV9pZCwgcGxhbl9pZCkKICAgICAgSk9JTiBwZ19zdGF0X2dldF93YWxfc2VuZGVycygpIHcocGlk LCBzdGF0ZSwgc2VudF9sc24sIHdyaXRlX2xzbiwgZmx1c2hfbHNuLCByZXBsYXlfbHNuLCB3cml0 ZV9sYWcsIGZsdXNoX2xhZywgcmVwbGF5X2xhZywgc3luY19wcmlvcml0eSwgc3luY19zdGF0ZSwg cmVwbHlfdGltZSkgT04gKChzLnBpZCA9IHcucGlkKSkpCiAgICAgIExFRlQgSk9JTiBwZ19hdXRo aWQgdSBPTiAoKHMudXNlc3lzaWQgPSB1Lm9pZCkpKTsKIHBnX3N0YXRfcmVwbGljYXRpb25fc2xv dHN8IFNFTEVDVCBzLnNsb3RfbmFtZSwKQEAgLTIxMzAsNyArMjEzMSw3IEBAIHBnX3N0YXRfc3Ns fCBTRUxFQ1QgcGlkLAogICAgIHNzbF9jbGllbnRfZG4gQVMgY2xpZW50X2RuLAogICAgIHNzbF9j bGllbnRfc2VyaWFsIEFTIGNsaWVudF9zZXJpYWwsCiAgICAgc3NsX2lzc3Vlcl9kbiBBUyBpc3N1 ZXJfZG4KLSAgIEZST00gcGdfc3RhdF9nZXRfYWN0aXZpdHkoTlVMTDo6aW50ZWdlcikgcyhkYXRp ZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwgc3RhdGUsIHF1ZXJ5LCB3YWl0X2V2 ZW50X3R5cGUsIHdhaXRfZXZlbnQsIHhhY3Rfc3RhcnQsIHF1ZXJ5X3N0YXJ0LCBiYWNrZW5kX3N0 YXJ0LCBzdGF0ZV9jaGFuZ2UsIGNsaWVudF9hZGRyLCBjbGllbnRfaG9zdG5hbWUsIGNsaWVudF9w b3J0LCBiYWNrZW5kX3hpZCwgYmFja2VuZF94bWluLCBiYWNrZW5kX3R5cGUsIHNzbCwgc3NsdmVy c2lvbiwgc3NsY2lwaGVyLCBzc2xiaXRzLCBzc2xfY2xpZW50X2RuLCBzc2xfY2xpZW50X3Nlcmlh bCwgc3NsX2lzc3Vlcl9kbiwgZ3NzX2F1dGgsIGdzc19wcmluYywgZ3NzX2VuYywgZ3NzX2RlbGVn YXRpb24sIGxlYWRlcl9waWQsIHF1ZXJ5X2lkKQorICAgRlJPTSBwZ19zdGF0X2dldF9hY3Rpdml0 eShOVUxMOjppbnRlZ2VyKSBzKGRhdGlkLCBwaWQsIHVzZXN5c2lkLCBhcHBsaWNhdGlvbl9uYW1l LCBzdGF0ZSwgcXVlcnksIHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9ldmVudCwgeGFjdF9zdGFydCwg cXVlcnlfc3RhcnQsIGJhY2tlbmRfc3RhcnQsIHN0YXRlX2NoYW5nZSwgY2xpZW50X2FkZHIsIGNs aWVudF9ob3N0bmFtZSwgY2xpZW50X3BvcnQsIGJhY2tlbmRfeGlkLCBiYWNrZW5kX3htaW4sIGJh Y2tlbmRfdHlwZSwgc3NsLCBzc2x2ZXJzaW9uLCBzc2xjaXBoZXIsIHNzbGJpdHMsIHNzbF9jbGll bnRfZG4sIHNzbF9jbGllbnRfc2VyaWFsLCBzc2xfaXNzdWVyX2RuLCBnc3NfYXV0aCwgZ3NzX3By aW5jLCBnc3NfZW5jLCBnc3NfZGVsZWdhdGlvbiwgbGVhZGVyX3BpZCwgcXVlcnlfaWQsIHBsYW5f aWQpCiAgIFdIRVJFIChjbGllbnRfcG9ydCBJUyBOT1QgTlVMTCk7CiBwZ19zdGF0X3N1YnNjcmlw dGlvbnwgU0VMRUNUIHN1Lm9pZCBBUyBzdWJpZCwKICAgICBzdS5zdWJuYW1lLApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXhwbGFpbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9leHBsYWluLnNxbAppbmRleCAwYmFmYTg3MDQ5Li5kNzg3YWQyY2RhIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9leHBsYWluLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9leHBsYWluLnNxbApAQCAtMTY3LDYgKzE2NywxMCBAQCBzZWxlY3QgZXhwbGFpbl9maWx0ZXIo J2V4cGxhaW4gKHZlcmJvc2UpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKIHNlbGVjdCBl eHBsYWluX2ZpbHRlcignZXhwbGFpbiAodmVyYm9zZSkgZGVjbGFyZSB0ZXN0X2N1ciBjdXJzb3Ig Zm9yIHNlbGVjdCAqIGZyb20gaW50OF90YmwnKTsKIHNlbGVjdCBleHBsYWluX2ZpbHRlcignZXhw bGFpbiAodmVyYm9zZSkgY3JlYXRlIHRhYmxlIHRlc3RfY3RhcyBhcyBzZWxlY3QgMScpOwogCist LSBUZXN0IGNvbXB1dGVfcGxhbl9pZAorc2V0IGNvbXB1dGVfcGxhbl9pZCA9IG9uOworc2VsZWN0 IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluICh2ZXJib3NlKSBzZWxlY3QgKiBmcm9tIGludDhfdGJs IGk4Jyk7CisKIC0tIFRlc3QgU0VSSUFMSVpFIG9wdGlvbgogc2VsZWN0IGV4cGxhaW5fZmlsdGVy KCdleHBsYWluIChhbmFseXplLGJ1ZmZlcnMgb2ZmLHNlcmlhbGl6ZSkgc2VsZWN0ICogZnJvbSBp bnQ4X3RibCBpOCcpOwogc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLHNl cmlhbGl6ZSB0ZXh0LGJ1ZmZlcnMsdGltaW5nIG9mZikgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBp OCcpOwotLSAKMi40Ny4xCgo= --000000000000a01605062d839e08--