Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vgdNk-00GSu7-3C for pgsql-hackers@arkaria.postgresql.org; Fri, 16 Jan 2026 06:32:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vgdNk-001FWF-0L for pgsql-hackers@arkaria.postgresql.org; Fri, 16 Jan 2026 06:32:28 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vgdNj-001FW7-1i for pgsql-hackers@lists.postgresql.org; Fri, 16 Jan 2026 06:32:28 +0000 Received: from mail-lj1-x22b.google.com ([2a00:1450:4864:20::22b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vgdNh-000leE-2H for pgsql-hackers@lists.postgresql.org; Fri, 16 Jan 2026 06:32:27 +0000 Received: by mail-lj1-x22b.google.com with SMTP id 38308e7fff4ca-382f9211cbfso14819181fa.0 for ; Thu, 15 Jan 2026 22:32:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768545144; x=1769149944; 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=RCFnWBC7/7i29zkUciW8/8OsI1avvpM5HD41MWRSqag=; b=kR5Kmu4isO27xL0JH6kenMGWVlNahk6nN9QowcF8xbq9Dp83v6vNZ2luh1f3geB7vl 22BqKSZZ4ZH54Vr1h26kj+SGWcaYpMJkDOW72WGEapEvAcSPfASqE+p5SUBnNtZFJCqQ amP3CjGz/Bl2qr8LgBYVs4MbOdNw00EijtacP2rMZb3Qa2tqmfgXWJk0UgY60HIGWD+k Sp7UkM1JHl5VmeqceCrhIFaLfyU3KQyzD8ot2Y6r47mqIdVP+xQ5pqGKUyJxwJvk50hE cZRKFI7YIkX91aNoiumZ4dvq93FmxszEbUXNHfk6H9rfQBjmDFiBI/6Zfm5jJjLWZ0MV 9FUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768545144; x=1769149944; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=RCFnWBC7/7i29zkUciW8/8OsI1avvpM5HD41MWRSqag=; b=h9YCGy5l1ag6pwwMDNNQ5+naqBEfCpTRgAIrLerzy+Z47HQlgw6pTQmHov+u9WhXVl mA029RxI2L1vsrVA1Zge1gx2e9Ucfs8QskAXR4c7wDM0FIRzTTFryUnkVKhLpxS260aB +2wXdMxuqxvNL5bdz8F+lToVtcY1ts4tbT3R3W3JGFNxXVWiXeo2fBR1F9Tmlf49o3qi XiWMeItvoT9BUs247kn9kivQHqWoVr0jyLFlliYe/OgywwNYdCsQrrENJcbnNeQSs5tL CcVw6Ep8HToT+626JVkBln1NY5xEPAs4CxR9d52KTWSIEbj1dQ69uGhdMFSGuAMu7ttO D5nQ== X-Forwarded-Encrypted: i=1; AJvYcCW9WkPk+Gp+boxlh/1OdPP+6osgGt17e0K+dEmWkT2JPuD39uOIl5OEyrf/xYHMq4n//nMvQa2wQCiNUM6L@lists.postgresql.org X-Gm-Message-State: AOJu0YxBNjLIXt1Cm5BNns7gx2QYTd5h+kHCTAlhHfILKFaYmlNxQ8dq aIshjcFxKZantU68ggtL5i45cwMJGnZ7kBcJg6tkuqVGU483KTxU0QW9DEuka1OxCh6AuiXzjmh VPkab/yU0GlxcwhxRacpeQtQ/JTRJO6A= X-Gm-Gg: AY/fxX5CJHwGyFUmiPnhAuWnYn0RcNCqoDV78ky3hTKthqT84Ad0KFcnpO2QNyQvuiI Qva2eUFcEQBbWO9AG5iEsg3RI95kF3fXT1r6XVuAaNVNvuxSlM5DdN6n2N4RwJqNKq4Pj1uwbpj 9bLSdC7ZgvwipOBSwmBUWBe3tWy8Fk3YuMPqtSPh0GmQcBCccC2kaEUZv2tCf95qNMlqJaH+2N8 kRa0psEkiWD2usQuB+JphvUOU0WUf5Z6od3GWubr1Jlm+SC0UGtyxFSYoDAGFmFrZC7jWMBqYGK 67RYzh3V0GqFvIrv5zxmxa7znw== X-Received: by 2002:a2e:a595:0:b0:37f:cc09:319c with SMTP id 38308e7fff4ca-383866d093fmr4487041fa.15.1768545143587; Thu, 15 Jan 2026 22:32:23 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Dilip Kumar Date: Fri, 16 Jan 2026 12:02:06 +0530 X-Gm-Features: AZwV_QgWZzcWH4vQFoTgd_tnDsJqHwf94EpQziOsgzVjCJEz6uZkVuRCEz1F9Sc Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Amit Kapila Cc: shveta malik , Peter Smith , vignesh C , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000000db5ba06487b8131" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000db5ba06487b8131 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jan 14, 2026 at 5:09=E2=80=AFPM Dilip Kumar = wrote: > > On Wed, Jan 14, 2026 at 3:59=E2=80=AFPM Amit Kapila wrote: > > > > On Tue, Jan 13, 2026 at 6:15=E2=80=AFPM Dilip Kumar wrote: > > > > > > On Tue, Jan 13, 2026 at 5:02=E2=80=AFPM shveta malik wrote: > > > > > > > > On Tue, Jan 13, 2026 at 4:09=E2=80=AFPM Dilip Kumar wrote: > > > > > > > > > > On Tue, Jan 13, 2026 at 3:59=E2=80=AFPM shveta malik wrote: > > > > > > > > > > > > On Sat, Jan 10, 2026 at 6:45=E2=80=AFPM Dilip Kumar wrote: > > > > > > > > > > > > > >> > > > > > > > Here is the updated patch > > > > > > > > > > > > > > > > > > > Thanks, I will review the code. Few concerns while experimentin= g with 001 alone: > > > > > > > > > > > > 1) > > > > > > I am able to insert and update rows in pg_conflict.pg_conflict_= 16394. > > > > > > It should be restricted. > > > > > > > > > > > > 2) > > > > > > I think we need to block 'SELECT for UPDATE' and similar operat= ions on > > > > > > CLT. Currently it is allowed on CLT. > > > > > > See this: > > > > > > > > > > > > postgres=3D# SELECT * FROM pg_toast.pg_toast_3466 for UPDATE; > > > > > > ERROR: cannot lock rows in TOAST relation "pg_toast_3466" > > > > > > postgres=3D# SELECT * FROM pg_conflict.pg_conflict_16394 for UP= DATE; > > > > > > .... > > > > > > > > > > I sent an analysis on this a few days ago but realized it only we= nt to > > > > > Amit. Resending to the full list: > > > > > > > > > > So the summary is, currently, all INSERT/UPDATE/DELETE operations= are > > > > > blocked for TOAST tables for safety. However, I have allowed thes= e > > > > > operations for the pg-conflict table. Unlike TOAST, the system do= es > > > > > not internally reference conflict data, so user manipulation does= n't > > > > > pose a safety risk to the system. If a user modifies or deletes t= his > > > > > data, they simply lose their logs without impacting system stabil= ity. > > > > > What are your thoughts on this approach? > > > > > > > > > > > > > I don=E2=80=99t see a strong reason for a user to manually perform = INSERT or > > > > UPDATE here. But on rethinking, I also agree that allowing it does = no > > > > harm. It simply gives the user flexibility to modify data they =E2= =80=9Cown=E2=80=9D, > > > > i.e., data that the system does not internally reference. Personall= y, > > > > I=E2=80=99m okay with leaving it unrestricted, but it will be good = to document > > > > it as a NOTE/CAUTION, stating that these DML operations are allowed > > > > and it is the user=E2=80=99s responsibility to manage any changes t= hey make > > > > manually. > > > > > > To clarify, I=E2=80=99m allowing INSERT and UPDATE alongside DELETE n= ot > > > because I anticipate a specific use case, but to avoid adding > > > unnecessary code complexity. Since restricting these operations isn't > > > a safety requirement, I felt it was better to keep the implementation > > > simple rather than adding extra checks that don't provide real value. > > > > > > > What kind of complexity you are anticipating, can you show by top-up > > patch? I think allowing just DELETE and TRUNCATE to table owners would > > be ideal. > > I mean by code complexity i.e. additional check for DELETE/TRUNCATE, > but if we think that's ideal, I can update it. > > > > So let's get consensus on this decision and then we can change accord= ingly. > > > > > > > > > > > > > >> I Wrote > > > > > > I have been exploring the enforcement of these restrictions. > > > > > > Currently, DML is validated via CheckValidResultRel(). If we do= not > > > > > > explicitly check for the conflict log table in that function, D= ML > > > > > > operations, including DELETE, will be permitted. While I am not= overly > > > > > > concerned about users attempting manual INSERT or UPDATE operat= ions. > > > > > > > > > > > Now for TRUNCATE, the truncate_check_rel() currently relies on > > > > > > IsSystemClass() to restrict truncations. Since the conflict nam= espace > > > > > > is included in IsSystemClass() to prevent unauthorized DDL, TRU= NCATE > > > > > > is blocked by default. We could allow it by adding an exception= in > > > > > > truncate_check_rel() (e.g., IsSystemClass() && > > > > > > !IsConflictNamespace()), but I am unsure if this is necessary. = Do we > > > > > > really need to permit TRUNCATE, or is allowing DELETE sufficien= t for > > > > > > user-driven cleanup? > > > > > > > > > > > > > I am okay if we allow DELETE alone. > > > > > > Thanks for your opinion. > > > > > > > > > > > > > > > > > > > > > 3) > > > > > > We currently skip ANALYZE on TOAST tables, but I=E2=80=99m not = sure whether > > > > > > the same restriction should apply to CLT. Since users are expec= ted to > > > > > > query CLT frequently, collecting statistics could be beneficial= . Even > > > > > > though there are currently no indexes or other structures to en= able > > > > > > more optimal plans, having statistics should not harm. Thoughts= ? > > > > > > > > > > > > postgres=3D# analyze pg_toast.pg_toast_16399; > > > > > > WARNING: skipping "pg_toast_16399" --- cannot analyze non-tabl= es or > > > > > > special system tables > > > > > > > > > > > > postgres=3D# analyze pg_conflict.pg_conflict_16394; > > > > > > ANALYZE > > > > > > > > > > I think its good to ANALYZE CLT data because user logically never= need > > > > > to query the toast data, but they would have to query the conflic= t > > > > > data. > > > > > > > > Right. Do you think we shall allow index creation as well on this > > > > table? It may help if the table is huge. As an example, a user can > > > > create an index on relid to query it faster. Currently it is not > > > > allowed. So now I have changed this so DELETE/TRUNCATE are allowed and other DML/DDLs are not allowed, added tests for the same, fixed other open comments from Peter and also added clt name in \dRs+, haven't added test for that because it will display the dynamic table name, not sure what's the best way to hide that and if we hide then what the purpose of that test anyway because there are other test for \dRs+ when log destination is log. -- Regards, Dilip Kumar Google --0000000000000db5ba06487b8131 Content-Type: application/x-patch; name="v22-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v22-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkghc3h41 RnJvbSA3NThmZDBhZjk5ZWRmZDBjNTViZmY4ZjIzZDVlYWIzMjEwMjc5MGVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogTW9uLCAxMiBKYW4gMjAyNiAyMDoyMTowMyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjIy IDIvM10gSW1wbGVtZW50IHRoZSBjb25mbGljdCBpbnNlcnRpb24gaW5mcmFzdHJ1Y3R1cmUgZm9y CiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCgpUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIGNvcmUg bG9naWMgdG8gcG9wdWxhdGUgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3aGVuZXZlcgphIGxvZ2lj YWwgcmVwbGljYXRpb24gY29uZmxpY3QgaXMgZGV0ZWN0ZWQuIEl0IGNhcHR1cmVzIHRoZSByZW1v dGUgdHJhbnNhY3Rpb24KZGV0YWlscyBhbG9uZyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGxvY2Fs IHN0YXRlIGF0IHRoZSB0aW1lIG9mIHRoZSBjb25mbGljdC4KCkhhbmRsaW5nIE11bHRpLXJvdyBD b25mbGljdHM6IEEgc2luZ2xlIHJlbW90ZSB0dXBsZSBtYXkgY29uZmxpY3Qgd2l0aCBtdWx0aXBs ZQpsb2NhbCB0dXBsZXMgKGUuZy4sIGluIHRoZSBjYXNlIG9mIG11bHRpcGxlX3VuaXF1ZV9jb25m bGljdHMpLiBUbyBoYW5kbGUgdGhpcywKdGhlIGluZnJhc3RydWN0dXJlIGNyZWF0ZXMgYSBzaW5n bGUgcm93IGluIHRoZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIGVhY2gKcmVtb3RlIHR1cGxlLiBU aGUgZGV0YWlscyBvZiBhbGwgY29uZmxpY3RpbmcgbG9jYWwgcm93cyBhcmUgYWdncmVnYXRlZCBp bnRvIGEKc2luZ2xlIEpTT04gYXJyYXkgaW4gdGhlIGxvY2FsX2NvbmZsaWN0cyBjb2x1bW4uCgpU aGUgSlNPTiBhcnJheSB1c2VzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlZCBmb3JtYXQ6ClsgeyAi eGlkIjogIjEwMDEiLCAiY29tbWl0X3RzIjogIjIwMjUtMTItMjUgMTA6MDA6MDArMDU6MzAiLCAi b3JpZ2luIjogIm5vZGVfMSIsCiJrZXkiOiB7ImlkIjogMX0sICJ0dXBsZSI6IHsiaWQiOiAxLCAi dmFsIjogIm9sZF9kYXRhIn0gfSwgLi4uIF0KCkV4YW1wbGUgb2YgcXVlcnlpbmcgdGhlIHN0cnVj dHVyZWQgY29uZmxpY3QgZGF0YToKClNFTEVDVCByZW1vdGVfeGlkLCByZWxuYW1lLCByZW1vdGVf b3JpZ2luLCBsb2NhbF9jb25mbGljdHNbMV0gLT4+ICd4aWQnIEFTIGxvY2FsX3hpZCwKICAgICAg IGxvY2FsX2NvbmZsaWN0c1sxXSAtPj4gJ3R1cGxlJyBBUyBsb2NhbF90dXBsZQpGUk9NIG15c2No ZW1hLmNvbmZsaWN0X2xvZ19oaXN0b3J5MjsKCiByZW1vdGVfeGlkIHwgcmVsbmFtZSAgfCByZW1v dGVfb3JpZ2luIHwgbG9jYWxfeGlkIHwgICAgIGxvY2FsX3R1cGxlCi0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAgICAgICA3NjAgfCB0ZXN0ICAgICB8IHBnXzE2NDA2ICAgICAgfCA3NzEgICAgICAgfCB7ImEi OjEsImIiOjEwfQogICAgICAgIDc2NSB8IGNvbmZfdGFiIHwgcGdfMTY0MDYgICAgICB8IDc3NSAg ICAgICB8IHsiYSI6MiwiYiI6MiwiYyI6Mn0KLS0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL2NvbmZsaWN0LmMgfCA1NjEgKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMgfCAgIDEgKwogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC93b3JrZXIuYyAgIHwgIDMxICstCiBzcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi9jb25mbGljdC5oICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v d29ya2VyX2ludGVybmFsLmggIHwgICA3ICsKIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9j b25mbGljdHMucGwgICB8ICA0NyArLQogNiBmaWxlcyBjaGFuZ2VkLCA2MDUgaW5zZXJ0aW9ucygr KSwgNDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9jb25mbGljdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25m bGljdC5jCmluZGV4IDkzMjIyZWUzYjg4Li45OWEzODFjZjczYiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpAQCAtMTUsMTMgKzE1LDIxIEBACiAjaW5jbHVk ZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImFjY2Vzcy9jb21taXRfdHMuaCIKKyNpbmNsdWRl ICJhY2Nlc3MvaGVhcGFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlYW0uaCIKKyNpbmNsdWRl ICJjb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0 b3IuaCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVk ZSAicmVwbGljYXRpb24vY29uZmxpY3QuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJf aW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9h cnJheS5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZm1n cm9pZHMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9w Z19sc24uaCIKKyNpbmNsdWRlICJ1dGlscy9qc29uLmgiCiAKIHN0YXRpYyBjb25zdCBjaGFyICpj b25zdCBDb25mbGljdFR5cGVOYW1lc1tdID0gewogCVtDVF9JTlNFUlRfRVhJU1RTXSA9ICJpbnNl cnRfZXhpc3RzIiwKQEAgLTM0LDYgKzQyLDE4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBD b25mbGljdFR5cGVOYW1lc1tdID0gewogCVtDVF9NVUxUSVBMRV9VTklRVUVfQ09ORkxJQ1RTXSA9 ICJtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIgogfTsKIAorLyogU2NoZW1hIGZvciB0aGUgZWxl bWVudHMgd2l0aGluIHRoZSAnbG9jYWxfY29uZmxpY3RzJyBKU09OIGFycmF5ICovCitzdGF0aWMg Y29uc3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYgTG9jYWxDb25mbGljdFNjaGVtYVtdID0KK3sKKwl7 IC5hdHRuYW1lID0gInhpZCIsICAgICAgIC5hdHR0eXBpZCA9IFhJRE9JRCB9LAorCXsgLmF0dG5h bWUgPSAiY29tbWl0X3RzIiwgLmF0dHR5cGlkID0gVElNRVNUQU1QVFpPSUQgfSwKKwl7IC5hdHRu YW1lID0gIm9yaWdpbiIsICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0g ImtleSIsICAgICAgIC5hdHR0eXBpZCA9IEpTT05PSUQgfSwKKwl7IC5hdHRuYW1lID0gInR1cGxl IiwgICAgIC5hdHR0eXBpZCA9IEpTT05PSUQgfQorfTsKKworI2RlZmluZSBNQVhfTE9DQUxfQ09O RkxJQ1RfSU5GT19BVFRSUyBsZW5ndGhvZihMb2NhbENvbmZsaWN0U2NoZW1hKQorCiBzdGF0aWMg aW50CWVycmNvZGVfYXBwbHlfY29uZmxpY3QoQ29uZmxpY3RUeXBlIHR5cGUpOwogc3RhdGljIHZv aWQgZXJyZGV0YWlsX2FwcGx5X2NvbmZsaWN0KEVTdGF0ZSAqZXN0YXRlLAogCQkJCQkJCQkJIFJl c3VsdFJlbEluZm8gKnJlbGluZm8sCkBAIC01MCw4ICs3MCwyNyBAQCBzdGF0aWMgY2hhciAqYnVp bGRfdHVwbGVfdmFsdWVfZGV0YWlscyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVs aW5mbywKIAkJCQkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpsb2NhbHNsb3QsCiAJCQkJCQkJCQkg ICBUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCwKIAkJCQkJCQkJCSAgIE9pZCBpbmRleG9pZCk7 CitzdGF0aWMgdm9pZCBidWlsZF9pbmRleF9kYXR1bXNfZnJvbV9zbG90KEVTdGF0ZSAqZXN0YXRl LCBSZWxhdGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkJCQkgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCisJ CQkJCQkJCQkJIFJlbGF0aW9uIGluZGV4RGVzYywgRGF0dW0gKnZhbHVlcywKKwkJCQkJCQkJCQkg Ym9vbCAqaXNudWxsKTsKIHN0YXRpYyBjaGFyICpidWlsZF9pbmRleF92YWx1ZV9kZXNjKEVTdGF0 ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwKIAkJCQkJCQkJCVR1cGxlVGFibGVTbG90ICpz bG90LCBPaWQgaW5kZXhvaWQpOworc3RhdGljIERhdHVtIHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNv bl9kYXR1bShUdXBsZVRhYmxlU2xvdCAqc2xvdCk7CitzdGF0aWMgRGF0dW0gdHVwbGVfdGFibGVf c2xvdF90b19pbmRleHR1cF9qc29uKEVTdGF0ZSAqZXN0YXRlLAorCQkJCQkJCQkJCQkgICBSZWxh dGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkJCQkJICAgT2lkIHJlcGxpY2FfaW5kZXgsCisJCQkJCQkJ CQkJCSAgIFR1cGxlVGFibGVTbG90ICpzbG90KTsKK3N0YXRpYyBUdXBsZURlc2MgYnVpbGRfY29u ZmxpY3RfdHVwbGVkZXNjKHZvaWQpOworc3RhdGljIERhdHVtIGJ1aWxkX2xvY2FsX2NvbmZsaWN0 c19qc29uX2FycmF5KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiByZWwsCisJCQkJCQkJCQkJCSAg Q29uZmxpY3RUeXBlIGNvbmZsaWN0X3R5cGUsCisJCQkJCQkJCQkJCSAgTGlzdCAqY29uZmxpY3R0 dXBsZXMpOworc3RhdGljIHZvaWQgcHJlcGFyZV9jb25mbGljdF9sb2dfdHVwbGUoRVN0YXRlICpl c3RhdGUsIFJlbGF0aW9uIHJlbCwKKwkJCQkJCQkJCSAgIFJlbGF0aW9uIGNvbmZsaWN0bG9ncmVs LAorCQkJCQkJCQkJICAgQ29uZmxpY3RUeXBlIGNvbmZsaWN0X3R5cGUsCisJCQkJCQkJCQkgICBU dXBsZVRhYmxlU2xvdCAqc2VhcmNoc2xvdCwKKwkJCQkJCQkJCSAgIExpc3QgKmNvbmZsaWN0dHVw bGVzLAorCQkJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnJlbW90ZXNsb3QpOwogCiAvKgogICog R2V0IHRoZSB4bWluIGFuZCBjb21taXQgdGltZXN0YW1wIGRhdGEgKG9yaWdpbiBhbmQgdGltZXN0 YW1wKSBhc3NvY2lhdGVkCkBAIC0xMDUsMzAgKzE0NCw5MCBAQCBSZXBvcnRBcHBseUNvbmZsaWN0 KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLCBpbnQgZWxldmVsLAogCQkJ CQlDb25mbGljdFR5cGUgdHlwZSwgVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNsb3QsCiAJCQkJCVR1 cGxlVGFibGVTbG90ICpyZW1vdGVzbG90LCBMaXN0ICpjb25mbGljdHR1cGxlcykKIHsKLQlSZWxh dGlvbglsb2NhbHJlbCA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKLQlTdHJpbmdJbmZvRGF0 YSBlcnJfZGV0YWlsOworCVJlbGF0aW9uCQlsb2NhbHJlbCA9IHJlbGluZm8tPnJpX1JlbGF0aW9u RGVzYzsKKwlDb25mbGljdExvZ0Rlc3QJZGVzdDsKKwlSZWxhdGlvbgkJY29uZmxpY3Rsb2dyZWw7 CisJYm9vbAkJCWxvZ19kZXN0X2NsdDsKKwlib29sIAkJCWxvZ19kZXN0X2xvZ2ZpbGU7CiAKLQlp bml0U3RyaW5nSW5mbygmZXJyX2RldGFpbCk7CisJcGdzdGF0X3JlcG9ydF9zdWJzY3JpcHRpb25f Y29uZmxpY3QoTXlTdWJzY3JpcHRpb24tPm9pZCwgdHlwZSk7CiAKLQkvKiBGb3JtIGVycmRldGFp bCBtZXNzYWdlIGJ5IGNvbWJpbmluZyBjb25mbGljdGluZyB0dXBsZXMgaW5mb3JtYXRpb24uICov Ci0JZm9yZWFjaF9wdHIoQ29uZmxpY3RUdXBsZUluZm8sIGNvbmZsaWN0dHVwbGUsIGNvbmZsaWN0 dHVwbGVzKQotCQllcnJkZXRhaWxfYXBwbHlfY29uZmxpY3QoZXN0YXRlLCByZWxpbmZvLCB0eXBl LCBzZWFyY2hzbG90LAotCQkJCQkJCQkgY29uZmxpY3R0dXBsZS0+c2xvdCwgcmVtb3Rlc2xvdCwK LQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPmluZGV4b2lkLAotCQkJCQkJCQkgY29uZmxpY3R0dXBs ZS0+eG1pbiwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPm9yaWdpbiwKLQkJCQkJCQkJIGNvbmZs aWN0dHVwbGUtPnRzLAotCQkJCQkJCQkgJmVycl9kZXRhaWwpOworCS8qCisJICogR2V0IHRoZSBj b25mbGljdCBsb2cgZGVzdGluYXRpb24uIEFsc28sIChpZiB0aGVyZSBpcyBvbmUpIHJldHVybiB0 aGUKKwkgKiBDTFQgcmVsYXRpb24gYWxyZWFkeSBvcGVuZWQgYW5kIHJlYWR5IGZvciBpbnNlcnRp b24uCisJICovCisJY29uZmxpY3Rsb2dyZWwgPSBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZSgm ZGVzdCk7CiAKLQlwZ3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlvbl9jb25mbGljdChNeVN1YnNjcmlw dGlvbi0+b2lkLCB0eXBlKTsKKwlsb2dfZGVzdF9jbHQgPSAoKGRlc3QgJiBDT05GTElDVF9MT0df REVTVF9UQUJMRSkgIT0gMCk7CisJbG9nX2Rlc3RfbG9nZmlsZSA9ICgoZGVzdCAmIENPTkZMSUNU X0xPR19ERVNUX0xPRykgIT0gMCk7CisKKwkvKiBJbnNlcnQgdG8gdGFibGUgaWYgcmVxdWVzdGVk LiAqLworCWlmIChsb2dfZGVzdF9jbHQpCisJeworCQlBc3NlcnQoY29uZmxpY3Rsb2dyZWwgIT0g TlVMTCk7CisKKwkJLyoKKwkJICogUHJlcGFyZSB0aGUgY29uZmxpY3QgbG9nIHR1cGxlLiBJZiB0 aGUgZXJyb3IgbGV2ZWwgaXMgYmVsb3cgRVJST1IsCisJCSAqIGluc2VydCBpdCBpbW1lZGlhdGVs eS4gT3RoZXJ3aXNlLCBkZWZlciB0aGUgaW5zZXJ0aW9uIHRvIGEgbmV3CisJCSAqIHRyYW5zYWN0 aW9uIGFmdGVyIHRoZSBjdXJyZW50IG9uZSBhYm9ydHMsIGVuc3VyaW5nIHRoZSBpbnNlcnRpb24g b2YKKwkJICogdGhlIGxvZyB0dXBsZSBpcyBub3Qgcm9sbGVkIGJhY2suCisJCSAqLworCQlwcmVw YXJlX2NvbmZsaWN0X2xvZ190dXBsZShlc3RhdGUsCisJCQkJCQkJCSAgIHJlbGluZm8tPnJpX1Jl bGF0aW9uRGVzYywKKwkJCQkJCQkJICAgY29uZmxpY3Rsb2dyZWwsCisJCQkJCQkJCSAgIHR5cGUs CisJCQkJCQkJCSAgIHNlYXJjaHNsb3QsCisJCQkJCQkJCSAgIGNvbmZsaWN0dHVwbGVzLAorCQkJ CQkJCQkgICByZW1vdGVzbG90KTsKKwkJaWYgKGVsZXZlbCA8IEVSUk9SKQorCQkJSW5zZXJ0Q29u ZmxpY3RMb2dUdXBsZShjb25mbGljdGxvZ3JlbCk7CisKKwkJaWYgKCFsb2dfZGVzdF9sb2dmaWxl KQorCQl7CisJCQkvKgorCQkJICogTm90IGxvZ2dpbmcgY29uZmxpY3QgZGV0YWlscyB0byB0aGUg c2VydmVyIGxvZzsgUmVwb3J0IHRoZSBlcnJvcgorCQkJICogbXNnIGJ1dCBvbWl0IHJhdyB0dXBs ZSBkYXRhIGZyb20gc2VydmVyIGxvZ3Mgc2luY2UgaXQncyBhbHJlYWR5CisJCQkgKiBjYXB0dXJl ZCBpbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLgorCQkJICovCisJCQllcmVwb3J0KGVsZXZlbCwK KwkJCQkJZXJyY29kZV9hcHBseV9jb25mbGljdCh0eXBlKSwKKwkJCQkJZXJybXNnKCJjb25mbGlj dCBkZXRlY3RlZCBvbiByZWxhdGlvbiBcIiVzLiVzXCI6IGNvbmZsaWN0PSVzIiwKKwkJCQkJCWdl dF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShsb2NhbHJlbCkpLAorCQkJCQkJ UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUobG9jYWxyZWwpLAorCQkJCQkJQ29uZmxpY3RUeXBlTmFt ZXNbdHlwZV0pLAorCQkJCQllcnJkZXRhaWwoIkNvbmZsaWN0IGRldGFpbHMgYXJlIGxvZ2dlZCB0 byB0aGUgY29uZmxpY3QgbG9nIHRhYmxlOiAlcyIsCisJCQkJCQkJICBSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShjb25mbGljdGxvZ3JlbCkpKTsKKwkJfQorCisJCXRhYmxlX2Nsb3NlKGNvbmZsaWN0 bG9ncmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwl9CiAKLQllcmVwb3J0KGVsZXZlbCwKLQkJCWVy cmNvZGVfYXBwbHlfY29uZmxpY3QodHlwZSksCi0JCQllcnJtc2coImNvbmZsaWN0IGRldGVjdGVk IG9uIHJlbGF0aW9uIFwiJXMuJXNcIjogY29uZmxpY3Q9JXMiLAotCQkJCSAgIGdldF9uYW1lc3Bh Y2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShsb2NhbHJlbCkpLAotCQkJCSAgIFJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKGxvY2FscmVsKSwKLQkJCQkgICBDb25mbGljdFR5cGVOYW1lc1t0eXBl XSksCi0JCQllcnJkZXRhaWxfaW50ZXJuYWwoIiVzIiwgZXJyX2RldGFpbC5kYXRhKSk7CisJLyog TG9nIGludG8gdGhlIHNlcnZlciBsb2cgaWYgcmVxdWVzdGVkLiAqLworCWlmIChsb2dfZGVzdF9s b2dmaWxlKQorCXsKKwkJU3RyaW5nSW5mb0RhdGEJZXJyX2RldGFpbDsKKworCQlpbml0U3RyaW5n SW5mbygmZXJyX2RldGFpbCk7CisKKwkJLyogRm9ybSBlcnJkZXRhaWwgbWVzc2FnZSBieSBjb21i aW5pbmcgY29uZmxpY3RpbmcgdHVwbGVzIGluZm9ybWF0aW9uLiAqLworCQlmb3JlYWNoX3B0cihD b25mbGljdFR1cGxlSW5mbywgY29uZmxpY3R0dXBsZSwgY29uZmxpY3R0dXBsZXMpCisJCQllcnJk ZXRhaWxfYXBwbHlfY29uZmxpY3QoZXN0YXRlLCByZWxpbmZvLCB0eXBlLCBzZWFyY2hzbG90LAor CQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+c2xvdCwgcmVtb3Rlc2xvdCwKKwkJCQkJCQkJCWNvbmZs aWN0dHVwbGUtPmluZGV4b2lkLAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+eG1pbiwKKwkJCQkJ CQkJCWNvbmZsaWN0dHVwbGUtPm9yaWdpbiwKKwkJCQkJCQkJCWNvbmZsaWN0dHVwbGUtPnRzLAor CQkJCQkJCQkJJmVycl9kZXRhaWwpOworCisJCS8qIFN0YW5kYXJkIHJlcG9ydGluZyB3aXRoIGZ1 bGwgaW50ZXJuYWwgZGV0YWlscy4gKi8KKwkJZXJlcG9ydChlbGV2ZWwsCisJCQkJZXJyY29kZV9h cHBseV9jb25mbGljdCh0eXBlKSwKKwkJCQllcnJtc2coImNvbmZsaWN0IGRldGVjdGVkIG9uIHJl bGF0aW9uIFwiJXMuJXNcIjogY29uZmxpY3Q9JXMiLAorCQkJCQkgICBnZXRfbmFtZXNwYWNlX25h bWUoUmVsYXRpb25HZXROYW1lc3BhY2UobG9jYWxyZWwpKSwKKwkJCQkJICAgUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUobG9jYWxyZWwpLAorCQkJCQkgICBDb25mbGljdFR5cGVOYW1lc1t0eXBlXSks CisJCQkJZXJyZGV0YWlsX2ludGVybmFsKCIlcyIsIGVycl9kZXRhaWwuZGF0YSkpOworCX0KIH0K IAogLyoKQEAgLTE2Miw2ICsyNjEsNjQgQEAgSW5pdENvbmZsaWN0SW5kZXhlcyhSZXN1bHRSZWxJ bmZvICpyZWxJbmZvKQogCXJlbEluZm8tPnJpX29uQ29uZmxpY3RBcmJpdGVySW5kZXhlcyA9IHVu aXF1ZUluZGV4ZXM7CiB9CiAKKy8qCisgKiBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZQorICoK KyAqIEZldGNoZXMgY29uZmxpY3QgbG9nZ2luZyBtZXRhZGF0YSBmcm9tIHRoZSBjYWNoZWQgTXlT dWJzY3JpcHRpb24gcG9pbnRlci4KKyAqIFNldHMgdGhlIGRlc3RpbmF0aW9uIGVudW0gaW4gKmxv Z19kZXN0IGFuZCwgaWYgYXBwbGljYWJsZSwgb3BlbnMgYW5kCisgKiByZXR1cm5zIHRoZSByZWxh dGlvbiBoYW5kbGUgZm9yIHRoZSBjb25mbGljdCBsb2cgdGFibGUuCisgKi8KK1JlbGF0aW9uCitH ZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZShDb25mbGljdExvZ0Rlc3QgKmxvZ19kZXN0KQorewor CU9pZAkJCWNvbmZsaWN0bG9ncmVsaWQ7CisJUmVsYXRpb24JY29uZmxpY3Rsb2dyZWwgPSBOVUxM OworCisJLyoKKwkgKiBDb252ZXJ0IHRoZSB0ZXh0IGxvZyBkZXN0aW5hdGlvbiB0byB0aGUgaW50 ZXJuYWwgZW51bS4gIE15U3Vic2NyaXB0aW9uCisJICogYWxyZWFkeSBjb250YWlucyB0aGUgZGF0 YSBmcm9tIHBnX3N1YnNjcmlwdGlvbi4KKwkgKi8KKwkqbG9nX2Rlc3QgPSBHZXRMb2dEZXN0aW5h dGlvbihNeVN1YnNjcmlwdGlvbi0+Y29uZmxpY3Rsb2dkZXN0KTsKKworCS8qIFF1aWNrIGV4aXQg aWYgYSBjb25mbGljdCBsb2cgdGFibGUgd2FzIG5vdCByZXF1ZXN0ZWQuICovCisJaWYgKCgqbG9n X2Rlc3QgJiBDT05GTElDVF9MT0dfREVTVF9UQUJMRSkgPT0gMCkKKwkJcmV0dXJuIE5VTEw7CisK Kwljb25mbGljdGxvZ3JlbGlkID0gTXlTdWJzY3JpcHRpb24tPmNvbmZsaWN0bG9ncmVsaWQ7CisK KwlBc3NlcnQoT2lkSXNWYWxpZChjb25mbGljdGxvZ3JlbGlkKSk7CisKKwljb25mbGljdGxvZ3Jl bCA9IHRhYmxlX29wZW4oY29uZmxpY3Rsb2dyZWxpZCwgUm93RXhjbHVzaXZlTG9jayk7CisJaWYg KGNvbmZsaWN0bG9ncmVsID09IE5VTEwpCisJCWVsb2coRVJST1IsICJjb3VsZCBub3Qgb3BlbiBj b25mbGljdCBsb2cgdGFibGUgKE9JRCAldSkiLAorCQkJIGNvbmZsaWN0bG9ncmVsaWQpOworCisJ cmV0dXJuIGNvbmZsaWN0bG9ncmVsOworfQorCisvKgorICogSW5zZXJ0Q29uZmxpY3RMb2dUdXBs ZQorICoKKyAqIEluc2VydCBjb25mbGljdCBsb2cgdHVwbGUgaW50byB0aGUgY29uZmxpY3QgbG9n IHRhYmxlLiBJdCB1c2VzCisgKiBIRUFQX0lOU0VSVF9OT19MT0dJQ0FMIHRvIGV4cGxpY2l0bHkg YmxvY2sgbG9naWNhbCBkZWNvZGluZyBvZiB0aGUgdHVwbGUKKyAqIGluc2VydGVkIGludG8gdGhl IGNvbmZsaWN0IGxvZyB0YWJsZS4KKyAqLwordm9pZAorSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShS ZWxhdGlvbiBjb25mbGljdGxvZ3JlbCkKK3sKKwlpbnQJCQlvcHRpb25zID0gSEVBUF9JTlNFUlRf Tk9fTE9HSUNBTDsKKworCS8qIEEgdmFsaWQgdHVwbGUgbXVzdCBiZSBwcmVwYXJlZCBhbmQgc3Rv cmVkIGluIE15TG9naWNhbFJlcFdvcmtlci4gKi8KKwlBc3NlcnQoTXlMb2dpY2FsUmVwV29ya2Vy LT5jb25mbGljdF9sb2dfdHVwbGUgIT0gTlVMTCk7CisKKwloZWFwX2luc2VydChjb25mbGljdGxv Z3JlbCwgTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUsCisJCQkJR2V0Q3Vy cmVudENvbW1hbmRJZCh0cnVlKSwgb3B0aW9ucywgTlVMTCk7CisKKwkvKiBGcmVlIGNvbmZsaWN0 IGxvZyB0dXBsZS4gKi8KKwloZWFwX2ZyZWV0dXBsZShNeUxvZ2ljYWxSZXBXb3JrZXItPmNvbmZs aWN0X2xvZ190dXBsZSk7CisJTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUg PSBOVUxMOworfQorCiAvKgogICogQWRkIFNRTFNUQVRFIGVycm9yIGNvZGUgdG8gdGhlIGN1cnJl bnQgY29uZmxpY3QgcmVwb3J0LgogICovCkBAIC00NzIsNiArNjI5LDQwIEBAIGJ1aWxkX3R1cGxl X3ZhbHVlX2RldGFpbHMoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJ cmV0dXJuIHR1cGxlX3ZhbHVlLmRhdGE7CiB9CiAKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb24gdG8g ZXh0cmFjdCB0aGUgInJhdyIgaW5kZXgga2V5IERhdHVtcyBhbmQgdGhlaXIgbnVsbCBmbGFncwor ICogZnJvbSBhIFR1cGxlVGFibGVTbG90LCBnaXZlbiBhbiBhbHJlYWR5IG9wZW4gaW5kZXggZGVz Y3JpcHRvci4KKyAqIFRoaXMgaXMgdGhlIHJldXNhYmxlIGNvcmUgbG9naWMuCisgKi8KK3N0YXRp YyB2b2lkCitidWlsZF9pbmRleF9kYXR1bXNfZnJvbV9zbG90KEVTdGF0ZSAqZXN0YXRlLCBSZWxh dGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCisJCQkJCQkJIFJl bGF0aW9uIGluZGV4RGVzYywgRGF0dW0gKnZhbHVlcywKKwkJCQkJCQkgYm9vbCAqaXNudWxsKQor eworCVR1cGxlVGFibGVTbG90ICp0YWJsZXNsb3QgPSBzbG90OworCisJLyoKKwkgKiBJZiB0aGUg c2xvdCBpcyBhIHZpcnR1YWwgc2xvdCwgY29weSBpdCBpbnRvIGEgaGVhcCB0dXBsZSBzbG90IGFz CisJICogRm9ybUluZGV4RGF0dW0gb25seSB3b3JrcyB3aXRoIGhlYXAgdHVwbGUgc2xvdHMuCisJ ICovCisJaWYgKFRUU19JU19WSVJUVUFMKHNsb3QpKQorCXsKKwkJLyogU2xvdCBpcyBjcmVhdGVk IHdpdGhpbiB0aGUgRVN0YXRlJ3MgdHVwbGUgdGFibGUgKi8KKwkJdGFibGVzbG90ID0gdGFibGVf c2xvdF9jcmVhdGUobG9jYWxyZWwsICZlc3RhdGUtPmVzX3R1cGxlVGFibGUpOworCQl0YWJsZXNs b3QgPSBFeGVjQ29weVNsb3QodGFibGVzbG90LCBzbG90KTsKKwl9CisKKwkvKgorCSAqIEluaXRp YWxpemUgZWN4dF9zY2FudHVwbGUgZm9yIHBvdGVudGlhbCB1c2UgaW4gRm9ybUluZGV4RGF0dW0K KwkgKi8KKwlHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSktPmVjeHRfc2NhbnR1cGxlID0g dGFibGVzbG90OworCisJLyogRm9ybSB0aGUgaW5kZXggZGF0dW1zICovCisJRm9ybUluZGV4RGF0 dW0oQnVpbGRJbmRleEluZm8oaW5kZXhEZXNjKSwgdGFibGVzbG90LCBlc3RhdGUsIHZhbHVlcywK KwkJCQkgICBpc251bGwpOworfQorCiAvKgogICogSGVscGVyIGZ1bmN0aW9ucyB0byBjb25zdHJ1 Y3QgYSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgY29udGVudHMgb2YgYW4gaW5kZXgKICAqIGVudHJ5 LiBTZWUgQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24gZm9yIGRldGFpbHMuCkBAIC00ODcsNDEg KzY3OCwzMjUgQEAgYnVpbGRfaW5kZXhfdmFsdWVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwgUmVsYXRp b24gbG9jYWxyZWwsIFR1cGxlVGFibGVTbG90ICpzbG90LAogCVJlbGF0aW9uCWluZGV4RGVzYzsK IAlEYXR1bQkJdmFsdWVzW0lOREVYX01BWF9LRVlTXTsKIAlib29sCQlpc251bGxbSU5ERVhfTUFY X0tFWVNdOwotCVR1cGxlVGFibGVTbG90ICp0YWJsZXNsb3QgPSBzbG90OwogCi0JaWYgKCF0YWJs ZXNsb3QpCisJaWYgKCFzbG90KQogCQlyZXR1cm4gTlVMTDsKIAogCUFzc2VydChDaGVja1JlbGF0 aW9uT2lkTG9ja2VkQnlNZShpbmRleG9pZCwgUm93RXhjbHVzaXZlTG9jaywgdHJ1ZSkpOwogCiAJ aW5kZXhEZXNjID0gaW5kZXhfb3BlbihpbmRleG9pZCwgTm9Mb2NrKTsKIAotCS8qCi0JICogSWYg dGhlIHNsb3QgaXMgYSB2aXJ0dWFsIHNsb3QsIGNvcHkgaXQgaW50byBhIGhlYXAgdHVwbGUgc2xv dCBhcwotCSAqIEZvcm1JbmRleERhdHVtIG9ubHkgd29ya3Mgd2l0aCBoZWFwIHR1cGxlIHNsb3Rz LgotCSAqLwotCWlmIChUVFNfSVNfVklSVFVBTChzbG90KSkKKwlidWlsZF9pbmRleF9kYXR1bXNf ZnJvbV9zbG90KGVzdGF0ZSwgbG9jYWxyZWwsIHNsb3QsIGluZGV4RGVzYywgdmFsdWVzLAorCQkJ CQkJCQkgaXNudWxsKTsKKworCWluZGV4X3ZhbHVlID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRp b24oaW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVsbCk7CisKKwlpbmRleF9jbG9zZShpbmRleERlc2Ms IE5vTG9jayk7CisKKwlyZXR1cm4gaW5kZXhfdmFsdWU7Cit9CisKKy8qCisgKiB0dXBsZV90YWJs ZV9zbG90X3RvX2pzb25fZGF0dW0KKyAqCisgKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29udmVydCBh IFR1cGxlVGFibGVTbG90IHRvIEpzb25iLgorICovCitzdGF0aWMgRGF0dW0KK3R1cGxlX3RhYmxl X3Nsb3RfdG9fanNvbl9kYXR1bShUdXBsZVRhYmxlU2xvdCAqc2xvdCkKK3sKKwlIZWFwVHVwbGUJ dHVwbGU7CisJRGF0dW0JCWRhdHVtOworCURhdHVtCQlqc29uOworCisJQXNzZXJ0KHNsb3QgIT0g TlVMTCk7CisKKwl0dXBsZSA9IEV4ZWNDb3B5U2xvdEhlYXBUdXBsZShzbG90KTsKKwlkYXR1bSA9 IGhlYXBfY29weV90dXBsZV9hc19kYXR1bSh0dXBsZSwgc2xvdC0+dHRzX3R1cGxlRGVzY3JpcHRv cik7CisKKwlqc29uID0gRGlyZWN0RnVuY3Rpb25DYWxsMShyb3dfdG9fanNvbiwgZGF0dW0pOwor CWhlYXBfZnJlZXR1cGxlKHR1cGxlKTsKKworCXJldHVybiBqc29uOworfQorCisvKgorICogdHVw bGVfdGFibGVfc2xvdF90b19pbmRleHR1cF9qc29uCisgKgorICogRmV0Y2ggcmVwbGljYSBpZGVu dGl0eSBrZXkgZnJvbSB0aGUgdHVwbGUgdGFibGUgc2xvdCBhbmQgY29udmVydCBpbnRvIGEKKyAq IGpzb24gZGF0dW0uCisgKi8KK3N0YXRpYyBEYXR1bQordHVwbGVfdGFibGVfc2xvdF90b19pbmRl eHR1cF9qc29uKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkJICBP aWQgaW5kZXhpZCwgVHVwbGVUYWJsZVNsb3QgKnNsb3QpCit7CisJUmVsYXRpb24JaW5kZXhEZXNj OworCURhdHVtCQl2YWx1ZXNbSU5ERVhfTUFYX0tFWVNdOworCWJvb2wJCWlzbnVsbFtJTkRFWF9N QVhfS0VZU107CisJSGVhcFR1cGxlCXR1cGxlOworCVR1cGxlRGVzYwl0dXBkZXNjOworCURhdHVt CQlkYXR1bTsKKworCUFzc2VydChzbG90ICE9IE5VTEwpOworCisJQXNzZXJ0KENoZWNrUmVsYXRp b25PaWRMb2NrZWRCeU1lKGluZGV4aWQsIFJvd0V4Y2x1c2l2ZUxvY2ssIHRydWUpKTsKKworCWlu ZGV4RGVzYyA9IGluZGV4X29wZW4oaW5kZXhpZCwgTm9Mb2NrKTsKKworCWJ1aWxkX2luZGV4X2Rh dHVtc19mcm9tX3Nsb3QoZXN0YXRlLCBsb2NhbHJlbCwgc2xvdCwgaW5kZXhEZXNjLCB2YWx1ZXMs CisJCQkJCQkJCSBpc251bGwpOworCXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKGluZGV4RGVz Yyk7CisKKwkvKiBCbGVzcyB0aGUgdHVwZGVzYyBzbyBpdCBjYW4gYmUgbG9va2VkIHVwIGJ5IHJv d190b19qc29uLiAqLworCUJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOworCisJLyogRm9ybSB0aGUg cmVwbGljYSBpZGVudGl0eSB0dXBsZS4gKi8KKwl0dXBsZSA9IGhlYXBfZm9ybV90dXBsZSh0dXBk ZXNjLCB2YWx1ZXMsIGlzbnVsbCk7CisJZGF0dW0gPSBoZWFwX2NvcHlfdHVwbGVfYXNfZGF0dW0o dHVwbGUsIHR1cGRlc2MpOworCisJaW5kZXhfY2xvc2UoaW5kZXhEZXNjLCBOb0xvY2spOworCWhl YXBfZnJlZXR1cGxlKHR1cGxlKTsKKworCS8qIENvbnZlcnQgdG8gYSBKU09OIGRhdHVtLiAqLwor CXJldHVybiBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBkYXR1bSk7Cit9CisKKy8q CisgKiBidWlsZF9jb25mbGljdF90dXBsZWRlc2MKKyAqCisgKiBCdWlsZCBhbmQgYmxlc3MgYSB0 dXBsZSBkZXNjcmlwdG9yIGZvciB0aGUgaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxlCisgKiBi YXNlZCBvbiB0aGUgcHJlZGVmaW5lZCBMb2NhbENvbmZsaWN0U2NoZW1hLgorICovCitzdGF0aWMg VHVwbGVEZXNjCitidWlsZF9jb25mbGljdF90dXBsZWRlc2Modm9pZCkKK3sKKwlUdXBsZURlc2Mg ICB0dXBkZXNjOworCisJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKE1BWF9MT0NB TF9DT05GTElDVF9JTkZPX0FUVFJTKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgTUFYX0xPQ0FM X0NPTkZMSUNUX0lORk9fQVRUUlM7IGkrKykKKwkJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2Ms IChBdHRyTnVtYmVyKSAoaSArIDEpLAorCQkJCQkJICAgTG9jYWxDb25mbGljdFNjaGVtYVtpXS5h dHRuYW1lLAorCQkJCQkJICAgTG9jYWxDb25mbGljdFNjaGVtYVtpXS5hdHR0eXBpZCwKKwkJCQkJ CSAgIC0xLCAwKTsKKworCUJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOworCisJcmV0dXJuIHR1cGRl c2M7Cit9CisKKy8qCisgKiBCdWlsZHMgdGhlIGxvY2FsIGNvbmZsaWN0cyBKU09OIGFycmF5IGNv bHVtbiBmcm9tIHRoZSBsaXN0IG9mCisgKiBDb25mbGljdFR1cGxlSW5mbyBvYmplY3RzLgorICoK KyAqIEV4YW1wbGUgb3V0cHV0IHN0cnVjdHVyZToKKyAqIFsgeyAieGlkIjogIjEwMDEiLCAiY29t bWl0X3RzIjogIi4uLiIsICJvcmlnaW4iOiAiLi4uIiwgInR1cGxlIjogey4uLn0gfSwgLi4uIF0K KyAqLworc3RhdGljIERhdHVtCitidWlsZF9sb2NhbF9jb25mbGljdHNfanNvbl9hcnJheShFU3Rh dGUgKmVzdGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJCQkgQ29uZmxpY3RUeXBlIGNvbmZsaWN0 X3R5cGUsCisJCQkJCQkJCSBMaXN0ICpjb25mbGljdHR1cGxlcykKK3sKKwlMaXN0Q2VsbCAgICps YzsKKwlMaXN0CSAgICpqc29uX2RhdHVtcyA9IE5JTDsgLyogTGlzdCB0byBob2xkIHRoZSByb3df dG9fanNvbiByZXN1bHRzICh0eXBlIGpzb24pICovCisJRGF0dW0JICAgKmpzb25fZGF0dW1fYXJy YXk7CisJYm9vbAkgICAqanNvbl9udWxsX2FycmF5OworCURhdHVtCQlqc29uX2FycmF5X2RhdHVt OworCWludAkJCW51bV9jb25mbGljdHM7CisJaW50CQkJaTsKKwlpbnQxNgkJdHlwbGVuOworCWJv b2wJCXR5cGJ5dmFsOworCWNoYXIJCXR5cGFsaWduOworCVR1cGxlRGVzYwl0dXBkZXNjOworCisJ LyogQnVpbGQgbG9jYWwgY29uZmxpY3RzIHR1cGxlIGRlc2NyaXB0b3IuICovCisJdHVwZGVzYyA9 IGJ1aWxkX2NvbmZsaWN0X3R1cGxlZGVzYygpOworCisJLyogUHJvY2VzcyBsb2NhbCBjb25mbGlj dCB0dXBsZSBsaXN0IGFuZCBwcmVwYXJlIGFuIGFycmF5IG9mIEpTT04uICovCisJZm9yZWFjaF9w dHIoQ29uZmxpY3RUdXBsZUluZm8sIGNvbmZsaWN0dHVwbGUsIGNvbmZsaWN0dHVwbGVzKQogCXsK LQkJdGFibGVzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUobG9jYWxyZWwsICZlc3RhdGUtPmVzX3R1 cGxlVGFibGUpOwotCQl0YWJsZXNsb3QgPSBFeGVjQ29weVNsb3QodGFibGVzbG90LCBzbG90KTsK KwkJRGF0dW0JCXZhbHVlc1tNQVhfTE9DQUxfQ09ORkxJQ1RfSU5GT19BVFRSU10gPSB7MH07CisJ CWJvb2wJCW51bGxzW01BWF9MT0NBTF9DT05GTElDVF9JTkZPX0FUVFJTXSA9IHswfTsKKwkJY2hh cgkgICAqb3JpZ2luX25hbWUgPSBOVUxMOworCQlIZWFwVHVwbGUJdHVwbGU7CisJCURhdHVtCQlq c29uX2RhdHVtOworCQlpbnQJCQlhdHRubzsKKworCQlhdHRubyA9IDA7CisJCXZhbHVlc1thdHRu bysrXSA9IFRyYW5zYWN0aW9uSWRHZXREYXR1bShjb25mbGljdHR1cGxlLT54bWluKTsKKworCQlp ZiAoY29uZmxpY3R0dXBsZS0+dHMpCisJCQl2YWx1ZXNbYXR0bm8rK10gPSBUaW1lc3RhbXBUekdl dERhdHVtKGNvbmZsaWN0dHVwbGUtPnRzKTsKKwkJZWxzZQorCQkJbnVsbHNbYXR0bm8rK10gPSB0 cnVlOworCisJCWlmIChjb25mbGljdHR1cGxlLT5vcmlnaW4gIT0gSW52YWxpZFJlcE9yaWdpbklk KQorCQkJcmVwbG9yaWdpbl9ieV9vaWQoY29uZmxpY3R0dXBsZS0+b3JpZ2luLCB0cnVlLCAmb3Jp Z2luX25hbWUpOworCisJCS8qIFN0b3JlIGVtcHR5IHN0cmluZyBpZiBvcmlnaW4gbmFtZSBmb3Ig dGhlIHR1cGxlIGlzIE5VTEwuICovCisJCWlmIChvcmlnaW5fbmFtZSAhPSBOVUxMKQorCQkJdmFs dWVzW2F0dG5vKytdID0gQ1N0cmluZ0dldFRleHREYXR1bShvcmlnaW5fbmFtZSk7CisJCWVsc2UK KwkJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCQkvKgorCQkgKiBBZGQgdGhlIGNvbmZsaWN0 aW5nIGtleSB2YWx1ZXMgaW4gdGhlIGNhc2Ugb2YgYSB1bmlxdWUgY29uc3RyYWludAorCQkgKiB2 aW9sYXRpb24uCisJCSAqLworCQlpZiAoY29uZmxpY3RfdHlwZSA9PSBDVF9JTlNFUlRfRVhJU1RT IHx8CisJCQljb25mbGljdF90eXBlID09IENUX1VQREFURV9FWElTVFMgfHwKKwkJCWNvbmZsaWN0 X3R5cGUgPT0gQ1RfTVVMVElQTEVfVU5JUVVFX0NPTkZMSUNUUykKKwkJeworCQkJT2lkCWluZGV4 b2lkID0gY29uZmxpY3R0dXBsZS0+aW5kZXhvaWQ7CisKKwkJCUFzc2VydChPaWRJc1ZhbGlkKGlu ZGV4b2lkKSAmJiBjb25mbGljdHR1cGxlLT5zbG90ICYmCisJCQkJICAgQ2hlY2tSZWxhdGlvbk9p ZExvY2tlZEJ5TWUoaW5kZXhvaWQsIFJvd0V4Y2x1c2l2ZUxvY2ssCisJCQkJCQkJCQkJCSAgdHJ1 ZSkpOworCQkJdmFsdWVzW2F0dG5vKytdID0KKwkJCQkJdHVwbGVfdGFibGVfc2xvdF90b19pbmRl eHR1cF9qc29uKGVzdGF0ZSwgcmVsLAorCQkJCQkJCQkJCQkJCSAgaW5kZXhvaWQsCisJCQkJCQkJ CQkJCQkJICBjb25mbGljdHR1cGxlLT5zbG90KTsKKwkJfQorCQllbHNlCisJCQludWxsc1thdHRu bysrXSA9IHRydWU7CisKKwkJLyogQ29udmVydCBjb25mbGljdGluZyB0dXBsZSB0byBKU09OIGRh dHVtLiAqLworCQlpZiAoY29uZmxpY3R0dXBsZS0+c2xvdCkKKwkJCXZhbHVlc1thdHRub10gPSB0 dXBsZV90YWJsZV9zbG90X3RvX2pzb25fZGF0dW0oY29uZmxpY3R0dXBsZS0+c2xvdCk7CisJCWVs c2UKKwkJCW51bGxzW2F0dG5vXSA9IHRydWU7CisKKwkJQXNzZXJ0KGF0dG5vICsgMSA9PSBNQVhf TE9DQUxfQ09ORkxJQ1RfSU5GT19BVFRSUyk7CisKKwkJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUo dHVwZGVzYywgdmFsdWVzLCBudWxscyk7CisKKwkJanNvbl9kYXR1bSA9IGhlYXBfY29weV90dXBs ZV9hc19kYXR1bSh0dXBsZSwgdHVwZGVzYyk7CisKKwkJLyoKKwkJICogQnVpbGQgdGhlIGhpZ2hl ciBsZXZlbCBKU09OIGRhdHVtIGluIGZvcm1hdCBkZXNjcmliZWQgaW4gZnVuY3Rpb24KKwkJICog aGVhZGVyLgorCQkgKi8KKwkJanNvbl9kYXR1bSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEocm93X3Rv X2pzb24sIGpzb25fZGF0dW0pOworCisJCS8qIERvbmUgd2l0aCB0aGUgdGVtcG9yYXJ5IHR1cGxl LiAqLworCQloZWFwX2ZyZWV0dXBsZSh0dXBsZSk7CisKKwkJLyogQWRkIHRvIHRoZSBhcnJheSBl bGVtZW50LiAqLworCQlqc29uX2RhdHVtcyA9IGxhcHBlbmQoanNvbl9kYXR1bXMsICh2b2lkICop IGpzb25fZGF0dW0pOwogCX0KIAotCS8qCi0JICogSW5pdGlhbGl6ZSBlY3h0X3NjYW50dXBsZSBm b3IgcG90ZW50aWFsIHVzZSBpbiBGb3JtSW5kZXhEYXR1bSB3aGVuCi0JICogaW5kZXggZXhwcmVz c2lvbnMgYXJlIHByZXNlbnQuCi0JICovCi0JR2V0UGVyVHVwbGVFeHByQ29udGV4dChlc3RhdGUp LT5lY3h0X3NjYW50dXBsZSA9IHRhYmxlc2xvdDsKKwludW1fY29uZmxpY3RzID0gbGlzdF9sZW5n dGgoanNvbl9kYXR1bXMpOwogCi0JLyoKLQkgKiBUaGUgdmFsdWVzL251bGxzIGFycmF5cyBwYXNz ZWQgdG8gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24gc2hvdWxkIGJlCi0JICogdGhlIHJlc3Vs dHMgb2YgRm9ybUluZGV4RGF0dW0sIHdoaWNoIGFyZSB0aGUgInJhdyIgaW5wdXQgdG8gdGhlIGlu ZGV4Ci0JICogQU0uCi0JICovCi0JRm9ybUluZGV4RGF0dW0oQnVpbGRJbmRleEluZm8oaW5kZXhE ZXNjKSwgdGFibGVzbG90LCBlc3RhdGUsIHZhbHVlcywgaXNudWxsKTsKKwlqc29uX2RhdHVtX2Fy cmF5ID0gcGFsbG9jX2FycmF5KERhdHVtLCBudW1fY29uZmxpY3RzKTsKKwlqc29uX251bGxfYXJy YXkgPSBwYWxsb2MwX2FycmF5KGJvb2wsIG51bV9jb25mbGljdHMpOwogCi0JaW5kZXhfdmFsdWUg PSBCdWlsZEluZGV4VmFsdWVEZXNjcmlwdGlvbihpbmRleERlc2MsIHZhbHVlcywgaXNudWxsKTsK KwlpID0gMDsKKwlmb3JlYWNoKGxjLCBqc29uX2RhdHVtcykKKwl7CisJCWpzb25fZGF0dW1fYXJy YXlbaV0gPSAoRGF0dW0pIGxmaXJzdChsYyk7CisJCWkrKzsKKwl9CiAKLQlpbmRleF9jbG9zZShp bmRleERlc2MsIE5vTG9jayk7CisJLyogQ29uc3RydWN0IHRoZSBqc29uW10gYXJyYXkgRGF0dW0u ICovCisJZ2V0X3R5cGxlbmJ5dmFsYWxpZ24oSlNPTk9JRCwgJnR5cGxlbiwgJnR5cGJ5dmFsLCAm dHlwYWxpZ24pOworCWpzb25fYXJyYXlfZGF0dW0gPSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0 X2FycmF5KGpzb25fZGF0dW1fYXJyYXksCisJCQkJCQkJCQkJCQkJICAgbnVtX2NvbmZsaWN0cywK KwkJCQkJCQkJCQkJCQkgICBKU09OT0lELAorCQkJCQkJCQkJCQkJCSAgIHR5cGxlbiwKKwkJCQkJ CQkJCQkJCQkgICB0eXBieXZhbCwKKwkJCQkJCQkJCQkJCQkgICB0eXBhbGlnbikpOworCXBmcmVl KGpzb25fZGF0dW1fYXJyYXkpOworCXBmcmVlKGpzb25fbnVsbF9hcnJheSk7CisKKwlyZXR1cm4g anNvbl9hcnJheV9kYXR1bTsKK30KIAotCXJldHVybiBpbmRleF92YWx1ZTsKKy8qCisgKiBwcmVw YXJlX2NvbmZsaWN0X2xvZ190dXBsZQorICoKKyAqIFRoaXMgcm91dGluZSBwcmVwYXJlcyBhIHR1 cGxlIGRldGFpbGluZyBhIGNvbmZsaWN0IGVuY291bnRlcmVkIGR1cmluZworICogbG9naWNhbCBy ZXBsaWNhdGlvbi4gVGhlIHByZXBhcmVkIHR1cGxlIHdpbGwgYmUgc3RvcmVkIGluCisgKiBNeUxv Z2ljYWxSZXBXb3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSB3aGljaCBzaG91bGQgYmUgaW5zZXJ0 ZWQgaW50byB0aGUKKyAqIGNvbmZsaWN0IGxvZyB0YWJsZSBieSBjYWxsaW5nIEluc2VydENvbmZs aWN0TG9nVHVwbGUuCisgKi8KK3N0YXRpYyB2b2lkCitwcmVwYXJlX2NvbmZsaWN0X2xvZ190dXBs ZShFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJICAgUmVsYXRpb24gY29uZmxp Y3Rsb2dyZWwsCisJCQkJCQkgICBDb25mbGljdFR5cGUgY29uZmxpY3RfdHlwZSwKKwkJCQkJCSAg IFR1cGxlVGFibGVTbG90ICpzZWFyY2hzbG90LAorCQkJCQkJICAgTGlzdCAqY29uZmxpY3R0dXBs ZXMsCisJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCkKK3sKKwlEYXR1bQkJdmFs dWVzW01BWF9DT05GTElDVF9BVFRSX05VTV0gPSB7MH07CisJYm9vbAkJbnVsbHNbTUFYX0NPTkZM SUNUX0FUVFJfTlVNXSA9IHswfTsKKwlpbnQJCQlhdHRubzsKKwljaGFyCSAgICpyZW1vdGVfb3Jp Z2luID0gTlVMTDsKKwlNZW1vcnlDb250ZXh0CW9sZGN0eDsKKworCUFzc2VydChNeUxvZ2ljYWxS ZXBXb3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSA9PSBOVUxMKTsKKworCS8qIFBvcHVsYXRlIHRo ZSB2YWx1ZXMgYW5kIG51bGxzIGFycmF5cy4gKi8KKwlhdHRubyA9IDA7CisJdmFsdWVzW2F0dG5v KytdID0gT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJlbGlkKHJlbCkpOworCisJdmFsdWVz W2F0dG5vKytdID0KKwkJCUNTdHJpbmdHZXRUZXh0RGF0dW0oZ2V0X25hbWVzcGFjZV9uYW1lKFJl bGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkpKTsKKworCXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdH ZXRUZXh0RGF0dW0oUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CisKKwl2YWx1ZXNbYXR0 bm8rK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKENvbmZsaWN0VHlwZU5hbWVzW2NvbmZsaWN0X3R5 cGVdKTsKKworCWlmIChUcmFuc2FjdGlvbklkSXNWYWxpZChyZW1vdGVfeGlkKSkKKwkJdmFsdWVz W2F0dG5vKytdID0gVHJhbnNhY3Rpb25JZEdldERhdHVtKHJlbW90ZV94aWQpOworCWVsc2UKKwkJ bnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJdmFsdWVzW2F0dG5vKytdID0gTFNOR2V0RGF0dW0o cmVtb3RlX2ZpbmFsX2xzbik7CisKKwlpZiAocmVtb3RlX2NvbW1pdF90cyA+IDApCisJCXZhbHVl c1thdHRubysrXSA9IFRpbWVzdGFtcFR6R2V0RGF0dW0ocmVtb3RlX2NvbW1pdF90cyk7CisJZWxz ZQorCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwlpZiAocmVwbG9yaWdpbl9zZXNzaW9uX29y aWdpbiAhPSBJbnZhbGlkUmVwT3JpZ2luSWQpCisJCXJlcGxvcmlnaW5fYnlfb2lkKHJlcGxvcmln aW5fc2Vzc2lvbl9vcmlnaW4sIHRydWUsICZyZW1vdGVfb3JpZ2luKTsKKworCWlmIChyZW1vdGVf b3JpZ2luICE9IE5VTEwpCisJCXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0o cmVtb3RlX29yaWdpbik7CisJZWxzZQorCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwlpZiAo IVR1cElzTnVsbChzZWFyY2hzbG90KSkKKwl7CisJCU9pZAkJcmVwbGljYV9pbmRleCA9IEdldFJl bGF0aW9uSWRlbnRpdHlPclBLKHJlbCk7CisKKwkJLyoKKwkJICogSWYgdGhlIHRhYmxlIGhhcyBh IHZhbGlkIHJlcGxpY2EgaWRlbnRpdHkgaW5kZXgsIGJ1aWxkIHRoZSBpbmRleAorCQkgKiBqc29u IGRhdHVtIGZyb20ga2V5IHZhbHVlLiBPdGhlcndpc2UsIGNvbnN0cnVjdCBpdCBmcm9tIHRoZSBj b21wbGV0ZQorCQkgKiB0dXBsZSBpbiBSRVBMSUNBIElERU5USVRZIEZVTEwgY2FzZXMuCisJCSAq LworCQlpZiAoT2lkSXNWYWxpZChyZXBsaWNhX2luZGV4KSkKKwkJCXZhbHVlc1thdHRubysrXSA9 IHR1cGxlX3RhYmxlX3Nsb3RfdG9faW5kZXh0dXBfanNvbihlc3RhdGUsIHJlbCwKKwkJCQkJCQkJ CQkJCQkJCQlyZXBsaWNhX2luZGV4LAorCQkJCQkJCQkJCQkJCQkJCXNlYXJjaHNsb3QpOworCQll bHNlCisJCQl2YWx1ZXNbYXR0bm8rK10gPSB0dXBsZV90YWJsZV9zbG90X3RvX2pzb25fZGF0dW0o c2VhcmNoc2xvdCk7CisJfQorCWVsc2UKKwkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJaWYg KCFUdXBJc051bGwocmVtb3Rlc2xvdCkpCisJCXZhbHVlc1thdHRubysrXSA9IHR1cGxlX3RhYmxl X3Nsb3RfdG9fanNvbl9kYXR1bShyZW1vdGVzbG90KTsKKwllbHNlCisJCW51bGxzW2F0dG5vKytd ID0gdHJ1ZTsKKworCXZhbHVlc1thdHRub10gPSBidWlsZF9sb2NhbF9jb25mbGljdHNfanNvbl9h cnJheShlc3RhdGUsIHJlbCwKKwkJCQkJCQkJCQkJCQkgY29uZmxpY3RfdHlwZSwKKwkJCQkJCQkJ CQkJCQkgY29uZmxpY3R0dXBsZXMpOworCisJQXNzZXJ0KGF0dG5vICsgMSA9PSBNQVhfQ09ORkxJ Q1RfQVRUUl9OVU0pOworCisJb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKEFwcGx5Q29u dGV4dCk7CisJTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUgPQorCQloZWFw X2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihjb25mbGljdGxvZ3JlbCksIHZhbHVlcywgbnVs bHMpOworCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjdHgpOwogfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5jIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5jCmluZGV4IDNlZDg2NDgwYmUyLi4yZGRhNWE0NDIx OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5j CisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYwpAQCAtNDc3 LDYgKzQ3Nyw3IEBAIHJldHJ5OgogCXdvcmtlci0+b2xkZXN0X25vbnJlbW92YWJsZV94aWQgPSBy ZXRhaW5fZGVhZF90dXBsZXMKIAkJPyBNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS54bWluCiAJCTog SW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJd29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUgPSBOVUxM OwogCXdvcmtlci0+bGFzdF9sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAlUSU1FU1RBTVBfTk9C RUdJTih3b3JrZXItPmxhc3Rfc2VuZF90aW1lKTsKIAlUSU1FU1RBTVBfTk9CRUdJTih3b3JrZXIt Pmxhc3RfcmVjdl90aW1lKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5j CmluZGV4IGFkMjgxZTcwNjliLi5kNGJlMTEyMjYwMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3dvcmtlci5jCkBAIC00ODIsNyArNDgyLDkgQEAgc3RhdGljIGJvb2wgTXlTdWJz Y3JpcHRpb25WYWxpZCA9IGZhbHNlOwogc3RhdGljIExpc3QgKm9uX2NvbW1pdF93YWtldXBfd29y a2Vyc19zdWJpZHMgPSBOSUw7CiAKIGJvb2wJCWluX3JlbW90ZV90cmFuc2FjdGlvbiA9IGZhbHNl Owotc3RhdGljIFhMb2dSZWNQdHIgcmVtb3RlX2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRy OworWExvZ1JlY1B0ciByZW1vdGVfZmluYWxfbHNuID0gSW52YWxpZFhMb2dSZWNQdHI7CitUcmFu c2FjdGlvbklkCXJlbW90ZV94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKK1RpbWVzdGFtcFR6 CXJlbW90ZV9jb21taXRfdHMgPSAwOwogCiAvKiBmaWVsZHMgdmFsaWQgb25seSB3aGVuIHByb2Nl c3Npbmcgc3RyZWFtZWQgdHJhbnNhY3Rpb24gKi8KIHN0YXRpYyBib29sIGluX3N0cmVhbWVkX3Ry YW5zYWN0aW9uID0gZmFsc2U7CkBAIC0xMjE5LDYgKzEyMjEsOCBAQCBhcHBseV9oYW5kbGVfYmVn aW4oU3RyaW5nSW5mbyBzKQogCXNldF9hcHBseV9lcnJvcl9jb250ZXh0X3hhY3QoYmVnaW5fZGF0 YS54aWQsIGJlZ2luX2RhdGEuZmluYWxfbHNuKTsKIAogCXJlbW90ZV9maW5hbF9sc24gPSBiZWdp bl9kYXRhLmZpbmFsX2xzbjsKKwlyZW1vdGVfY29tbWl0X3RzID0gYmVnaW5fZGF0YS5jb21taXR0 aW1lOworCXJlbW90ZV94aWQgPSBiZWdpbl9kYXRhLnhpZDsKIAogCW1heWJlX3N0YXJ0X3NraXBw aW5nX2NoYW5nZXMoYmVnaW5fZGF0YS5maW5hbF9sc24pOwogCkBAIC0xNzQ1LDYgKzE3NDksMTAg QEAgYXBwbHlfaGFuZGxlX3N0cmVhbV9zdGFydChTdHJpbmdJbmZvIHMpCiAJLyogZXh0cmFjdCBY SUQgb2YgdGhlIHRvcC1sZXZlbCB0cmFuc2FjdGlvbiAqLwogCXN0cmVhbV94aWQgPSBsb2dpY2Fs cmVwX3JlYWRfc3RyZWFtX3N0YXJ0KHMsICZmaXJzdF9zZWdtZW50KTsKIAorCXJlbW90ZV94aWQg PSBzdHJlYW1feGlkOworCXJlbW90ZV9maW5hbF9sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKKwly ZW1vdGVfY29tbWl0X3RzID0gMDsKKwogCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQoc3RyZWFt X3hpZCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9UT0NPTF9W SU9MQVRJT04pLApAQCAtNTYwOSw2ICs1NjE3LDI3IEBAIHN0YXJ0X2FwcGx5KFhMb2dSZWNQdHIg b3JpZ2luX3N0YXJ0cG9zKQogCQkJcGdzdGF0X3JlcG9ydF9zdWJzY3JpcHRpb25fZXJyb3IoTXlT dWJzY3JpcHRpb24tPm9pZCwKIAkJCQkJCQkJCQkJIE15TG9naWNhbFJlcFdvcmtlci0+dHlwZSk7 CiAKKwkJCS8qCisJCQkgKiBJbnNlcnQgYW55IHBlbmRpbmcgY29uZmxpY3QgbG9nIHR1cGxlIHVu ZGVyIGEgbmV3IHRyYW5zYWN0aW9uLgorCQkJICovCisJCQlpZiAoTXlMb2dpY2FsUmVwV29ya2Vy LT5jb25mbGljdF9sb2dfdHVwbGUgIT0gTlVMTCkKKwkJCXsKKwkJCQlSZWxhdGlvbgljb25mbGlj dGxvZ3JlbDsKKwkJCQlDb25mbGljdExvZ0Rlc3QJZGVzdDsKKworCQkJCVN0YXJ0VHJhbnNhY3Rp b25Db21tYW5kKCk7CisJCQkJUHVzaEFjdGl2ZVNuYXBzaG90KEdldFRyYW5zYWN0aW9uU25hcHNo b3QoKSk7CisKKwkJCQkvKiBPcGVuIGNvbmZsaWN0IGxvZyB0YWJsZSBhbmQgaW5zZXJ0IHRoZSB0 dXBsZS4gKi8KKwkJCQljb25mbGljdGxvZ3JlbCA9IEdldENvbmZsaWN0TG9nRGVzdEFuZFRhYmxl KCZkZXN0KTsKKwkJCQlBc3NlcnQoKGRlc3QgJiBDT05GTElDVF9MT0dfREVTVF9UQUJMRSkgIT0g MCk7CisJCQkJSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShjb25mbGljdGxvZ3JlbCk7CisJCQkJdGFi bGVfY2xvc2UoY29uZmxpY3Rsb2dyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJCQkJUG9wQWN0 aXZlU25hcHNob3QoKTsKKwkJCQlDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKKwkJCX0KKwog CQkJUEdfUkVfVEhST1coKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL2NvbmZsaWN0LmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCmlu ZGV4IDRlNGY1OWJiNDUzLi5hZmYxZGIyMjJhNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vY29uZmxpY3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGlj dC5oCkBAIC0xNDQsNCArMTQ0LDcgQEAgZXh0ZXJuIHZvaWQgUmVwb3J0QXBwbHlDb25mbGljdChF U3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJCQkJCQkJVHVwbGVUYWJs ZVNsb3QgKnJlbW90ZXNsb3QsCiAJCQkJCQkJCUxpc3QgKmNvbmZsaWN0dHVwbGVzKTsKIGV4dGVy biB2b2lkIEluaXRDb25mbGljdEluZGV4ZXMoUmVzdWx0UmVsSW5mbyAqcmVsSW5mbyk7CitleHRl cm4gUmVsYXRpb24gR2V0Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUoQ29uZmxpY3RMb2dEZXN0ICps b2dfZGVzdCk7CitleHRlcm4gdm9pZCBJbnNlcnRDb25mbGljdExvZ1R1cGxlKFJlbGF0aW9uIGNv bmZsaWN0bG9ncmVsKTsKK2V4dGVybiBib29sIFZhbGlkYXRlQ29uZmxpY3RMb2dUYWJsZShSZWxh dGlvbiByZWwpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93 b3JrZXJfaW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5h bC5oCmluZGV4IGMxMjg1ZmRkMWJjLi41YmVkZmM1NDUwZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vd29ya2VyX2ludGVybmFsLmgKQEAgLTEwMSw2ICsxMDEsOSBAQCB0eXBlZGVmIHN0cnVj dCBMb2dpY2FsUmVwV29ya2VyCiAJICovCiAJVHJhbnNhY3Rpb25JZCBvbGRlc3Rfbm9ucmVtb3Zh YmxlX3hpZDsKIAorCS8qIEEgY29uZmxpY3QgbG9nIHR1cGxlIHRoYXQgaXMgcHJlcGFyZWQgYnV0 IG5vdCB5ZXQgaW5zZXJ0ZWQuICovCisJSGVhcFR1cGxlCWNvbmZsaWN0X2xvZ190dXBsZTsKKwog CS8qIFN0YXRzLiAqLwogCVhMb2dSZWNQdHIJbGFzdF9sc247CiAJVGltZXN0YW1wVHogbGFzdF9z ZW5kX3RpbWU7CkBAIC0yNTYsNiArMjU5LDEwIEBAIGV4dGVybiBQR0RMTElNUE9SVCBib29sIElu aXRpYWxpemluZ0FwcGx5V29ya2VyOwogCiBleHRlcm4gUEdETExJTVBPUlQgTGlzdCAqdGFibGVf c3RhdGVzX25vdF9yZWFkeTsKIAorZXh0ZXJuIFhMb2dSZWNQdHIgcmVtb3RlX2ZpbmFsX2xzbjsK K2V4dGVybiBUaW1lc3RhbXBUeiByZW1vdGVfY29tbWl0X3RzOworZXh0ZXJuIFRyYW5zYWN0aW9u SWQJcmVtb3RlX3hpZDsKKwogZXh0ZXJuIHZvaWQgbG9naWNhbHJlcF93b3JrZXJfYXR0YWNoKGlu dCBzbG90KTsKIGV4dGVybiBMb2dpY2FsUmVwV29ya2VyICpsb2dpY2FscmVwX3dvcmtlcl9maW5k KExvZ2ljYWxSZXBXb3JrZXJUeXBlIHd0eXBlLAogCQkJCQkJCQkJCQkJT2lkIHN1YmlkLCBPaWQg cmVsaWQsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3Rz LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM1X2NvbmZsaWN0cy5wbAppbmRleCBkZGM3 NWUyM2ZiMC4uYTBmM2JlZmMwNmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90 LzAzNV9jb25mbGljdHMucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM1X2NvbmZs aWN0cy5wbApAQCAtNTAsNyArNTAsNyBAQCAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCiAJ J3Bvc3RncmVzJywKIAkiQ1JFQVRFIFNVQlNDUklQVElPTiBzdWJfdGFiCiAJIENPTk5FQ1RJT04g JyRwdWJsaXNoZXJfY29ubnN0ciBhcHBsaWNhdGlvbl9uYW1lPSRhcHBuYW1lJwotCSBQVUJMSUNB VElPTiBwdWJfdGFiOyIpOworCSBQVUJMSUNBVElPTiBwdWJfdGFiIFdJVEggKGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbj1hbGwpIik7CiAKICMgV2FpdCBmb3IgaW5pdGlhbCB0YWJsZSBzeW5jIHRv IGZpbmlzaAogJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5v ZGVfcHVibGlzaGVyLCAkYXBwbmFtZSk7CkBAIC04NiwxMCArODYsMzUgQEAgJG5vZGVfc3Vic2Ny aWJlci0+d2FpdF9mb3JfbG9nKAogLipLZXkgXChjXCk9XCg0XCk7IGV4aXN0aW5nIGxvY2FsIHJv dyBcKDQsIDQsIDRcKTsgcmVtb3RlIHJvdyBcKDIsIDMsIDRcKS4vLAogCSRsb2dfb2Zmc2V0KTsK IAorIyBWZXJpZnkgdGhlIGNvbnRlbnRzIG9mIHRoZSBDb25mbGljdCBMb2cgVGFibGUgKENMVCkK KyMgVGhpcyBzZWN0aW9uIGVuc3VyZXMgdGhhdCB0aGUgY2x0IGNvbnRhaW5zIHRoZSBleHBlY3Rl ZAorIyB0eXBlIGFuZCBzcGVjaWZpYyBrZXkgZGF0YS4KK215ICRzdWJpZCA9ICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1Qgb2lkIEZST00gcGdfc3Vic2Ny aXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAnc3ViX3RhYic7Iik7CitteSAkY2x0ID0gInBnX2NvbmZs aWN0LnBnX2NvbmZsaWN0XyRzdWJpZCI7CisKKyMgV2FpdCBmb3IgdGhlIGNvbmZsaWN0IHRvIGJl IGxvZ2dlZCBpbiB0aGUgQ0xUCitteSAkbG9nX2NoZWNrID0gJG5vZGVfc3Vic2NyaWJlci0+cG9s bF9xdWVyeV91bnRpbCgKKyAgICAncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPiAw IEZST00gJGNsdDsiCispOworCitteSAkY29uZmxpY3RfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopIEZST00gJGNsdCBX SEVSRSBjb25mbGljdF90eXBlID0gJ211bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMnOyIpOworaXMo JGNvbmZsaWN0X2NoZWNrLCAxLCAnVmVyaWZpZWQgbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyBs b2dnZWQgaW50byBjb25mbGljdCBsb2cgdGFibGUnKTsKKworbXkgJGpzb25fcXVlcnkgPSAiU0VM RUNUIGxvY2FsX2NvbmZsaWN0cyBGUk9NICRjbHQ7IjsKK215ICRyYXdfanNvbiA9ICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkanNvbl9xdWVyeSk7CisKKyMgVmVyaWZ5 IHRoYXQgJzInIGlzIHByZXNlbnQgaW5zaWRlIHRoZSBKU09OIHN0cnVjdHVyZSB1c2luZyBhIHJl Z2V4CisjIFRoaXMgbWF0Y2hlcyB0aGUga2V5L3ZhbHVlIHBhdHRlcm4gZm9yICJhIjogMgorbGlr ZSgkcmF3X2pzb24sIHFyL1xcImFcXCI6Mi8sICdWZXJpZmllZCB0aGF0IGtleSAyIGV4aXN0cyBp biB0aGUgbG9jYWxfY29uZmxpY3RzJyk7CisKIHBhc3MoJ211bHRpcGxlX3VuaXF1ZV9jb25mbGlj dHMgZGV0ZWN0ZWQgZHVyaW5nIGluc2VydCcpOwogCiAjIFRydW5jYXRlIHRhYmxlIHRvIGdldCBy aWQgb2YgdGhlIGVycm9yCiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IlRSVU5DQVRFIGNvbmZfdGFiOyIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJERUxFVEUgRlJPTSAkY2x0Iik7CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFRlc3QgbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0 cyBkdWUgdG8gVVBEQVRFCkBAIC0xMTgsNiArMTQzLDI2IEBAICRub2RlX3N1YnNjcmliZXItPndh aXRfZm9yX2xvZygKIC4qS2V5IFwoY1wpPVwoOFwpOyBleGlzdGluZyBsb2NhbCByb3cgXCg4LCA4 LCA4XCk7IHJlbW90ZSByb3cgXCg2LCA3LCA4XCkuLywKIAkkbG9nX29mZnNldCk7CiAKKyMgVmVy aWZ5IHRoZSBjb250ZW50cyBvZiB0aGUgQ29uZmxpY3QgTG9nIFRhYmxlIChDTFQpCisjIFRoaXMg c2VjdGlvbiBlbnN1cmVzIHRoYXQgdGhlIENMVCBjb250YWlucyB0aGUgZXhwZWN0ZWQKKyMgdHlw ZSBhbmQgc3BlY2lmaWMga2V5IGRhdGEuCisKKyMgV2FpdCBmb3IgdGhlIGNvbmZsaWN0IHRvIGJl IGxvZ2dlZCBpbiB0aGUgQ0xUCiskbG9nX2NoZWNrID0gJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9x dWVyeV91bnRpbCgKKyAgICAncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPiAwIEZS T00gJGNsdDsiCispOworCiskY29uZmxpY3RfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopIEZST00gJGNsdCBXSEVSRSBj b25mbGljdF90eXBlID0gJ211bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMnOyIpOworaXMoJGNvbmZs aWN0X2NoZWNrLCAxLCAnVmVyaWZpZWQgbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyBsb2dnZWQg aW50byBjb25mbGljdCBsb2cgdGFibGUnKTsKKworJHJhd19qc29uID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICRqc29uX3F1ZXJ5KTsKKworIyBWZXJpZnkgdGhhdCAn NicgaXMgcHJlc2VudCBpbnNpZGUgdGhlIEpTT04gc3RydWN0dXJlIHVzaW5nIGEgcmVnZXgKKyMg VGhpcyBtYXRjaGVzIHRoZSBrZXkvdmFsdWUgcGF0dGVybiBmb3IgImEiOiA2CitsaWtlKCRyYXdf anNvbiwgcXIvXFwiYVxcIjo2LywgJ1ZlcmlmaWVkIHRoYXQga2V5IDYgZXhpc3RzIGluIHRoZSBs b2NhbF9jb25mbGljdHMnKTsKKwogcGFzcygnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyBkZXRl Y3RlZCBkdXJpbmcgdXBkYXRlJyk7CiAKICMgVHJ1bmNhdGUgdGFibGUgdG8gZ2V0IHJpZCBvZiB0 aGUgZXJyb3IKLS0gCjIuNDkuMAoK --0000000000000db5ba06487b8131 Content-Type: application/x-patch; name="v22-0003-Doccumentation-patch.patch" Content-Disposition: attachment; filename="v22-0003-Doccumentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkghc3ha2 RnJvbSA4Yjc3ZDZmZjEyYTQ3ZjcyNGMyYWQ1NjRlMThkM2JmMTM5OWU2OTA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogU3VuLCAyMSBEZWMgMjAyNSAxODo1MTo1NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjIy IDMvM10gRG9jY3VtZW50YXRpb24gcGF0Y2gKCi0tLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbCAgICAgfCAxMTYgKysrKysrKysrKysrKysrKysrKysrLQogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgfCAgMTQgKystCiBkb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCB8ICA0NSArKysrKysrKysKIDMgZmlsZXMgY2hh bmdlZCwgMTcyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2Fs LXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggNjhkNmVmZTUxMTQuLjQxNTE3YmYyNzE2IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTI4OSw2ICsyODksMTkgQEAKICAgIG9w dGlvbiBvZiA8Y29tbWFuZD5DUkVBVEUgU1VCU0NSSVBUSU9OPC9jb21tYW5kPiBmb3IgZGV0YWls cy4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgQ29uZmxpY3RzIHRoYXQgb2NjdXIgZHVyaW5n IHJlcGxpY2F0aW9uIGFyZSwgYnkgZGVmYXVsdCwgbG9nZ2VkIGFzIHBsYWluIHRleHQKKyAgIGlu IHRoZSBzZXJ2ZXIgbG9nLCB3aGljaCBjYW4gbWFrZSBhdXRvbWF0ZWQgbW9uaXRvcmluZyBhbmQg YW5hbHlzaXMgZGlmZmljdWx0LgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBTVUJTQ1JJUFRJT048 L2NvbW1hbmQ+IGNvbW1hbmQgcHJvdmlkZXMgdGhlCisgICA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+Cisg ICA8bGl0ZXJhbD5jb25mbGljdF9sb2dfZGVzdGluYXRpb248L2xpdGVyYWw+PC9saW5rPiBvcHRp b24gdG8gcmVjb3JkIGRldGFpbGVkCisgICBjb25mbGljdCBpbmZvcm1hdGlvbiBpbiBhIHN0cnVj dHVyZWQsIHF1ZXJ5YWJsZSBmb3JtYXQuIFdoZW4gdGhpcyBwYXJhbWV0ZXIKKyAgIGlzIHNldCB0 byA8bGl0ZXJhbD50YWJsZTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+YWxsPC9saXRlcmFsPiwgdGhl IHN5c3RlbQorICAgYXV0b21hdGljYWxseSBtYW5hZ2VzIGEgZGVkaWNhdGVkIGNvbmZsaWN0IGxv ZyB0YWJsZSwgd2hpY2ggaXMgY3JlYXRlZCBhbmQKKyAgIGRyb3BwZWQgYWxvbmcgd2l0aCB0aGUg c3Vic2NyaXB0aW9uLiBUaGlzIHNpZ25pZmljYW50bHkgaW1wcm92ZXMgcG9zdC1tb3J0ZW0KKyAg IGFuYWx5c2lzIGFuZCBvcGVyYXRpb25hbCB2aXNpYmlsaXR5IG9mIHRoZSByZXBsaWNhdGlvbiBz ZXR1cC4KKyAgPC9wYXJhPgorCiAgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1zdWJz Y3JpcHRpb24tc2xvdCI+CiAgICA8dGl0bGU+TG9naWNhbCBSZXBsaWNhdGlvbiBTbG90IE1hbmFn ZW1lbnQ8L3RpdGxlPgogCkBAIC0yMTE4LDcgKzIxMzEsOTggQEAgUHVibGljYXRpb25zOgogICA8 L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBUaGUgbG9nIGZvcm1hdCBmb3IgbG9naWNhbCByZXBsaWNh dGlvbiBjb25mbGljdHMgaXMgYXMgZm9sbG93czoKKyAgIFdoZW4gdGhlIDxsaW5rIGxpbmtlbmQ9 InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtY29uZmxpY3QtbG9nLWRlc3RpbmF0 aW9uIj48bGl0ZXJhbD5jb25mbGljdF9sb2dfZGVzdGluYXRpb248L2xpdGVyYWw+PC9saW5rPgor ICAgaXMgc2V0IHRvIDxsaXRlcmFsPnRhYmxlPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5hbGw8L2xp dGVyYWw+LCB0aGUgc3lzdGVtCisgICBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYSBuZXcgdGFibGUg d2l0aCBhIHByZWRlZmluZWQgc2NoZW1hIHRvIGxvZyBjb25mbGljdAorICAgZGV0YWlscy4gVGhp cyB0YWJsZSBpcyBjcmVhdGVkIGluIHRoZSBkZWRpY2F0ZWQKKyAgIDxsaXRlcmFsPnBnX2NvbmZs aWN0PC9saXRlcmFsPiBuYW1lc3BhY2UuICBUaGUgbmFtZSBvZiB0aGUgY29uZmxpY3QgbG9nIHRh YmxlCisgICBpcyBwZ19jb25mbGljdF88cmVwbGFjZWFibGU+c3Vic2NyaXB0aW9uX29pZDwvcmVw bGFjZWFibGU+LiBUaGUgc2NoZW1hIG9mIHRoaXMKKyAgIHRhYmxlIGlzIGRldGFpbGVkIGluCisg ICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNvbmZsaWN0LWxvZy1zY2hlbWEi Lz4uCisgIDwvcGFyYT4KKworICA8dGFibGUgaWQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29uZmxp Y3QtbG9nLXNjaGVtYSI+CisgICA8dGl0bGU+Q29uZmxpY3QgTG9nIFRhYmxlIFNjaGVtYTwvdGl0 bGU+CisgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeT5Db2x1bW48L2VudHJ5PgorICAgICAgPGVudHJ5PlR5cGU8L2VudHJ5PgorICAgICAg PGVudHJ5PkRlc2NyaXB0aW9uPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKyAg ICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVsaWQ8L2xpdGVy YWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT5vaWQ8L3R5cGU+PC9lbnRyeT4KKyAgICAg IDxlbnRyeT5UaGUgT0lEIG9mIHRoZSBsb2NhbCB0YWJsZSB3aGVyZSB0aGUgY29uZmxpY3Qgb2Nj dXJyZWQuPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxp dGVyYWw+c2NoZW1hbmFtZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnRl eHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5UaGUgc2NoZW1hIG5hbWUgb2YgdGhlIGNv bmZsaWN0aW5nIHRhYmxlLjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAg PGVudHJ5PjxsaXRlcmFsPnJlbG5hbWU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48 dHlwZT50ZXh0PC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIG5hbWUgb2YgdGhlIGNv bmZsaWN0aW5nIHRhYmxlLjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAg PGVudHJ5PjxsaXRlcmFsPmNvbmZsaWN0X3R5cGU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxl bnRyeT48dHlwZT50ZXh0PC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIHR5cGUgb2Yg Y29uZmxpY3QgdGhhdCBvY2N1cnJlZCAoZS5nLiwgPGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0 ZXJhbD4pLjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5Pjxs aXRlcmFsPnJlbW90ZV94aWQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT54 aWQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5UaGUgcmVtb3RlIHRyYW5zYWN0aW9uIElE IHRoYXQgY2F1c2VkIHRoZSBjb25mbGljdC48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5yZW1vdGVfY29tbWl0X2xzbjwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnBnX2xzbjwvdHlwZT48L2VudHJ5PgorICAgICAgPGVu dHJ5PlRoZSBmaW5hbCBMU04gb2YgdGhlIHJlbW90ZSB0cmFuc2FjdGlvbi48L2VudHJ5PgorICAg ICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5yZW1vdGVfY29tbWl0 X3RzPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+dGltZXN0YW1wdHo8L3R5 cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5UaGUgcmVtb3RlIGNvbW1pdCB0aW1lc3RhbXAgb2Yg dGhlIHJlbW90ZSB0cmFuc2FjdGlvbi48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeT48bGl0ZXJhbD5yZW1vdGVfb3JpZ2luPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICA8ZW50cnk+PHR5cGU+dGV4dDwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PlRoZSBv cmlnaW4gb2YgdGhlIHJlbW90ZSB0cmFuc2FjdGlvbi48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5yZW1vdGVfdHVwbGU8L2xpdGVyYWw+PC9l bnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT5qc29uPC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50 cnk+VGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGluY29taW5nIHJlbW90ZSByb3cgdGhh dCBjYXVzZWQgdGhlIGNvbmZsaWN0LjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93Pgor ICAgICAgPGVudHJ5PjxsaXRlcmFsPmxvY2FsX2NvbmZsaWN0czwvbGl0ZXJhbD48L2VudHJ5Pgor ICAgICAgPGVudHJ5Pjx0eXBlPmpzb25bXTwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5Pgor ICAgICAgIEFuIGFycmF5IG9mIEpTT04gb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIGxvY2FsIHN0 YXRlIGZvciBlYWNoIGNvbmZsaWN0IGF0dGVtcHQuCisgICAgICAgRWFjaCBvYmplY3QgaW5jbHVk ZXMgdGhlIGxvY2FsIHRyYW5zYWN0aW9uIElEICg8bGl0ZXJhbD54aWQ8L2xpdGVyYWw+KSwgY29t bWl0CisgICAgICAgdGltZXN0YW1wICg8bGl0ZXJhbD5jb21taXRfdHM8L2xpdGVyYWw+KSwgb3Jp Z2luICg8bGl0ZXJhbD5vcmlnaW48L2xpdGVyYWw+KSwKKyAgICAgICBjb25mbGljdGluZyBrZXkg ZGF0YSAoPGxpdGVyYWw+a2V5PC9saXRlcmFsPiksIGFuZCB0aGUgZnVsbCBsb2NhbCByb3cKKyAg ICAgICBpbWFnZSAoPGxpdGVyYWw+dHVwbGU8L2xpdGVyYWw+KS4KKyAgICAgIDwvZW50cnk+Cisg ICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKworICA8 cGFyYT4KKyAgIFRoZSBjb25mbGljdGluZyByb3cgZGF0YSwgaW5jbHVkaW5nIHRoZSBvcmlnaW5h bCBsb2NhbCB0dXBsZSBhbmQKKyAgIHRoZSByZW1vdGUgdHVwbGUsIGlzIHN0b3JlZCBpbiA8dHlw ZT5KU09OPC90eXBlPiBjb2x1bW5zICg8bGl0ZXJhbD5sb2NhbF90dXBsZTwvbGl0ZXJhbD4KKyAg IGFuZCA8bGl0ZXJhbD5yZW1vdGVfdHVwbGU8L2xpdGVyYWw+KSBmb3IgZmxleGlibGUgcXVlcnlp bmcgYW5kIGFuYWx5c2lzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBJZiA8bGluayBsaW5r ZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0 aW5hdGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGlu az4KKyAgIGlzIGxlZnQgYXQgdGhlIGRlZmF1bHQgc2V0dGluZyBvciBleHBsaWNpdGx5IGNvbmZp Z3VyZWQgYXMgPGxpdGVyYWw+bG9nPC9saXRlcmFsPgorICAgb3IgPGxpdGVyYWw+YWxsPC9saXRl cmFsPiwgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMgYXJlIGxvZ2dlZCBpbiB0aGUKKyAg IGZvbGxvd2luZyBmb3JtYXQ6CiA8c3lub3BzaXM+CiBMT0c6ICBjb25mbGljdCBkZXRlY3RlZCBv biByZWxhdGlvbiAiPHJlcGxhY2VhYmxlPnNjaGVtYW5hbWU8L3JlcGxhY2VhYmxlPi48cmVwbGFj ZWFibGU+dGFibGVuYW1lPC9yZXBsYWNlYWJsZT4iOiBjb25mbGljdD08cmVwbGFjZWFibGU+Y29u ZmxpY3RfdHlwZTwvcmVwbGFjZWFibGU+CiBERVRBSUw6ICA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZGV0YWlsZWRfZXhwbGFuYXRpb248L3JlcGxhY2VhYmxlPi4KQEAgLTI0MTIsNiAr MjUxNiwxNiBAQCBDT05URVhUOiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0YSBmb3IgcmVwbGljYXRp b24gb3JpZ2luICJwZ18xNjM5NSIgZHVyaW5nICJJTlNFUgogICAgICBrZXkgb3IgcmVwbGljYSBp ZGVudGl0eSBkZWZpbmVkIGZvciBpdC4KICAgICA8L3BhcmE+CiAgICA8L2xpc3RpdGVtPgorCisg ICA8bGlzdGl0ZW0+CisgICAgPHBhcmE+CisgICAgIFRoZSBpbnRlcm5hbCB0YWJsZSBhdXRvbWF0 aWNhbGx5IGNyZWF0ZWQgd2hlbgorICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2Ny aXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+PGxpdGVyYWw+Y29u ZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGluaz4KKyAgICAgaXMgc2V0IHRvIDxs aXRlcmFsPnRhYmxlPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+IGlzIGV4Y2x1 ZGVkIGZyb20KKyAgICAgbG9naWNhbCByZXBsaWNhdGlvbi4gSXQgd2lsbCBub3QgYmUgcHVibGlz aGVkLCBldmVuIGlmIGEgcHVibGljYXRpb24gb24gdGhlCisgICAgIHN1YnNjcmliZXIgaXMgZGVm aW5lZCB1c2luZyA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4uCisgICAgPC9wYXJh PgorICAgPC9saXN0aXRlbT4KICAgPC9pdGVtaXplZGxpc3Q+CiAgPC9zZWN0MT4KIApkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKaW5kZXggMjdjMDY0MzlmNGYuLjJkZTJj M2M1MmZiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKQEAgLTI4 MCw4ICsyODAsOSBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPAogICAgICAgPGxpbmsgbGlua2Vu ZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1vcmlnaW4iPjxsaXRlcmFsPm9y aWdpbjwvbGl0ZXJhbD48L2xpbms+LAogICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1 YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVy YWw+PC9saW5rPiwKICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24t cGFyYW1zLXdpdGgtdHdvLXBoYXNlIj48bGl0ZXJhbD50d29fcGhhc2U8L2xpdGVyYWw+PC9saW5r PiwKLSAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdp dGgtcmV0YWluLWRlYWQtdHVwbGVzIj48bGl0ZXJhbD5yZXRhaW5fZGVhZF90dXBsZXM8L2xpdGVy YWw+PC9saW5rPiwgYW5kCi0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0 aW9uLXBhcmFtcy13aXRoLW1heC1yZXRlbnRpb24tZHVyYXRpb24iPjxsaXRlcmFsPm1heF9yZXRl bnRpb25fZHVyYXRpb248L2xpdGVyYWw+PC9saW5rPi4KKyAgICAgIDxsaW5rIGxpbmtlbmQ9InNx bC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtcmV0YWluLWRlYWQtdHVwbGVzIj48bGl0 ZXJhbD5yZXRhaW5fZGVhZF90dXBsZXM8L2xpdGVyYWw+PC9saW5rPiwKKyAgICAgIDxsaW5rIGxp bmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtbWF4LXJldGVudGlvbi1k dXJhdGlvbiI+PGxpdGVyYWw+bWF4X3JldGVudGlvbl9kdXJhdGlvbjwvbGl0ZXJhbD48L2xpbms+ IGFuZCwKKyAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1z LXdpdGgtY29uZmxpY3QtbG9nLWRlc3RpbmF0aW9uIj48bGl0ZXJhbD5jb25mbGljdF9sb2dfZGVz dGluYXRpb248L2xpdGVyYWw+PC9saW5rPi4KICAgICAgIE9ubHkgYSBzdXBlcnVzZXIgY2FuIHNl dCA8bGl0ZXJhbD5wYXNzd29yZF9yZXF1aXJlZCA9IGZhbHNlPC9saXRlcmFsPi4KICAgICAgPC9w YXJhPgogCkBAIC0zMzksNiArMzQwLDE1IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAgICAg ICA8cXVvdGU+PGxpdGVyYWw+cGdfY29uZmxpY3RfZGV0ZWN0aW9uPC9saXRlcmFsPjwvcXVvdGU+ LCBjcmVhdGVkIHRvIHJldGFpbgogICAgICAgZGVhZCB0dXBsZXMgZm9yIGNvbmZsaWN0IGRldGVj dGlvbiwgd2lsbCBiZSBkcm9wcGVkLgogICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAg ICBXaGVuIHRoZSA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13 aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3Rp bmF0aW9uPC9saXRlcmFsPjwvbGluaz4KKyAgICAgIHBhcmFtZXRlciBpcyBzZXQgdG8gPGxpdGVy YWw+dGFibGU8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBzeXN0ZW0K KyAgICAgIGF1dG9tYXRpY2FsbHkgY3JlYXRlcyB0aGUgaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRh YmxlIGlmIGl0IGRvZXMgbm90IGFscmVhZHkKKyAgICAgIGV4aXN0LiBDb252ZXJzZWx5LCBpZiB0 aGUgZGVzdGluYXRpb24gaXMgY2hhbmdlZCB0bworICAgICAgPGxpdGVyYWw+bG9nPC9saXRlcmFs PiwgbG9nZ2luZyB0byB0aGUgdGFibGUgc3RvcHMgYW5kIHRoZSBpbnRlcm5hbAorICAgICAgdGFi bGUgaXMgYXV0b21hdGljYWxseSBkcm9wcGVkLgorICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRl bT4KICAgIDwvdmFybGlzdGVudHJ5PgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlw dGlvbi5zZ21sCmluZGV4IGI3ZGQzNjEyOTRiLi4zNjE5ZmFmODdhYSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKQEAgLTI0Nyw2ICsyNDcsNTEgQEAgQ1JFQVRF IFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3Vic2NyaXB0aW9u X25hbWU8L3JlcGxhY2VhYmwKICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3Rl bnRyeT4KIAorICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24t cGFyYW1zLXdpdGgtY29uZmxpY3QtbG9nLWRlc3RpbmF0aW9uIj4KKyAgICAgICAgPHRlcm0+PGxp dGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPiAoPHR5cGU+ZW51bTwvdHlw ZT4pPC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAg ICBTcGVjaWZpZXMgdGhlIGRlc3RpbmF0aW9uIGZvciByZWNvcmRpbmcgbG9naWNhbCByZXBsaWNh dGlvbiBjb25mbGljdHMuCisgICAgICAgICA8L3BhcmE+CisgICAgICAgICA8Y2F1dGlvbj4KKyAg ICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgVGhlIGludGVybmFsIGNvbmZsaWN0IGxvZ2dpbmcg dGFibGUgaXMgc3RyaWN0bHkgdGllZCB0byB0aGUgbGlmZWN5Y2xlIG9mIHRoZQorICAgICAgICAg ICBzdWJzY3JpcHRpb24gb3IgdGhlIDxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwv bGl0ZXJhbD4gc2V0dGluZy4gSWYKKyAgICAgICAgICAgdGhlIHN1YnNjcmlwdGlvbiBpcyBkcm9w cGVkLCBvciBpZiB0aGUgZGVzdGluYXRpb24gaXMgY2hhbmdlZCB0bworICAgICAgICAgICA8bGl0 ZXJhbD5sb2c8L2xpdGVyYWw+LCB0aGUgdGFibGUgYW5kIGFsbCBpdHMgcmVjb3JkZWQgY29uZmxp Y3QgZGF0YSBhcmUKKyAgICAgICAgICAgPGVtcGhhc2lzPnBlcm1hbmVudGx5IGRlbGV0ZWQ8L2Vt cGhhc2lzPi4gVG8gcGVyZm9ybSBhIHBvc3QtbW9ydGVtIGFuYWx5c2lzCisgICAgICAgICAgIGFm dGVyIHJlbW92aW5nIGEgc3Vic2NyaXB0aW9uLCB1c2VycyBtdXN0IG1hbnVhbGx5IGJhY2sgdXAg b3IgcmVuYW1lIHRoZQorICAgICAgICAgICBjb25mbGljdCB0YWJsZSBiZWZvcmUgdGhlIGRlbGV0 aW9uIG9jY3Vycy4KKyAgICAgICAgICA8L3BhcmE+CisgICAgICAgICA8L2NhdXRpb24+CisgICAg ICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgYXZhaWxhYmxlIGRlc3RpbmF0aW9ucyBhcmU6Cisg ICAgICAgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAg ICAgPHBhcmE+CisgICAgICAgICAgICAgPGxpdGVyYWw+bG9nPC9saXRlcmFsPjogQ29uZmxpY3Qg ZGV0YWlscyBhcmUgcmVjb3JkZWQgaW4gdGhlIHNlcnZlciBsb2cuCisgICAgICAgICAgICAgVGhp cyBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvci4KKyAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgICAgPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+OiBUaGUgc3lzdGVtIGF1dG9t YXRpY2FsbHkgY3JlYXRlcyBhIHN0cnVjdHVyZWQgdGFibGUKKyAgICAgICAgICAgICBuYW1lZCA8 bGl0ZXJhbD5wZ19jb25mbGljdF8mbHQ7c3ViaWQmZ3Q7PC9saXRlcmFsPiBpbiB0aGUKKyAgICAg ICAgICAgICA8bGl0ZXJhbD5wZ19jb25mbGljdDwvbGl0ZXJhbD4gc2NoZW1hLiBUaGlzIGFsbG93 cyBmb3IgZWFzeSBxdWVyeWluZyBhbmQKKyAgICAgICAgICAgICBhbmFseXNpcyBvZiBjb25mbGlj dHMuIFRoaXMgdGFibGUgaXMgYXV0b21hdGljYWxseSBkcm9wcGVkIHdoZW4gdGhlCisgICAgICAg ICAgICAgc3Vic2NyaXB0aW9uIGlzIHJlbW92ZWQuCisgICAgICAgICAgICA8L3BhcmE+CisgICAg ICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxw YXJhPgorICAgICAgICAgICAgIDxsaXRlcmFsPmFsbDwvbGl0ZXJhbD46IFJlY29yZHMgdG8gYm90 aCB0aGUgc2VydmVyIGxvZyBhbmQgdGhlIHRhYmxlLgorICAgICAgICAgICAgPC9wYXJhPgorICAg ICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgICAgICAg PC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorCiAg ICAgICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0 aC1jb3B5LWRhdGEiPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5jb3B5X2RhdGE8L2xpdGVyYWw+ ICg8dHlwZT5ib29sZWFuPC90eXBlPik8L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KLS0gCjIu NDkuMAoK --0000000000000db5ba06487b8131 Content-Type: application/x-patch; name="v22-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Disposition: attachment; filename="v22-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkghc3gt0 RnJvbSA1ODZhZjhlMDI3OTMyZGZjMzFlMWZhNDBmMTM2YjJiYWRlNmM1MTMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAxNyBEZWMgMjAyNSAxMTo1Mzo0NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjIy IDEvM10gQWRkIGNvbmZpZ3VyYWJsZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIExvZ2ljYWwKIFJl cGxpY2F0aW9uCgpUaGlzIHBhdGNoIGFkZHMgYSBmZWF0dXJlIHRvIHByb3ZpZGUgYSBzdHJ1Y3R1 cmVkLCBxdWVyeWFibGUgcmVjb3JkIG9mIGFsbApsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0 cy4gVGhlIGN1cnJlbnQgYXBwcm9hY2ggb2YgbG9nZ2luZyBjb25mbGljdHMgYXMKcGxhaW4gdGV4 dCBpbiB0aGUgc2VydmVyIGxvZ3MgbWFrZXMgaXQgZGlmZmljdWx0IHRvIHF1ZXJ5LCBhbmFseXpl LCBhbmQKdXNlIGZvciBleHRlcm5hbCBtb25pdG9yaW5nIGFuZCBhdXRvbWF0aW9uLgoKVGhpcyBw YXRjaCBhZGRyZXNzZXMgdGhlc2UgbGltaXRhdGlvbnMgYnkgaW50cm9kdWNpbmcgYSBjb25maWd1 cmFibGUKY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPSgnbG9nJy8ndGFibGUnLydhbGwnKSBvcHRp b24gaW4gdGhlIENSRUFURSBTVUJTQ1JJUFRJT04KY29tbWFuZC4KCklmIHRoZSB1c2VyIGNob29z ZXMgdG8gZW5hYmxlIGxvZ2dpbmcgdG8gYSB0YWJsZSAoYnkgc2VsZWN0aW5nICd0YWJsZScgb3Ig J2FsbCcpLAphbiBpbnRlcm5hbCBsb2dnaW5nIHRhYmxlIG5hbWVkIGNvbmZsaWN0X2xvZ190YWJs ZV88c3ViaWQ+IGlzIGF1dG9tYXRpY2FsbHkKY3JlYXRlZCB3aXRoaW4gYSBkZWRpY2F0ZWQsIHN5 c3RlbS1tYW5hZ2VkIG5hbWVzcGFjZSBuYW1lZCBwZ19jb25mbGljdC4gVGhpcyB0YWJsZQppcyBs aW5rZWQgdG8gdGhlIHN1YnNjcmlwdGlvbiB2aWEgYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSwgZW5z dXJpbmcgaXQgaXMKYXV0b21hdGljYWxseSBkcm9wcGVkIHdoZW4gdGhlIHN1YnNjcmlwdGlvbiBp cyByZW1vdmVkLgoKVGhlIGNvbmZsaWN0IGRldGFpbHMsIGluY2x1ZGluZyB0aGUgb3JpZ2luYWwg YW5kIHJlbW90ZSB0dXBsZXMsIGFyZSBzdG9yZWQgaW4gSlNPTgpjb2x1bW5zLCBwcm92aWRpbmcg YSBmbGV4aWJsZSBmb3JtYXQgdG8gYWNjb21tb2RhdGUgZGlmZmVyZW50IHRhYmxlIHNjaGVtYXMu CgpUaGUgbG9nIHRhYmxlIGNhcHR1cmVzIGVzc2VudGlhbCBhdHRyaWJ1dGVzIHN1Y2ggYXMgbG9j YWwgYW5kIHJlbW90ZSB0cmFuc2FjdGlvbiBJRHMsCkxTTnMsIGNvbW1pdCB0aW1lc3RhbXBzLCBh bmQgY29uZmxpY3QgdHlwZSwgcHJvdmlkaW5nIGEgY29tcGxldGUgcmVjb3JkIGZvciBwb3N0LW1v cnRlbQphbmFseXNpcy4KClRoaXMgZmVhdHVyZSB3aWxsIG1ha2UgbG9naWNhbCByZXBsaWNhdGlv biBjb25mbGljdHMgZWFzaWVyIHRvIG1vbml0b3IgYW5kIG1hbmFnZSwKc2lnbmlmaWNhbnRseSBp bXByb3ZpbmcgdGhlIG92ZXJhbGwgcmVzaWxpZW5jZSBhbmQgb3BlcmFiaWxpdHkgb2YgcmVwbGlj YXRpb24gc2V0dXBzLgoKVGhlIGNvbmZsaWN0IGxvZyB0YWJsZXMgd2lsbCBub3QgYmUgaW5jbHVk ZWQgaW4gYSBwdWJsaWNhdGlvbiwgZXZlbiBpZiB0aGUgcHVibGljYXRpb24KaXMgY29uZmlndXJl ZCB0byBpbmNsdWRlIEFMTCBUQUJMRVMgb3IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEuCi0tLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMgICAgICAgICAgICAgIHwgIDI3ICstCiBzcmMvYmFj a2VuZC9jYXRhbG9nL2hlYXAuYyAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5k L2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgIHwgIDE0ICstCiBzcmMvYmFja2VuZC9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbi5jICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jICAgIHwgMjM5ICsrKysrKysrKystCiBzcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNNYWluLmMgICAgICAgICAgICB8ICAxOCArCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAg ICAgICAgICAgICAgICAgfCAgMTYgKy0KIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAg ICAgICAgICAgICB8ICAgOCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmggICAgICAg ICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRhdCAgICAg ICB8ICAgMyArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oICAgICAgfCAg MTEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5oICAgIHwgICAzICsK IHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggICAgICAgICB8ICA1NSArKysKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCB8IDQ0NCArKysrKysrKysr KysrKysrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwgICAgICB8 IDIxNyArKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAg ICAgfCAgIDIgKwogMTggZmlsZXMgY2hhbmdlZCwgOTgxIGluc2VydGlvbnMoKyksIDEwMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCmluZGV4IDdiZTQ5MDMyOTM0Li5kNDM4ZGM2ODJl YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMKQEAgLTg2LDcgKzg2LDggQEAgYm9vbAogSXNTeXN0ZW1D bGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpCiB7CiAJLyogSXNDYXRhbG9n UmVsYXRpb25PaWQgaXMgYSBiaXQgZmFzdGVyLCBzbyB0ZXN0IHRoYXQgZmlyc3QgKi8KLQlyZXR1 cm4gKElzQ2F0YWxvZ1JlbGF0aW9uT2lkKHJlbGlkKSB8fCBJc1RvYXN0Q2xhc3MocmVsdHVwbGUp KTsKKwlyZXR1cm4gKElzQ2F0YWxvZ1JlbGF0aW9uT2lkKHJlbGlkKSB8fCBJc1RvYXN0Q2xhc3Mo cmVsdHVwbGUpCisJCQl8fCBJc0NvbmZsaWN0Q2xhc3MocmVsdHVwbGUpKTsKIH0KIAogLyoKQEAg LTIzMCw2ICsyMzEsMTggQEAgSXNUb2FzdENsYXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpCiAJ cmV0dXJuIElzVG9hc3ROYW1lc3BhY2UocmVsbmFtZXNwYWNlKTsKIH0KIAorLyoKKyAqIElzQ29u ZmxpY3RDbGFzcyAtIENoZWNrIGlmIHRoZSBnaXZlbiBwZ19jbGFzcyB0dXBsZSBiZWxvbmdzIHRv IHRoZSBjb25mbGljdAorICoJCQkJCSBuYW1lc3BhY2UuCisgKi8KK2Jvb2wKK0lzQ29uZmxpY3RD bGFzcyhGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQoreworCU9pZAkJCXJlbG5hbWVzcGFjZSA9IHJl bHR1cGxlLT5yZWxuYW1lc3BhY2U7CisKKwlyZXR1cm4gSXNDb25mbGljdE5hbWVzcGFjZShyZWxu YW1lc3BhY2UpOworfQorCiAvKgogICogSXNDYXRhbG9nTmFtZXNwYWNlCiAgKgkJVHJ1ZSBpZmYg bmFtZXNwYWNlIGlzIHBnX2NhdGFsb2cuCkBAIC0yNjQsNiArMjc3LDE4IEBAIElzVG9hc3ROYW1l c3BhY2UoT2lkIG5hbWVzcGFjZUlkKQogCQlpc1RlbXBUb2FzdE5hbWVzcGFjZShuYW1lc3BhY2VJ ZCk7CiB9CiAKKy8qCisgKiBJc0NvbmZsaWN0TmFtZXNwYWNlCisgKgkJVHJ1ZSBpZmYgbmFtZXNw YWNlIGlzIHBnX2NvbmZsaWN0LgorICoKKyAqCQlEb2VzIG5vdCBwZXJmb3JtIGFueSBjYXRhbG9n IGFjY2Vzc2VzLgorICovCitib29sCitJc0NvbmZsaWN0TmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJ ZCkKK3sKKwlyZXR1cm4gbmFtZXNwYWNlSWQgPT0gUEdfQ09ORkxJQ1RfTkFNRVNQQUNFOworfQor CiAKIC8qCiAgKiBJc1Jlc2VydmVkTmFtZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwppbmRleCA2MDY0MzQ4MjNjZi4u MTBkYWRmMzc4YTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC0zMTQsNyArMzE0LDggQEAgaGVhcF9jcmVh dGUoY29uc3QgY2hhciAqcmVsbmFtZSwKIAkgKi8KIAlpZiAoIWFsbG93X3N5c3RlbV90YWJsZV9t b2RzICYmCiAJCSgoSXNDYXRhbG9nTmFtZXNwYWNlKHJlbG5hbWVzcGFjZSkgJiYgcmVsa2luZCAh PSBSRUxLSU5EX0lOREVYKSB8fAotCQkgSXNUb2FzdE5hbWVzcGFjZShyZWxuYW1lc3BhY2UpKSAm JgorCQkgSXNUb2FzdE5hbWVzcGFjZShyZWxuYW1lc3BhY2UpIHx8CisJCSBJc0NvbmZsaWN0TmFt ZXNwYWNlKHJlbG5hbWVzcGFjZSkpICYmCiAJCUlzTm9ybWFsUHJvY2Vzc2luZ01vZGUoKSkKIAkJ ZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxF R0UpLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggYzNiNzlhMmJhNDguLjQwMDI5MmZkMDZi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKQEAgLTM1MjMsNyArMzUyMyw3IEBAIExvb2t1cENy ZWF0aW9uTmFtZXNwYWNlKGNvbnN0IGNoYXIgKm5zcG5hbWUpCiAgKgogICogV2UgY29tcGxhaW4g aWYgZWl0aGVyIHRoZSBvbGQgb3IgbmV3IG5hbWVzcGFjZXMgaXMgYSB0ZW1wb3Jhcnkgc2NoZW1h CiAgKiAob3IgdGVtcG9yYXJ5IHRvYXN0IHNjaGVtYSksIG9yIGlmIGVpdGhlciB0aGUgb2xkIG9y IG5ldyBuYW1lc3BhY2VzIGlzIHRoZQotICogVE9BU1Qgc2NoZW1hLgorICogVE9BU1Qgc2NoZW1h IG9yIHRoZSBDT05GTElDVCBzY2hlbWEuCiAgKi8KIHZvaWQKIENoZWNrU2V0TmFtZXNwYWNlKE9p ZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQpCkBAIC0zNTM5LDYgKzM1MzksMTIgQEAgQ2hlY2tTZXRO YW1lc3BhY2UoT2lkIG9sZE5zcE9pZCwgT2lkIG5zcE9pZCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1zZygi Y2Fubm90IG1vdmUgb2JqZWN0cyBpbnRvIG9yIG91dCBvZiBUT0FTVCBzY2hlbWEiKSkpOworCisJ Lyogc2ltaWxhcmx5IGZvciBDT05GTElDVCBzY2hlbWEgKi8KKwlpZiAobnNwT2lkID09IFBHX0NP TkZMSUNUX05BTUVTUEFDRSB8fCBvbGROc3BPaWQgPT0gUEdfQ09ORkxJQ1RfTkFNRVNQQUNFKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9S VEVEKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgbW92ZSBvYmplY3RzIGludG8gb3Igb3V0IG9mIENP TkZMSUNUIHNjaGVtYSIpKSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9u LmMKaW5kZXggOWE0NzkxYzU3M2UuLmEzM2MzM2VmZTBkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJs aWNhdGlvbl9yZWwuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJj b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zdWJzY3JpcHRp b25jbWRzLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgInV0aWxzL2FycmF5Lmgi CiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKQEAgLTg1LDYgKzg2LDE1IEBAIGNoZWNrX3B1 YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihSZWxhdGlvbiB0YXJnZXRyZWwpCiAJCQkJIGVycm1zZygi Y2Fubm90IGFkZCByZWxhdGlvbiBcIiVzXCIgdG8gcHVibGljYXRpb24iLAogCQkJCQkJUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSksCiAJCQkJIGVycmRldGFpbCgiVGhpcyBvcGVy YXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgdW5sb2dnZWQgdGFibGVzLiIpKSk7CisKKwkvKiBD YW4ndCBiZSBjb25mbGljdCBsb2cgdGFibGUgKi8KKwlpZiAoSXNDb25mbGljdE5hbWVzcGFjZShS ZWxhdGlvbkdldE5hbWVzcGFjZSh0YXJnZXRyZWwpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNnKCJj YW5ub3QgYWRkIHJlbGF0aW9uIFwiJXMuJXNcIiB0byBwdWJsaWNhdGlvbiIsCisJCQkJCQlnZXRf bmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2UodGFyZ2V0cmVsKSksCisJCQkJCQlS ZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpKSwKKwkJCQkgZXJyZGV0YWlsKCJUaGlz IG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBjb25mbGljdCBsb2cgdGFibGVzLiIpKSk7 CiB9CiAKIC8qCkBAIC05NSw3ICsxMDUsOCBAQCBzdGF0aWMgdm9pZAogY2hlY2tfcHVibGljYXRp b25fYWRkX3NjaGVtYShPaWQgc2NoZW1haWQpCiB7CiAJLyogQ2FuJ3QgYmUgc3lzdGVtIG5hbWVz cGFjZSAqLwotCWlmIChJc0NhdGFsb2dOYW1lc3BhY2Uoc2NoZW1haWQpIHx8IElzVG9hc3ROYW1l c3BhY2Uoc2NoZW1haWQpKQorCWlmIChJc0NhdGFsb2dOYW1lc3BhY2Uoc2NoZW1haWQpIHx8IElz VG9hc3ROYW1lc3BhY2Uoc2NoZW1haWQpIHx8CisJCUlzQ29uZmxpY3ROYW1lc3BhY2Uoc2NoZW1h aWQpKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJB TUVURVJfVkFMVUUpLAogCQkJCSBlcnJtc2coImNhbm5vdCBhZGQgc2NoZW1hIFwiJXNcIiB0byBw dWJsaWNhdGlvbiIsCkBAIC0xMzksNiArMTUwLDcgQEAgaXNfcHVibGlzaGFibGVfY2xhc3MoT2lk IHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0g UkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSB8fAogCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0gUkVM S0lORF9TRVFVRU5DRSkgJiYKIAkJIUlzQ2F0YWxvZ1JlbGF0aW9uT2lkKHJlbGlkKSAmJgorCQkh SXNDb25mbGljdENsYXNzKHJlbHR1cGxlKSAmJgogCQlyZWx0dXBsZS0+cmVscGVyc2lzdGVuY2Ug PT0gUkVMUEVSU0lTVEVOQ0VfUEVSTUFORU5UICYmCiAJCXJlbGlkID49IEZpcnN0Tm9ybWFsT2Jq ZWN0SWQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlv bi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwppbmRleCAyYjEwMzI0 NTI5MC4uMjg1YTU5ODQ5N2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vi c2NyaXB0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwpA QCAtMTA2LDYgKzEwNiw3IEBAIEdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2lu Z19vaykKIAlzdWItPnJldGFpbmRlYWR0dXBsZXMgPSBzdWJmb3JtLT5zdWJyZXRhaW5kZWFkdHVw bGVzOwogCXN1Yi0+bWF4cmV0ZW50aW9uID0gc3ViZm9ybS0+c3VibWF4cmV0ZW50aW9uOwogCXN1 Yi0+cmV0ZW50aW9uYWN0aXZlID0gc3ViZm9ybS0+c3VicmV0ZW50aW9uYWN0aXZlOworCXN1Yi0+ Y29uZmxpY3Rsb2dyZWxpZCA9IHN1YmZvcm0tPnN1YmNvbmZsaWN0bG9ncmVsaWQ7CiAKIAkvKiBH ZXQgY29ubmluZm8gKi8KIAlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoU1VCU0NSSVBU SU9OT0lELApAQCAtMTQxLDYgKzE0MiwxMiBAQCBHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBi b29sIG1pc3Npbmdfb2spCiAJCQkJCQkJCSAgIEFudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym9yaWdp bik7CiAJc3ViLT5vcmlnaW4gPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKIAorCS8qIEdl dCBjb25mbGljdCBsb2cgZGVzdGluYXRpb24gKi8KKwlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5v dE51bGwoU1VCU0NSSVBUSU9OT0lELAorCQkJCQkJCQkgICB0dXAsCisJCQkJCQkJCSAgIEFudW1f cGdfc3Vic2NyaXB0aW9uX3N1YmNvbmZsaWN0bG9nZGVzdCk7CisJc3ViLT5jb25mbGljdGxvZ2Rl c3QgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKKwogCS8qIElzIHRoZSBzdWJzY3JpcHRp b24gb3duZXIgYSBzdXBlcnVzZXI/ICovCiAJc3ViLT5vd25lcnN1cGVydXNlciA9IHN1cGVydXNl cl9hcmcoc3ViLT5vd25lcik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1 YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMu YwppbmRleCBkNjY3NGYyMGZjMi4uZGUxOTc3ZjgxZWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z dWJzY3JpcHRpb25jbWRzLmMKQEAgLTE1LDI1ICsxNSwzMSBAQAogI2luY2x1ZGUgInBvc3RncmVz LmgiCiAKICNpbmNsdWRlICJhY2Nlc3MvY29tbWl0X3RzLmgiCisjaW5jbHVkZSAiYWNjZXNzL2hl YXBhbS5oIgogI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKICNpbmNsdWRlICJhY2Nl c3MvdGFibGUuaCIKICNpbmNsdWRlICJhY2Nlc3MvdHdvcGhhc2UuaCIKICNpbmNsdWRlICJhY2Nl c3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFs b2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvaGVhcC5oIgogI2luY2x1ZGUgImNh dGFsb2cvaW5kZXhpbmcuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRy ZXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbV9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19hdXRoaWRfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2VfZC5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbl9yZWwuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJp Z2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKICNpbmNsdWRl ICJleGVjdXRvci9leGVjdXRvci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJt aXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJwZ3N0 YXQuaCIKQEAgLTUxLDYgKzU3LDcgQEAKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNp bmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgorI2lu Y2x1ZGUgInV0aWxzL3JlZ3Byb2MuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCiAv KgpAQCAtNzUsNiArODIsNyBAQAogI2RlZmluZSBTVUJPUFRfTUFYX1JFVEVOVElPTl9EVVJBVElP TgkweDAwMDA4MDAwCiAjZGVmaW5lIFNVQk9QVF9MU04JCQkJCTB4MDAwMTAwMDAKICNkZWZpbmUg U1VCT1BUX09SSUdJTgkJCQkweDAwMDIwMDAwCisjZGVmaW5lIFNVQk9QVF9DT05GTElDVF9MT0df REVTVAkweDAwMDQwMDAwCiAKIC8qIGNoZWNrIGlmIHRoZSAndmFsJyBoYXMgJ2JpdHMnIHNldCAq LwogI2RlZmluZSBJc1NldCh2YWwsIGJpdHMpICAoKCh2YWwpICYgKGJpdHMpKSA9PSAoYml0cykp CkBAIC0xMDMsNiArMTExLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3ViT3B0cwogCWJvb2wJCXJldGFp bmRlYWR0dXBsZXM7CiAJaW50MzIJCW1heHJldGVudGlvbjsKIAljaGFyCSAgICpvcmlnaW47CisJ Q29uZmxpY3RMb2dEZXN0IGNvbmZsaWN0bG9nZGVzdDsKIAlYTG9nUmVjUHRyCWxzbjsKIH0gU3Vi T3B0czsKIApAQCAtMTM1LDcgKzE0NCw3IEBAIHN0YXRpYyBMaXN0ICptZXJnZV9wdWJsaWNhdGlv bnMoTGlzdCAqb2xkcHVibGlzdCwgTGlzdCAqbmV3cHVibGlzdCwgYm9vbCBhZGRwdWIsCiBzdGF0 aWMgdm9pZCBSZXBvcnRTbG90Q29ubmVjdGlvbkVycm9yKExpc3QgKnJzdGF0ZXMsIE9pZCBzdWJp ZCwgY2hhciAqc2xvdG5hbWUsIGNoYXIgKmVycik7CiBzdGF0aWMgdm9pZCBDaGVja0FsdGVyU3Vi T3B0aW9uKFN1YnNjcmlwdGlvbiAqc3ViLCBjb25zdCBjaGFyICpvcHRpb24sCiAJCQkJCQkJCWJv b2wgc2xvdF9uZWVkc191cGRhdGUsIGJvb2wgaXNUb3BMZXZlbCk7Ci0KK3N0YXRpYyBPaWQgY3Jl YXRlX2NvbmZsaWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1Ym5hbWUpOwogCiAvKgog ICogQ29tbW9uIG9wdGlvbiBwYXJzaW5nIGZ1bmN0aW9uIGZvciBDUkVBVEUgYW5kIEFMVEVSIFNV QlNDUklQVElPTiBjb21tYW5kcy4KQEAgLTE5MSw2ICsyMDAsOCBAQCBwYXJzZV9zdWJzY3JpcHRp b25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0bXRfb3B0aW9ucywKIAkJb3B0 cy0+bWF4cmV0ZW50aW9uID0gMDsKIAlpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9P UklHSU4pKQogCQlvcHRzLT5vcmlnaW4gPSBwc3RyZHVwKExPR0lDQUxSRVBfT1JJR0lOX0FOWSk7 CisJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpKQor CQlvcHRzLT5jb25mbGljdGxvZ2Rlc3QgPSBDT05GTElDVF9MT0dfREVTVF9MT0c7CiAKIAkvKiBQ YXJzZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywgc3RtdF9vcHRpb25zKQpAQCAtNDAyLDYgKzQx MywxOCBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExp c3QgKnN0bXRfb3B0aW9ucywKIAkJCW9wdHMtPnNwZWNpZmllZF9vcHRzIHw9IFNVQk9QVF9MU047 CiAJCQlvcHRzLT5sc24gPSBsc247CiAJCX0KKwkJZWxzZSBpZiAoSXNTZXQoc3VwcG9ydGVkX29w dHMsIFNVQk9QVF9DT05GTElDVF9MT0dfREVTVCkgJiYKKwkJCQkgc3RyY21wKGRlZmVsLT5kZWZu YW1lLCAiY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIikgPT0gMCkKKwkJeworCQkJY2hhciAqdmFs OworCisJCQlpZiAoSXNTZXQob3B0cy0+c3BlY2lmaWVkX29wdHMsIFNVQk9QVF9DT05GTElDVF9M T0dfREVTVCkpCisJCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisK KwkJCXZhbCA9IGRlZkdldFN0cmluZyhkZWZlbCk7CisJCQlvcHRzLT5jb25mbGljdGxvZ2Rlc3Qg PSBHZXRMb2dEZXN0aW5hdGlvbih2YWwpOworCQkJb3B0cy0+c3BlY2lmaWVkX29wdHMgfD0gU1VC T1BUX0NPTkZMSUNUX0xPR19ERVNUOworCQl9CiAJCWVsc2UKIAkJCWVyZXBvcnQoRVJST1IsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKQEAgLTU5OSw2ICs2MjIsNyBAQCBD cmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25T dG10ICpzdG10LAogCWJpdHMzMgkJc3VwcG9ydGVkX29wdHM7CiAJU3ViT3B0cwkJb3B0cyA9IHsw fTsKIAlBY2xSZXN1bHQJYWNscmVzdWx0OworCU9pZAkJCWxvZ3JlbGlkID0gSW52YWxpZE9pZDsK IAogCS8qCiAJICogUGFyc2UgYW5kIGNoZWNrIG9wdGlvbnMuCkBAIC02MTIsNyArNjM2LDggQEAg Q3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwKIAkJCQkJICBTVUJPUFRfRElTQUJMRV9PTl9FUlIgfCBTVUJPUFRfUEFTU1dP UkRfUkVRVUlSRUQgfAogCQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIgfCBTVUJPUFRfRkFJTE9W RVIgfAogCQkJCQkgIFNVQk9QVF9SRVRBSU5fREVBRF9UVVBMRVMgfAotCQkJCQkgIFNVQk9QVF9N QVhfUkVURU5USU9OX0RVUkFUSU9OIHwgU1VCT1BUX09SSUdJTik7CisJCQkJCSAgU1VCT1BUX01B WF9SRVRFTlRJT05fRFVSQVRJT04gfCBTVUJPUFRfT1JJR0lOIHwKKwkJCQkJICBTVUJPUFRfQ09O RkxJQ1RfTE9HX0RFU1QpOwogCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3Rt dC0+b3B0aW9ucywgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsKIAogCS8qCkBAIC03NDcsNiArNzcy LDE4IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNj cmlwdGlvblN0bXQgKnN0bXQsCiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym9yaWdp biAtIDFdID0KIAkJQ1N0cmluZ0dldFRleHREYXR1bShvcHRzLm9yaWdpbik7CiAKKwkvKiBBbHdh eXMgc2V0IHRoZSBkZXN0aW5hdGlvbiwgZGVmYXVsdCB3aWxsIGJlICdsb2cnLiAqLworCXZhbHVl c1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QgLSAxXSA9CisJCUNTdHJp bmdHZXRUZXh0RGF0dW0oQ29uZmxpY3RMb2dEZXN0TmFtZXNbb3B0cy5jb25mbGljdGxvZ2Rlc3Rd KTsKKworCS8qIElmIGxvZ2dpbmcgdG8gYSB0YWJsZSBpcyByZXF1aXJlZCwgcGh5c2ljYWxseSBj cmVhdGUgdGhlIHRhYmxlLiAqLworCWlmIChJc1NldChvcHRzLmNvbmZsaWN0bG9nZGVzdCwgQ09O RkxJQ1RfTE9HX0RFU1RfVEFCTEUpKQorCQlsb2dyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9sb2df dGFibGUoc3ViaWQsIHN0bXQtPnN1Ym5hbWUpOworCisJLyogU3RvcmUgdGFibGUgT0lEIGluIHRo ZSBjYXRhbG9nLiAqLworCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxv Z3JlbGlkIC0gMV0gPQorCQkJCQkJT2JqZWN0SWRHZXREYXR1bShsb2dyZWxpZCk7CisKIAl0dXAg PSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzKTsK IAogCS8qIEluc2VydCB0dXBsZSBpbnRvIGNhdGFsb2cuICovCkBAIC0xNDEwLDcgKzE0NDcsOCBA QCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwKIAkJCQkJCQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BUX0ZBSUxP VkVSIHwKIAkJCQkJCQkJICBTVUJPUFRfUkVUQUlOX0RFQURfVFVQTEVTIHwKIAkJCQkJCQkJICBT VUJPUFRfTUFYX1JFVEVOVElPTl9EVVJBVElPTiB8Ci0JCQkJCQkJCSAgU1VCT1BUX09SSUdJTik7 CisJCQkJCQkJCSAgU1VCT1BUX09SSUdJTiB8CisJCQkJCQkJCSAgU1VCT1BUX0NPTkZMSUNUX0xP R19ERVNUKTsKIAogCQkJCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+ b3B0aW9ucywKIAkJCQkJCQkJCQkgICBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwpAQCAtMTY2NSw2 ICsxNzAzLDYzIEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJT dWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQlvcmlnaW4gPSBvcHRzLm9yaWdpbjsKIAkJCQl9 CiAKKwkJCQlpZiAoSXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX0NPTkZMSUNUX0xP R19ERVNUKSkKKwkJCQl7CisJCQkJCUNvbmZsaWN0TG9nRGVzdCBvbGRfZGVzdCA9CisJCQkJCQkJ R2V0TG9nRGVzdGluYXRpb24oc3ViLT5jb25mbGljdGxvZ2Rlc3QpOworCisJCQkJCWlmIChvcHRz LmNvbmZsaWN0bG9nZGVzdCAhPSBvbGRfZGVzdCkKKwkJCQkJeworCQkJCQkJYm9vbCB3YW50X3Rh YmxlID0gSXNTZXQob3B0cy5jb25mbGljdGxvZ2Rlc3QsCisJCQkJCQkJCQkJCQlDT05GTElDVF9M T0dfREVTVF9UQUJMRSk7CisJCQkJCQlib29sIGhhc19vbGR0YWJsZSA9CisJCQkJCQkJCUlzU2V0 KG9sZF9kZXN0LCBDT05GTElDVF9MT0dfREVTVF9UQUJMRSk7CisKKwkJCQkJCXZhbHVlc1tBbnVt X3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QgLSAxXSA9CisJCQkJCQkJQ1N0cmlu Z0dldFRleHREYXR1bShDb25mbGljdExvZ0Rlc3ROYW1lc1tvcHRzLmNvbmZsaWN0bG9nZGVzdF0p OworCQkJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0 IC0gMV0gPSB0cnVlOworCisJCQkJCQlpZiAod2FudF90YWJsZSAmJiAhaGFzX29sZHRhYmxlKQor CQkJCQkJeworCQkJCQkJCU9pZAkJcmVsaWQ7CisKKwkJCQkJCQlyZWxpZCA9IGNyZWF0ZV9jb25m bGljdF9sb2dfdGFibGUoc3ViaWQsIHN1Yi0+bmFtZSk7CisKKwkJCQkJCQl2YWx1ZXNbQW51bV9w Z19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dyZWxpZCAtIDFdID0KKwkJCQkJCQkJCQkJCQkJ T2JqZWN0SWRHZXREYXR1bShyZWxpZCk7CisJCQkJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3Jp cHRpb25fc3ViY29uZmxpY3Rsb2dyZWxpZCAtIDFdID0KKwkJCQkJCQkJCQkJCQkJdHJ1ZTsKKwkJ CQkJCX0KKwkJCQkJCWVsc2UgaWYgKCF3YW50X3RhYmxlICYmIGhhc19vbGR0YWJsZSkKKwkJCQkJ CXsKKwkJCQkJCQlPYmplY3RBZGRyZXNzIG9iamVjdDsKKworCQkJCQkJCS8qCisJCQkJCQkJICog Q29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgcmVjb3JkZWQgYXMgaW50ZXJuYWwKKwkJCQkJCQkgKiBk ZXBlbmRlbmNpZXMgb2YgdGhlIHN1YnNjcmlwdGlvbi4gIERyb3AgdGhlCisJCQkJCQkJICogdGFi bGUgaWYgaXQgaXMgbm90IHJlcXVpcmVkIGFueW1vcmUgdG8gYXZvaWQKKwkJCQkJCQkgKiBzdGFs ZSBvciBvcnBoYW5lZCByZWxhdGlvbnMuCisJCQkJCQkJICoKKwkJCQkJCQkgKiBYWFg6IEF0IHBy ZXNlbnQsIG9ubHkgY29uZmxpY3QgbG9nIHRhYmxlcyBhcmUKKwkJCQkJCQkgKiBtYW5hZ2VkIHRo aXMgd2F5LiAgSW4gZnV0dXJlIGlmIHdlIGludHJvZHVjZQorCQkJCQkJCSAqIGFkZGl0aW9uYWwg aW50ZXJuYWwgZGVwZW5kZW5jaWVzLCB3ZSBtYXkgbmVlZAorCQkJCQkJCSAqIGEgdGFyZ2V0ZWQg ZGVsZXRpb24gdG8gYXZvaWQgZGVsZXRpb24gb2YgYW55CisJCQkJCQkJICogb3RoZXIgb2JqZWN0 cy4KKwkJCQkJCQkgKi8KKwkJCQkJCQlPYmplY3RBZGRyZXNzU2V0KG9iamVjdCwgU3Vic2NyaXB0 aW9uUmVsYXRpb25JZCwKKwkJCQkJCQkJCQkJIHN1YmlkKTsKKwkJCQkJCQlwZXJmb3JtRGVsZXRp b24oJm9iamVjdCwgRFJPUF9DQVNDQURFLAorCQkJCQkJCQkJCQlQRVJGT1JNX0RFTEVUSU9OX0lO VEVSTkFMIHwKKwkJCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9TS0lQX09SSUdJTkFMKTsKKwor CQkJCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ3JlbGlkIC0g MV0gPQorCQkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShJbnZhbGlkT2lkKTsKKwkJCQkJCQly ZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ3JlbGlkIC0gMV0gPQor CQkJCQkJCQkJCQkJdHJ1ZTsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCX0KKwogCQkJCXVwZGF0ZV90 dXBsZSA9IHRydWU7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC0yMDI3LDYgKzIxMjIsNyBAQCBEcm9w U3Vic2NyaXB0aW9uKERyb3BTdWJzY3JpcHRpb25TdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwp CiAJRm9ybV9wZ19zdWJzY3JpcHRpb24gZm9ybTsKIAlMaXN0CSAgICpyc3RhdGVzOwogCWJvb2wJ CW11c3RfdXNlX3Bhc3N3b3JkOworCU9iamVjdEFkZHJlc3MJb2JqZWN0OwogCiAJLyoKIAkgKiBU aGUgbGF1bmNoZXIgbWF5IGNvbmN1cnJlbnRseSBzdGFydCBhIG5ldyB3b3JrZXIgZm9yIHRoaXMg c3Vic2NyaXB0aW9uLgpAQCAtMjE4NCw2ICsyMjgwLDE5IEBAIERyb3BTdWJzY3JpcHRpb24oRHJv cFN1YnNjcmlwdGlvblN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAkvKiBDbGVhbiB1cCBk ZXBlbmRlbmNpZXMgKi8KIAlkZWxldGVTaGFyZWREZXBlbmRlbmN5UmVjb3Jkc0ZvcihTdWJzY3Jp cHRpb25SZWxhdGlvbklkLCBzdWJpZCwgMCk7CiAKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJs ZXMgYXJlIHJlY29yZGVkIGFzIGludGVybmFsIGRlcGVuZGVuY2llcyBvZiB0aGUKKwkgKiBzdWJz Y3JpcHRpb24uICBXZSBtdXN0IGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIGJlZm9yZSB0aGUK KwkgKiBzdWJzY3JpcHRpb24gaXRzZWxmIGlzIHJlbW92ZWQuICBCeSB1c2luZworCSAqIFBFUkZP Uk1fREVMRVRJT05fU0tJUF9PUklHSU5BTCwgd2UgZW5zdXJlIHRoYXQgb25seSB0aGUgY29uZmxp Y3QgbG9nCisJICogdGFibGUgaXMgcmVhcGVkIHdoaWxlIHRoZSBzdWJzY3JpcHRpb24gcmVtYWlu cyBmb3IgdGhlIGZpbmFsIGRlbGV0aW9uCisJICogc3RlcC4KKwkgKi8KKwlPYmplY3RBZGRyZXNz U2V0KG9iamVjdCwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOworCXBlcmZvcm1EZWxl dGlvbigmb2JqZWN0LCBEUk9QX0NBU0NBREUsCisJCQkJCVBFUkZPUk1fREVMRVRJT05fSU5URVJO QUwgfAorCQkJCQlQRVJGT1JNX0RFTEVUSU9OX1NLSVBfT1JJR0lOQUwpOworCiAJLyogUmVtb3Zl IGFueSBhc3NvY2lhdGVkIHJlbGF0aW9uIHN5bmNocm9uaXphdGlvbiBzdGF0ZXMuICovCiAJUmVt b3ZlU3Vic2NyaXB0aW9uUmVsKHN1YmlkLCBJbnZhbGlkT2lkKTsKIApAQCAtMzE5MCwzICszMjk5 LDEyNyBAQCBkZWZHZXRTdHJlYW1pbmdNb2RlKERlZkVsZW0gKmRlZikKIAkJCQkJZGVmLT5kZWZu YW1lKSkpOwogCXJldHVybiBMT0dJQ0FMUkVQX1NUUkVBTV9PRkY7CS8qIGtlZXAgY29tcGlsZXIg cXVpZXQgKi8KIH0KKworLyoKKyAqIEJ1aWxkcyB0aGUgVHVwbGVEZXNjIGZvciB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlLgorICovCitzdGF0aWMgVHVwbGVEZXNjCitjcmVhdGVfY29uZmxpY3RfbG9n X3RhYmxlX3R1cGRlc2Modm9pZCkKK3sKKwlUdXBsZURlc2MJdHVwZGVzYzsKKworCXR1cGRlc2Mg PSBDcmVhdGVUZW1wbGF0ZVR1cGxlRGVzYyhNQVhfQ09ORkxJQ1RfQVRUUl9OVU0pOworCisJZm9y IChpbnQgaSA9IDA7IGkgPCBNQVhfQ09ORkxJQ1RfQVRUUl9OVU07IGkrKykKKwl7CisJCU9pZCB0 eXBlX29pZCA9IENvbmZsaWN0TG9nU2NoZW1hW2ldLmF0dHR5cGlkOworCisJCS8qCisJCSAqIFNw ZWNpYWwgaGFuZGxpbmcgZm9yIHRoZSBKU09OIGFycmF5IHR5cGUgZm9yIHByb3BlcgorCQkgKiBU dXBsZURlc2NJbml0RW50cnkgY2FsbC4KKwkJICovCisJCWlmICh0eXBlX29pZCA9PSBKU09OQVJS QVlPSUQpCisJCQl0eXBlX29pZCA9IGdldF9hcnJheV90eXBlKEpTT05PSUQpOworCisJCVR1cGxl RGVzY0luaXRFbnRyeSh0dXBkZXNjLCBpICsgMSwKKwkJCQkJCSAgIENvbmZsaWN0TG9nU2NoZW1h W2ldLmF0dG5hbWUsCisJCQkJCQkgICB0eXBlX29pZCwKKwkJCQkJCSAgIC0xLCAwKTsKKwl9CisK KwlyZXR1cm4gQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7Cit9CisKKy8qCisgKiBDcmVhdGUgYSBz dHJ1Y3R1cmVkIGNvbmZsaWN0IGxvZyB0YWJsZSBmb3IgYSBzdWJzY3JpcHRpb24uCisgKgorICog VGhlIHRhYmxlIGlzIGNyZWF0ZWQgd2l0aGluIHRoZSBzeXN0ZW0tbWFuYWdlZCAncGdfY29uZmxp Y3QnIG5hbWVzcGFjZS4KKyAqIFRoZSB0YWJsZSBuYW1lIGlzIGdlbmVyYXRlZCBhdXRvbWF0aWNh bGx5IHVzaW5nIHRoZSBzdWJzY3JpcHRpb24ncyBPSUQKKyAqIChlLmcuLCAicGdfY29uZmxpY3Rf PHN1YmlkPiIpIHRvIGVuc3VyZSB1bmlxdWVuZXNzIHdpdGhpbiB0aGUgY2x1c3RlciBhbmQKKyAq IHRvIGF2b2lkIGNvbGxpc2lvbnMgZHVyaW5nIHN1YnNjcmlwdGlvbiByZW5hbWVzLgorICovCitz dGF0aWMgT2lkCitjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKE9pZCBzdWJpZCwgY2hhciAqc3Vi bmFtZSkKK3sKKwlUdXBsZURlc2MJdHVwZGVzYzsKKwlPaWQJCQlyZWxpZDsKKwlPYmplY3RBZGRy ZXNzCW15c2VsZjsKKwlPYmplY3RBZGRyZXNzCXN1YmFkZHI7CisJY2hhciAgICAJcmVsbmFtZVtO QU1FREFUQUxFTl07CisKKwlzbnByaW50ZihyZWxuYW1lLCBOQU1FREFUQUxFTiwgInBnX2NvbmZs aWN0XyV1Iiwgc3ViaWQpOworCisJLyogVGhlcmUgY2FuIG5vdCBiZSBhbiBleGlzdGluZyB0YWJs ZSB3aXRoIHRoZSBzYW1lIG5hbWUuICovCisJQXNzZXJ0KCFPaWRJc1ZhbGlkKGdldF9yZWxuYW1l X3JlbGlkKHJlbG5hbWUsIFBHX0NPTkZMSUNUX05BTUVTUEFDRSkpKTsKKworCS8qIEJ1aWxkIHRo ZSB0dXBsZSBkZXNjcmlwdG9yIGZvciB0aGUgbmV3IHRhYmxlLiAqLworCXR1cGRlc2MgPSBjcmVh dGVfY29uZmxpY3RfbG9nX3RhYmxlX3R1cGRlc2MoKTsKKworCS8qIENyZWF0ZSBjb25mbGljdCBs b2cgdGFibGUuICovCisJcmVsaWQgPSBoZWFwX2NyZWF0ZV93aXRoX2NhdGFsb2cocmVsbmFtZSwK KwkJCQkJCQkJCSBQR19DT05GTElDVF9OQU1FU1BBQ0UsCisJCQkJCQkJCQkgMCwJLyogdGFibGVz cGFjZSAqLworCQkJCQkJCQkJIEludmFsaWRPaWQsIC8qIHJlbGlkICovCisJCQkJCQkJCQkgSW52 YWxpZE9pZCwgLyogcmVsdHlwZWlkICovCisJCQkJCQkJCQkgSW52YWxpZE9pZCwgLyogcmVsb2Z0 eXBlaWQgKi8KKwkJCQkJCQkJCSBHZXRVc2VySWQoKSwKKwkJCQkJCQkJCSBIRUFQX1RBQkxFX0FN X09JRCwKKwkJCQkJCQkJCSB0dXBkZXNjLAorCQkJCQkJCQkJIE5JTCwKKwkJCQkJCQkJCSBSRUxL SU5EX1JFTEFUSU9OLAorCQkJCQkJCQkJIFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVCwKKwkJCQkJ CQkJCSBmYWxzZSwgLyogc2hhcmVkX3JlbGF0aW9uICovCisJCQkJCQkJCQkgZmFsc2UsIC8qIG1h cHBlZF9yZWxhdGlvbiAqLworCQkJCQkJCQkJIE9OQ09NTUlUX05PT1AsCisJCQkJCQkJCQkgKERh dHVtKSAwLCAvKiByZWxvcHRpb25zICovCisJCQkJCQkJCQkgZmFsc2UsIC8qIHVzZV91c2VyX2Fj bCAqLworCQkJCQkJCQkJIHRydWUsIC8qIGFsbG93X3N5c3RlbV90YWJsZV9tb2RzICovCisJCQkJ CQkJCQkgdHJ1ZSwgLyogaXNfaW50ZXJuYWwgKi8KKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiBy ZWxyZXdyaXRlICovCisJCQkJCQkJCQkgTlVMTCk7IC8qIHR5cGFkZHJlc3MgKi8KKworCS8qCisJ ICogRXN0YWJsaXNoIGFuIGludGVybmFsIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgY29uZmxpY3Qg bG9nIHRhYmxlIGFuZAorCSAqIHRoZSBzdWJzY3JpcHRpb24uCisJICoKKwkgKiBXZSB1c2UgREVQ RU5ERU5DWV9JTlRFUk5BTCB0byBzaWduaWZ5IHRoYXQgdGhlIHRhYmxlJ3MgbGlmZWN5Y2xlIGlz CisJICogc3RyaWN0bHkgdGllZCB0byB0aGUgc3Vic2NyaXB0aW9uLCBzaW1pbGFyIHRvIGhvdyBh IFRPQVNUIHRhYmxlIHJlbGF0ZXMKKwkgKiB0byBpdHMgbWFpbiB0YWJsZSBvciBhIHNlcXVlbmNl IHJlbGF0ZXMgdG8gYW4gaWRlbnRpdHkgY29sdW1uLgorCSAqCisJICogVGhpcyBlbnN1cmVzIHRo ZSBjb25mbGljdCBsb2cgdGFibGUgaXMgYXV0b21hdGljYWxseSByZWFwZWQgZHVyaW5nIGEKKwkg KiBEUk9QIFNVQlNDUklQVElPTiB2aWEgcGVyZm9ybURlbGV0aW9uKCkuCisJICovCisJT2JqZWN0 QWRkcmVzc1NldChteXNlbGYsIFJlbGF0aW9uUmVsYXRpb25JZCwgcmVsaWQpOworCU9iamVjdEFk ZHJlc3NTZXQoc3ViYWRkciwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOworCXJlY29y ZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmc3ViYWRkciwgREVQRU5ERU5DWV9JTlRFUk5BTCk7CisK KwkvKiBSZWxlYXNlIHR1cGxlIGRlc2NyaXB0b3IgbWVtb3J5LiAqLworCUZyZWVUdXBsZURlc2Mo dHVwZGVzYyk7CisKKwlyZXR1cm4gcmVsaWQ7Cit9CisKKy8qCisgKiBHZXRMb2dEZXN0aW5hdGlv bgorICoKKyAqIENvbnZlcnQgc3RyaW5nIHRvIGVudW0gYnkgY29tcGFyaW5nIGFnYWluc3Qgc3Rh bmRhcmRpemVkIGxhYmVscy4KKyAqLworQ29uZmxpY3RMb2dEZXN0CitHZXRMb2dEZXN0aW5hdGlv bihjb25zdCBjaGFyICpkZXN0KQoreworCS8qIEVtcHR5IHN0cmluZyBvciBOVUxMIGRlZmF1bHRz IHRvIExPRy4gKi8KKwlpZiAoZGVzdCA9PSBOVUxMIHx8IGRlc3RbMF0gPT0gJ1wwJyB8fCBwZ19z dHJjYXNlY21wKGRlc3QsICJsb2ciKSA9PSAwKQorCQlyZXR1cm4gQ09ORkxJQ1RfTE9HX0RFU1Rf TE9HOworCisJaWYgKHBnX3N0cmNhc2VjbXAoZGVzdCwgInRhYmxlIikgPT0gMCkKKwkJcmV0dXJu IENPTkZMSUNUX0xPR19ERVNUX1RBQkxFOworCisJaWYgKHBnX3N0cmNhc2VjbXAoZGVzdCwgImFs bCIpID09IDApCisJCXJldHVybiBDT05GTElDVF9MT0dfREVTVF9BTEw7CisKKwkvKiBVbnJlY29n bml6ZWQgc3RyaW5nLiAqLworCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RFX0lO VkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCSBlcnJtc2coInVucmVjb2duaXplZCBjb25mbGlj dF9sb2dfZGVzdGluYXRpb24gdmFsdWU6IFwiJXNcIiIsIGRlc3QpLAorCQkJIGVycmhpbnQoIlZh bGlkIHZhbHVlcyBhcmUgXCJsb2dcIiwgXCJ0YWJsZVwiLCBhbmQgXCJhbGxcIi4iKSkpOworfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBmOTc2YzBlNWM3ZS4uNGJmMzlmMzU5ZDcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0yMzk4LDkgKzIzOTgsMTEgQEAgdHJ1bmNhdGVf Y2hlY2tfcmVsKE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKIAkgKiBwZ19sYXJn ZW9iamVjdCBhbmQgcGdfbGFyZ2VvYmplY3RfbWV0YWRhdGEgdG8gYmUgdHJ1bmNhdGVkIGFzIHBh cnQgb2YKIAkgKiBwZ191cGdyYWRlLCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hhbmdlIGl0cyByZWxm aWxlbm9kZSB0byBtYXRjaCB0aGUgb2xkCiAJICogY2x1c3RlciwgYW5kIGFsbG93aW5nIGEgVFJV TkNBVEUgY29tbWFuZCB0byBiZSBleGVjdXRlZCBpcyB0aGUgZWFzaWVzdAotCSAqIHdheSBvZiBk b2luZyB0aGF0LgorCSAqIHdheSBvZiBkb2luZyB0aGF0LiAgV2UgYWxzbyBhbGxvdyBUUlVOQ0FU RSBvbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlcywKKwkgKiB0byBwZXJtaXQgdXNlcnMgdG8gbWFu dWFsbHkgcHJ1bmUgdGhlc2UgbG9ncyB0byBtYW5hZ2UgZGlzayBzcGFjZS4KIAkgKi8KLQlpZiAo IWFsbG93U3lzdGVtVGFibGVNb2RzICYmIElzU3lzdGVtQ2xhc3MocmVsaWQsIHJlbHR1cGxlKQor CWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwgcmVsdHVw bGUpICYmCisJCSFJc0NvbmZsaWN0Q2xhc3MocmVsdHVwbGUpCiAJCSYmICghSXNCaW5hcnlVcGdy YWRlIHx8CiAJCQkocmVsaWQgIT0gTGFyZ2VPYmplY3RSZWxhdGlvbklkICYmCiAJCQkgcmVsaWQg IT0gTGFyZ2VPYmplY3RNZXRhZGF0YVJlbGF0aW9uSWQpKSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5j CmluZGV4IGNhMTRjZGFiZGQwLi5mZjY3YTU5NGQzOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5j CkBAIC0xMTY2LDYgKzExNjYsMjQgQEAgQ2hlY2tWYWxpZFJlc3VsdFJlbChSZXN1bHRSZWxJbmZv ICpyZXN1bHRSZWxJbmZvLCBDbWRUeXBlIG9wZXJhdGlvbiwKIAkJCQkJCQlSZWxhdGlvbkdldFJl bGF0aW9uTmFtZShyZXN1bHRSZWwpKSkpOwogCQkJYnJlYWs7CiAJfQorCisJLyoKKwkgKiBDb25m bGljdCBsb2dnaW5nIHRhYmxlcyAoQ0xUKSBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIHRvIHJl Y29yZAorCSAqIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4gV2UgYWxsb3cgREVMRVRFIHRvIHBlcm1p dCB1c2VycyB0byBtYW51YWxseSBwcnVuZQorCSAqIG9yIHRydW5jYXRlIHRoZXNlIGxvZ3MsIGJ1 dCBtYW51YWwgZGF0YSBpbnNlcnRpb24gb3IgbW9kaWZpY2F0aW9uCisJICogKElOU0VSVCwgVVBE QVRFLCBNRVJHRSkgaXMgcHJvaGliaXRlZCB0byBtYWludGFpbiB0aGUgaW50ZWdyaXR5IG9mIHRo ZQorCSAqIHN5c3RlbS1nZW5lcmF0ZWQgbG9ncy4KKwkgKi8KKwlpZiAoSXNDb25mbGljdE5hbWVz cGFjZShSZWxhdGlvbkdldE5hbWVzcGFjZShyZXN1bHRSZWwpKSAmJgorCQlvcGVyYXRpb24gIT0g Q01EX0RFTEVURSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VG RklDSUVOVF9QUklWSUxFR0UpLAorCQkJCWVycm1zZygiY2Fubm90IGV4ZWN1dGUgJXMgb24gY29u ZmxpY3QgbG9nZ2luZyB0YWJsZSBcIiVzXCIiLAorCQkJCQkJKG9wZXJhdGlvbiA9PSBDTURfSU5T RVJUID8gIklOU0VSVCIgOgorCQkJCQkJb3BlcmF0aW9uID09IENNRF9VUERBVEUgPyAiVVBEQVRF IiA6CisJCQkJCQlvcGVyYXRpb24gPT0gQ01EX01FUkdFID8gIk1FUkdFIiA6ICJ0aGlzIG9wZXJh dGlvbiIpLAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVzdWx0UmVsKSksCisJCQkJ ZXJyZGV0YWlsKCJDb25mbGljdCBsb2dnaW5nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgYW5k IG9ubHkgc3VwcG9ydCBjbGVhbnVwIHZpYSBERUxFVEUgb3IgVFJVTkNBVEUuIikpKTsKIH0KIAog LyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKaW5kZXggMzU4NGM0ZTE0MjguLjcyNjI1NDFiY2JkIDEwMDY0NAotLS0gYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNjgw Niw3ICs2ODA2LDcgQEAgZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4s IGJvb2wgdmVyYm9zZSkKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwogCXN0YXRp YyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsCiAJCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2 ZXJzaW9uIDwgMTAwMDAwKQogCXsKQEAgLTY5MDAsNiArNjkwMCwyMCBAQCBkZXNjcmliZVN1YnNj cmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJYXBwZW5kUFFF eHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkgICIsIHN1YnNraXBsc24gQVMgXCIlc1wiXG4iLAogCQkJ CQkJCSAgZ2V0dGV4dF9ub29wKCJTa2lwIExTTiIpKTsKKworCQkvKiBDb25mbGljdCBsb2cgZGVz dGluYXRpb24gaXMgc3VwcG9ydGVkIGluIHYxOSBhbmQgaGlnaGVyICovCisJCWlmIChwc2V0LnN2 ZXJzaW9uID49IDE5MDAwMCkKKwkJeworCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJ CQkgICIsIHN1YmNvbmZsaWN0bG9nZGVzdCBBUyBcIiVzXCJcbiIsCisJCQkJCQkJICBnZXR0ZXh0 X25vb3AoIkNvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiIpKTsKKworCQkJYXBwZW5kUFFFeHBCdWZm ZXIoJmJ1ZiwKKwkJCQkJCQkgICIsIChDQVNFIFdIRU4gc3ViY29uZmxpY3Rsb2dkZXN0IElOICgn dGFibGUnLCAnYWxsJykgIgorCQkJCQkJCSAgIiBUSEVOICdwZ19jb25mbGljdC5wZ19jb25mbGlj dF8nIHx8IG9pZCAiCisJCQkJCQkJICAiIEVMU0UgJy0nIEVORCkgQVMgXCIlc1wiXG4iLAorCQkJ CQkJCSAgZ2V0dGV4dF9ub29wKCJDb25mbGljdCBsb2cgdGFibGUiKSk7CisJCX0KIAl9CiAKIAkv KiBPbmx5IGRpc3BsYXkgc3Vic2NyaXB0aW9ucyBpbiBjdXJyZW50IGRhdGFiYXNlLiAqLwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jCmluZGV4IDhiOTFiYzAwMDYyLi4xMmVlZThhMGQ0MyAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYwpAQCAtMjM0NCw4ICsyMzQ0LDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMo aW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgoIigiLCAiUFVCTElDQVRJT04iKTsKIAkv KiBBTFRFUiBTVUJTQ1JJUFRJT04gPG5hbWU+IFNFVCAoICovCiAJZWxzZSBpZiAoTWF0Y2hlcygi QUxURVIiLCAiU1VCU0NSSVBUSU9OIiwgTWF0Y2hBbnksIE1hdGNoQW55TiwgIlNFVCIsICIoIikp Ci0JCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJkaXNhYmxlX29uX2Vycm9yIiwgImZhaWxvdmVy IiwKLQkJCQkJICAibWF4X3JldGVudGlvbl9kdXJhdGlvbiIsICJvcmlnaW4iLAorCQlDT01QTEVU RV9XSVRIKCJiaW5hcnkiLCAiY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIiwgImRpc2FibGVfb25f ZXJyb3IiLAorCQkJCQkgICJmYWlsb3ZlciIsICJtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIiwgIm9y aWdpbiIsCiAJCQkJCSAgInBhc3N3b3JkX3JlcXVpcmVkIiwgInJldGFpbl9kZWFkX3R1cGxlcyIs CiAJCQkJCSAgInJ1bl9hc19vd25lciIsICJzbG90X25hbWUiLCAic3RyZWFtaW5nIiwKIAkJCQkJ ICAic3luY2hyb25vdXNfY29tbWl0IiwgInR3b19waGFzZSIpOwpAQCAtMzg2MCw4ICszODYwLDgg QEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgo IldJVEggKCIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgU1VCU0NSSVBUSU9OIDxuYW1lPiAuLi4g IFdJVEggKCA8b3B0PiIgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiU1VCU0NSSVBU SU9OIiwgTWF0Y2hBbnlOLCAiV0lUSCIsICIoIikpCi0JCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIs ICJjb25uZWN0IiwgImNvcHlfZGF0YSIsICJjcmVhdGVfc2xvdCIsCi0JCQkJCSAgImRpc2FibGVf b25fZXJyb3IiLCAiZW5hYmxlZCIsICJmYWlsb3ZlciIsCisJCUNPTVBMRVRFX1dJVEgoImJpbmFy eSIsICJjb25mbGljdF9sb2dfZGVzdGluYXRpb24iLCAiY29ubmVjdCIsICJjb3B5X2RhdGEiLAor CQkJCQkgICJjcmVhdGVfc2xvdCIsICJkaXNhYmxlX29uX2Vycm9yIiwgImVuYWJsZWQiLCAiZmFp bG92ZXIiLAogCQkJCQkgICJtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIiwgIm9yaWdpbiIsCiAJCQkJ CSAgInBhc3N3b3JkX3JlcXVpcmVkIiwgInJldGFpbl9kZWFkX3R1cGxlcyIsCiAJCQkJCSAgInJ1 bl9hc19vd25lciIsICJzbG90X25hbWUiLCAic3RyZWFtaW5nIiwKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmgK aW5kZXggYTlkNmU4ZWE5ODYuLjgxOTMyMjlmMmUyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL2NhdGFsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdGFsb2cuaApAQCAt MjUsNiArMjUsNyBAQCBleHRlcm4gYm9vbCBJc0lucGxhY2VVcGRhdGVSZWxhdGlvbihSZWxhdGlv biByZWxhdGlvbik7CiAKIGV4dGVybiBib29sIElzU3lzdGVtQ2xhc3MoT2lkIHJlbGlkLCBGb3Jt X3BnX2NsYXNzIHJlbHR1cGxlKTsKIGV4dGVybiBib29sIElzVG9hc3RDbGFzcyhGb3JtX3BnX2Ns YXNzIHJlbHR1cGxlKTsKK2V4dGVybiBib29sIElzQ29uZmxpY3RDbGFzcyhGb3JtX3BnX2NsYXNz IHJlbHR1cGxlKTsKIAogZXh0ZXJuIGJvb2wgSXNDYXRhbG9nUmVsYXRpb25PaWQoT2lkIHJlbGlk KTsKIGV4dGVybiBib29sIElzQ2F0YWxvZ1RleHRVbmlxdWVJbmRleE9pZChPaWQgcmVsaWQpOwpA QCAtMzIsNiArMzMsNyBAQCBleHRlcm4gYm9vbCBJc0lucGxhY2VVcGRhdGVPaWQoT2lkIHJlbGlk KTsKIAogZXh0ZXJuIGJvb2wgSXNDYXRhbG9nTmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCk7CiBl eHRlcm4gYm9vbCBJc1RvYXN0TmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCk7CitleHRlcm4gYm9v bCBJc0NvbmZsaWN0TmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCk7CiAKIGV4dGVybiBib29sIElz UmVzZXJ2ZWROYW1lKGNvbnN0IGNoYXIgKm5hbWUpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVz cGFjZS5kYXQKaW5kZXggMzA3NWUxNDJjNzMuLmI0NWNiOTM4M2E4IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19uYW1lc3BhY2UuZGF0CkBAIC0xOCw2ICsxOCw5IEBACiB7IG9pZCA9PiAnOTknLCBvaWRf c3ltYm9sID0+ICdQR19UT0FTVF9OQU1FU1BBQ0UnLAogICBkZXNjciA9PiAncmVzZXJ2ZWQgc2No ZW1hIGZvciBUT0FTVCB0YWJsZXMnLAogICBuc3BuYW1lID0+ICdwZ190b2FzdCcsIG5zcGFjbCA9 PiAnX251bGxfJyB9LAoreyBvaWQgPT4gJzEzODInLCBvaWRfc3ltYm9sID0+ICdQR19DT05GTElD VF9OQU1FU1BBQ0UnLAorICBkZXNjciA9PiAncmVzZXJ2ZWQgc2NoZW1hIGZvciBzdWJzY3JpcHRp b24tc3BlY2lmaWMgY29uZmxpY3QgbG9nIHRhYmxlcycsCisgIG5zcG5hbWUgPT4gJ3BnX2NvbmZs aWN0JywgbnNwYWNsID0+ICdfbnVsbF8nIH0sCiAjIHVwZGF0ZSBkdW1wTmFtZXNwYWNlKCkgaWYg Y2hhbmdpbmcgdGhpcyBkZXNjcgogeyBvaWQgPT4gJzIyMDAnLCBvaWRfc3ltYm9sID0+ICdQR19Q VUJMSUNfTkFNRVNQQUNFJywKICAgZGVzY3IgPT4gJ3N0YW5kYXJkIHB1YmxpYyBzY2hlbWEnLApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKaW5kZXggZjM1NzFkMmJmY2YuLjc2YTQ2 MzhiMzg5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5o CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKQEAgLTkwLDYgKzkw LDcgQEAgQ0FUQUxPRyhwZ19zdWJzY3JpcHRpb24sNjEwMCxTdWJzY3JpcHRpb25SZWxhdGlvbklk KSBCS0lfU0hBUkVEX1JFTEFUSU9OIEJLSV9ST1cKIAkJCQkJCQkJCSAqIGV4Y2VlZGVkIG1heF9y ZXRlbnRpb25fZHVyYXRpb24sIHdoZW4KIAkJCQkJCQkJCSAqIGRlZmluZWQgKi8KIAorCU9pZCAg ICAgICAgIHN1YmNvbmZsaWN0bG9ncmVsaWQ7IC8qIFJlbGlkIG9mIHRoZSBjb25mbGljdCBsb2cg dGFibGUuICovCiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmll bGRzIHN0YXJ0IGhlcmUgKi8KIAkvKiBDb25uZWN0aW9uIHN0cmluZyB0byB0aGUgcHVibGlzaGVy ICovCiAJdGV4dAkJc3ViY29ubmluZm8gQktJX0ZPUkNFX05PVF9OVUxMOwpAQCAtMTAzLDYgKzEw NCwxNCBAQCBDQVRBTE9HKHBnX3N1YnNjcmlwdGlvbiw2MTAwLFN1YnNjcmlwdGlvblJlbGF0aW9u SWQpIEJLSV9TSEFSRURfUkVMQVRJT04gQktJX1JPVwogCS8qIExpc3Qgb2YgcHVibGljYXRpb25z IHN1YnNjcmliZWQgdG8gKi8KIAl0ZXh0CQlzdWJwdWJsaWNhdGlvbnNbMV0gQktJX0ZPUkNFX05P VF9OVUxMOwogCisJLyoKKwkgKiBTdHJhdGVneSBmb3IgbG9nZ2luZyByZXBsaWNhdGlvbiBjb25m bGljdHM6CisJICogJ2xvZycgLSBzZXJ2ZXIgbG9nIG9ubHksCisJICogJ3RhYmxlJyAtIGNvbmZs aWN0IGxvZyB0YWJsZSBvbmx5LAorCSAqICdhbGwnIC0gYm90aCBsb2cgYW5kIHRhYmxlLgorCSAq LworCXRleHQJCXN1YmNvbmZsaWN0bG9nZGVzdDsKKwogCS8qIE9ubHkgcHVibGlzaCBkYXRhIG9y aWdpbmF0aW5nIGZyb20gdGhlIHNwZWNpZmllZCBvcmlnaW4gKi8KIAl0ZXh0CQlzdWJvcmlnaW4g QktJX0RFRkFVTFQoTE9HSUNBTFJFUF9PUklHSU5fQU5ZKTsKICNlbmRpZgpAQCAtMTUyLDEyICsx NjEsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgU3Vic2NyaXB0aW9uCiAJCQkJCQkJCQkgKiBhbmQgdGhl IHJldGVudGlvbiBkdXJhdGlvbiBoYXMgbm90CiAJCQkJCQkJCQkgKiBleGNlZWRlZCBtYXhfcmV0 ZW50aW9uX2R1cmF0aW9uLCB3aGVuCiAJCQkJCQkJCQkgKiBkZWZpbmVkICovCisJT2lkCQkJY29u ZmxpY3Rsb2dyZWxpZDsJLyogY29uZmxpY3QgbG9nIHRhYmxlIE9pZCAqLwogCWNoYXIJICAgKmNv bm5pbmZvOwkJLyogQ29ubmVjdGlvbiBzdHJpbmcgdG8gdGhlIHB1Ymxpc2hlciAqLwogCWNoYXIJ ICAgKnNsb3RuYW1lOwkJLyogTmFtZSBvZiB0aGUgcmVwbGljYXRpb24gc2xvdCAqLwogCWNoYXIJ ICAgKnN5bmNjb21taXQ7CQkvKiBTeW5jaHJvbm91cyBjb21taXQgc2V0dGluZyBmb3Igd29ya2Vy ICovCiAJTGlzdAkgICAqcHVibGljYXRpb25zOwkvKiBMaXN0IG9mIHB1YmxpY2F0aW9uIG5hbWVz IHRvIHN1YnNjcmliZSB0byAqLwogCWNoYXIJICAgKm9yaWdpbjsJCQkvKiBPbmx5IHB1Ymxpc2gg ZGF0YSBvcmlnaW5hdGluZyBmcm9tIHRoZQogCQkJCQkJCQkgKiBzcGVjaWZpZWQgb3JpZ2luICov CisJY2hhcgkgICAqY29uZmxpY3Rsb2dkZXN0OwkvKiBDb25mbGljdCBsb2cgZGVzdGluYXRpb24g Ki8KIH0gU3Vic2NyaXB0aW9uOwogCiAjaWZkZWYgRVhQT1NFX1RPX0NMSUVOVF9DT0RFCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmggYi9zcmMvaW5j bHVkZS9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmgKaW5kZXggNjM1MDQyMzJhMTQuLmE4OTUx MjdmOGZlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRz LmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5oCkBAIC0xNyw2 ICsxNyw3IEBACiAKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2NvbmZsaWN0Lmgi CiAKIGV4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCQkJCQkJYm9vbCBpc1Rv cExldmVsKTsKQEAgLTM2LDQgKzM3LDYgQEAgZXh0ZXJuIHZvaWQgQ2hlY2tTdWJEZWFkVHVwbGVS ZXRlbnRpb24oYm9vbCBjaGVja19ndWMsIGJvb2wgc3ViX2Rpc2FibGVkLAogCQkJCQkJCQkJICAg Ym9vbCByZXRlbnRpb25fYWN0aXZlLAogCQkJCQkJCQkJICAgYm9vbCBtYXhfcmV0ZW50aW9uX3Nl dCk7CiAKK2V4dGVybiBDb25mbGljdExvZ0Rlc3QgR2V0TG9nRGVzdGluYXRpb24oY29uc3QgY2hh ciAqZGVzdCk7CisKICNlbmRpZgkJCQkJCQkvKiBTVUJTQ1JJUFRJT05DTURTX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggYi9zcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi9jb25mbGljdC5oCmluZGV4IGQ1MzgyNzQ2MzdmLi40ZTRmNTliYjQ1MyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaAorKysgYi9zcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCkBAIC0xMCw2ICsxMCw3IEBACiAjZGVmaW5lIENP TkZMSUNUX0gKIAogI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgIm5vZGVzL3BnX2xpc3QuaCIKICNpbmNsdWRlICJ1dGls cy90aW1lc3RhbXAuaCIKIApAQCAtNzksNiArODAsNjAgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29uZmxp Y3RUdXBsZUluZm8KIAkJCQkJCQkJICogY29uZmxpY3RpbmcgbG9jYWwgcm93IG9jY3VycmVkICov CiB9IENvbmZsaWN0VHVwbGVJbmZvOwogCisvKgorICogQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9u IHR5cGVzLgorICoKKyAqIFRoZXNlIHZhbHVlcyBhcmUgZGVmaW5lZCBhcyBiaXRtYXNrIGZsYWdz IHRvIGFsbG93IGZvciBtdWx0aXBsZSBzaW11bHRhbmVvdXMKKyAqIGxvZ2dpbmcgZGVzdGluYXRp b25zIChlLmcuLCBsb2dnaW5nIHRvIGJvdGggc3lzdGVtIGxvZ3MgYW5kIGEgdGFibGUpLgorICog SW50ZXJuYWxseSwgd2UgdXNlIHRoZXNlIGZvciBiaXR3aXNlIGNvbXBhcmlzb25zIChJc1NldCks IGJ1dCB0aGUgc3RyaW5nCisgKiByZXByZXNlbnRhdGlvbiBpcyBzdG9yZWQgaW4gcGdfc3Vic2Ny aXB0aW9uLnN1YmNvbmZsaWN0bG9nZGVzdC4KKyAqLwordHlwZWRlZiBlbnVtIENvbmZsaWN0TG9n RGVzdAoreworCS8qIExvZyBjb25mbGljdHMgdG8gdGhlIHNlcnZlciBsb2dzICovCisJQ09ORkxJ Q1RfTE9HX0RFU1RfTE9HICAgPSAxIDw8IDAsICAgLyogMHgwMSAqLworCisJLyogTG9nIGNvbmZs aWN0cyB0byBhbiBpbnRlcm5hbGx5IG1hbmFnZWQgY29uZmxpY3QgbG9nIHRhYmxlICovCisJQ09O RkxJQ1RfTE9HX0RFU1RfVEFCTEUgPSAxIDw8IDEsICAgLyogMHgwMiAqLworCisJLyogQ29udmVu aWVuY2UgYml0bWFzayBmb3IgYWxsIHN1cHBvcnRlZCBkZXN0aW5hdGlvbnMgKi8KKwlDT05GTElD VF9MT0dfREVTVF9BTEwgICA9IChDT05GTElDVF9MT0dfREVTVF9MT0cgfCBDT05GTElDVF9MT0df REVTVF9UQUJMRSkKK30gQ29uZmxpY3RMb2dEZXN0OworCisvKgorICogQXJyYXkgbWFwcGluZyBm b3IgY29udmVydGluZyBpbnRlcm5hbCBlbnVtIHRvIHN0cmluZy4KKyAqLworc3RhdGljIGNvbnN0 IGNoYXIgKmNvbnN0IENvbmZsaWN0TG9nRGVzdE5hbWVzW10gPSB7CisJW0NPTkZMSUNUX0xPR19E RVNUX0xPR10gPSAibG9nIiwKKwlbQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEVdID0gInRhYmxlIiwK KwlbQ09ORkxJQ1RfTE9HX0RFU1RfQUxMXSA9ICJhbGwiCit9OworCisvKiBTdHJ1Y3R1cmUgdG8g aG9sZCBtZXRhZGF0YSBmb3Igb25lIGNvbHVtbiBvZiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlICov Cit0eXBlZGVmIHN0cnVjdCBDb25mbGljdExvZ0NvbHVtbkRlZgoreworCWNvbnN0IGNoYXIgKmF0 dG5hbWU7ICAgIC8qIENvbHVtbiBuYW1lICovCisJT2lkICAgICAgICAgYXR0dHlwaWQ7ICAgLyog RGF0YSB0eXBlIE9JRCAqLworfSBDb25mbGljdExvZ0NvbHVtbkRlZjsKKworLyogVGhlIHNpbmds ZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIHRoZSBjb25mbGljdCBsb2cgdGFibGUgc2NoZW1hICovCitz dGF0aWMgY29uc3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYgQ29uZmxpY3RMb2dTY2hlbWFbXSA9Cit7 CisJeyAuYXR0bmFtZSA9ICJyZWxpZCIsICAgICAgICAgICAgLmF0dHR5cGlkID0gT0lET0lEIH0s CisJeyAuYXR0bmFtZSA9ICJzY2hlbWFuYW1lIiwgICAgICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9 LAorCXsgLmF0dG5hbWUgPSAicmVsbmFtZSIsICAgICAgICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQg fSwKKwl7IC5hdHRuYW1lID0gImNvbmZsaWN0X3R5cGUiLCAgICAuYXR0dHlwaWQgPSBURVhUT0lE IH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfeGlkIiwgICAgICAgLmF0dHR5cGlkID0gWElET0lE IH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfY29tbWl0X2xzbiIsLmF0dHR5cGlkID0gTFNOT0lE IH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfY29tbWl0X3RzIiwgLmF0dHR5cGlkID0gVElNRVNU QU1QVFpPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV9vcmlnaW4iLCAgICAuYXR0dHlwaWQg PSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZXBsaWNhX2lkZW50aXR5IiwgLmF0dHR5cGlk ID0gSlNPTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVtb3RlX3R1cGxlIiwgICAgIC5hdHR0eXBp ZCA9IEpTT05PSUQgfSwKKwl7IC5hdHRuYW1lID0gImxvY2FsX2NvbmZsaWN0cyIsICAuYXR0dHlw aWQgPSBKU09OQVJSQVlPSUQgfQorfTsKKworI2RlZmluZSBNQVhfQ09ORkxJQ1RfQVRUUl9OVU0g bGVuZ3Rob2YoQ29uZmxpY3RMb2dTY2hlbWEpCisKIGV4dGVybiBib29sIEdldFR1cGxlVHJhbnNh Y3Rpb25JbmZvKFR1cGxlVGFibGVTbG90ICpsb2NhbHNsb3QsCiAJCQkJCQkJCQlUcmFuc2FjdGlv bklkICp4bWluLAogCQkJCQkJCQkJUmVwT3JpZ2luSWQgKmxvY2Fsb3JpZ2luLApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CmluZGV4IGIzZWNjZDhhZmUzLi5iOTRi Y2MzY2MyMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRp b24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApA QCAtMTE2LDE4ICsxMTYsMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0 IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFUKIFdBUk5JTkc6ICBz dWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8g aW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGlj YXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2Ny aXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysgcmVncmVzc190ZXN0c3ViNAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQ dWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/ IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9u IHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQotIHJlZ3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAg ICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQ dWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/ IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9u IHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBD b25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1 YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 IHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAog QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgU0VUIChvcmlnaW4gPSBhbnkpOwog XGRScysgcmVncmVzc190ZXN0c3ViNAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxs ZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25m bGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAg ICAgICAgICB8IC0KICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi MzsKQEAgLTE0NSwxMCArMTQ1LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgQ09OTkVDVElPTiAnZm9vYmFyJzsKIEVSUk9SOiAgaW52YWxpZCBjb25uZWN0aW9uIHN0cmlu ZyBzeW50YXg6IG1pc3NpbmcgIj0iIGFmdGVyICJmb29iYXIiIGluIGNvbm5lY3Rpb24gaW5mbyBz dHJpbmcKIAogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQg fCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0 ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJz Y3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50 aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVz dGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwg ZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAtCiAo MSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIFBVQkxJQ0FU SU9OIHRlc3RwdWIyLCB0ZXN0cHViMyBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwpAQCAtMTU3LDEw ICsxNTcsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3Rf bmFtZSA9ICduZXduYW1lJyk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNF VCAocGFzc3dvcmRfcmVxdWlyZWQgPSBmYWxzZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIFNFVCAocnVuX2FzX293bmVyID0gdHJ1ZSk7CiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1l ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGlj YXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24g fCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBmICAgICAgICAgICAg ICAgICB8IHQgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMDAwMDAwMDAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwg Q29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAg ICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAwMDAwMDAw IHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAocGFzc3dvcmRfcmVxdWlyZWQgPSB0cnVlKTsKQEAg LTE3NiwxMCArMTc2LDEwIEBAIEVSUk9SOiAgdW5yZWNvZ25pemVkIHN1YnNjcmlwdGlvbiBwYXJh bWV0ZXI6ICJjcmVhdGVfc2xvdCIKIC0tIG9rCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViIFNLSVAgKGxzbiA9ICcwLzEyMzQ1Jyk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAg IHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24g ICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRl bnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMDAwMTIzNDUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxp Y3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAwMDEyMzQ1IHwgbG9n ICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQogCiAtLSBvayAtIHdpdGggbHNuID0g Tk9ORQpAQCAtMTg4LDEwICsxODgsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTS0lQIChsc24gPSBOT05FKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgU0tJUCAobHNuID0gJzAvMCcpOwogRVJST1I6ICBpbnZhbGlkIFdBTCBsb2NhdGlvbiAoTFNO KTogMC8wCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29y ZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxl cyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25v dXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9 IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0MiB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0 aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwg UmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29u ZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIy LHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAw IHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdDIgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwg LQogKDEgcm93KQogCiBCRUdJTjsKQEAgLTIyMywxMCArMjIzLDEwIEBAIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWJfZm9vIFNFVCAoc3luY2hyb25vdXNfY29tbWl0ID0gZm9vYmFy KTsKIEVSUk9SOiAgaW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyICJzeW5jaHJvbm91c19jb21t aXQiOiAiZm9vYmFyIgogSElOVDogIEF2YWlsYWJsZSB2YWx1ZXM6IGxvY2FsLCByZW1vdGVfd3Jp dGUsIHJlbW90ZV9hcHBseSwgb24sIG9mZi4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgICBOYW1lICAgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlv biAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJl dGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViX2ZvbyB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IGxvY2FsICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAwMDAwMDAwCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgICBOYW1lICAgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWlu IGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNr aXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViX2ZvbyB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIz fSB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg ICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAg ICAgICAgICAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdDIgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93 KQogCiAtLSByZW5hbWUgYmFjayB0byBrZWVwIHRoZSByZXN0IHNpbXBsZQpAQCAtMjU1LDE5ICsy NTUsMTkgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAn ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24g d2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVw bGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwg ZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJl ZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IHQgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25m bGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IHQgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAg ICAgICAgfCAtCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg U0VUIChiaW5hcnkgPSBmYWxzZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFk IHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNO ICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg cGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAw MDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1 cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8 IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAg ICAgICAgICAgICB8IC0KICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViOwpAQCAtMjc5LDI3ICsyNzksMjcgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5J Tkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5U OiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUg cmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUg c3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9u IGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190 ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0g ICB8IGYgICAgICB8IG9uICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg ICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAg IHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJp bmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwg T3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBS ZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFj dGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFi bGUgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBs b2cgICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSBwYXJhbGxlbCk7CiBcZFJzKwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBS ZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAg fCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRl bnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0 IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg cGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAw MDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IGZhbHNlKTsKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxk UnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwor ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlv biB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwg Q29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1 YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwg ZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg fCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQogCiAt LSBmYWlsIC0gcHVibGljYXRpb24gYWxyZWFkeSBleGlzdHMKQEAgLTMxNCwxMCArMzE0LDEwIEBA IEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FUSU9OIHRlc3Rw dWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIEFERCBQVUJMSUNBVElPTiB0ZXN0cHViMSwgdGVzdHB1YjIgV0lUSCAocmVmcmVzaCA9IGZh bHNlKTsKIEVSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWIxIiBpcyBhbHJlYWR5IGluIHN1YnNj cmlwdGlvbiAicmVncmVzc190ZXN0c3ViIgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICAgICAgUHVibGljYXRp b24gICAgICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/ IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9u IHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIsdGVzdHB1YjEsdGVzdHB1YjJ9IHwgZiAgICAgIHwg b2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAw MDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAg ICAgICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBS ZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZs aWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAg ICAgICAgICAgIHwgLQogKDEgcm93KQogCiAtLSBmYWlsIC0gcHVibGljYXRpb24gdXNlZCBtb3Jl IHRoYW4gb25jZQpAQCAtMzMyLDEwICszMzIsMTAgQEAgRVJST1I6ICBwdWJsaWNhdGlvbiAidGVz dHB1YjMiIGlzIG5vdCBpbiBzdWJzY3JpcHRpb24gInJlZ3Jlc3NfdGVzdHN1YiIKIC0tIG9rIC0g ZGVsZXRlIHB1YmxpY2F0aW9ucwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBE Uk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyZXNoID0gZmFsc2Up OwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9u IGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRi bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1 cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRp b24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190 ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0g ICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg ICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cp CiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKQEAgLTM3MSwxOSArMzcxLDE5 IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBj cmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0 aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJs ZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNo IHB1YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAg fCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28t cGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVp cmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4 IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3Qg bG9nIGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBwICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAg IHwgLQogKDEgcm93KQogCiAtLSB3ZSBjYW4gYWx0ZXIgc3RyZWFtaW5nIHdoZW4gdHdvX3BoYXNl IGVuYWJsZWQKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1p bmcgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28t cGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVp cmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4 IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBw ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJl dGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9n IGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQor IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg MCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwg LQogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xv dF9uYW1lID0gTk9ORSk7CkBAIC0zOTMsMTAgKzM5MywxMCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qn IFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25u ZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkg Y3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5k IGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24g fCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K LSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg IDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBS ZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZs aWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8w MDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAt NDA5LDE4ICs0MDksMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09O TkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJz Y3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5p dGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRp b24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0 aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4g ZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lw IExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAg ICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAv MDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVh ZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAg ICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWIgU0VUIChkaXNhYmxlX29uX2Vycm9yID0gdHJ1ZSk7CiBcZFJzKwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUg ICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9u IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3Zl ciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRp b24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IHQgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24g YWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0 YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxs ZWwgIHwgZCAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8 IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtNDMzLDEwICs0 MzMsMTAgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAn ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24g d2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVw bGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwg ZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJl ZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25m bGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAg ICAgICAgfCAtCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg U0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTQ1MCwxOSArNDUwLDE5IEBAIE5PVElDRTogIG1h eF9yZXRlbnRpb25fZHVyYXRpb24gaXMgaW5lZmZlY3RpdmUgd2hlbiByZXRhaW5fZGVhZF90dXBs ZXMgaXMgZGlzYWJsCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMg bm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBt YW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0 aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4K IFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0 aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFi bGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0 IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFz IG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBk dXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAg ICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgMTAwMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9u IHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgMTAwMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQog CiAtLSBvawogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKG1heF9yZXRl bnRpb25fZHVyYXRpb24gPSAwKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVw bGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAot LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJh bGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAw CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3Jk IHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVz IHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29u ZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAg ICAgICAgIHwgLQogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC01MTcsNiArNTE3LDI3NCBAQCBDT01NSVQ7CiAt LSBvaywgb3duaW5nIGl0IGlzIGVub3VnaCBmb3IgdGhpcyBzdHVmZgogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogRFJPUCBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViOworLS0KKy0tIENPTkZMSUNUIExPRyBERVNUSU5BVElPTiBU RVNUUworLS0KK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXInOworLS0gZmFpbCAtIHVucmVjb2duaXplZCBwYXJhbWV0ZXIgdmFsdWUKK0NSRUFURSBT VUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9mYWlsIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFs c2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdpbnZhbGlkJyk7CitFUlJPUjogIHVucmVj b2duaXplZCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gdmFsdWU6ICJpbnZhbGlkIgorSElOVDog IFZhbGlkIHZhbHVlcyBhcmUgImxvZyIsICJ0YWJsZSIsIGFuZCAiYWxsIi4KKy0tIHZlcmlmeSBz dWJjb25mbGljdGxvZ2Rlc3QgaXMgJ2xvZycgYW5kIHJlbGlkIGlzIDAgKEludmFsaWRPaWQpIGZv ciBkZWZhdWx0IGNhc2UKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2df ZGVmYXVsdCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FU SU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRp b24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUg cmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xv dCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRv IHJlZnJlc2ggcHVibGljYXRpb25zLgorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVz dCwgc3ViY29uZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFt ZSA9ICdyZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0JzsKKyAgICAgICAgICAgc3VibmFtZSAg ICAgICAgICAgIHwgc3ViY29uZmxpY3Rsb2dkZXN0IHwgc3ViY29uZmxpY3Rsb2dyZWxpZCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IHwgbG9nICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgMAorKDEgcm93KQorCistLSB2ZXJpZnkgZW1w dHkgc3RyaW5nIGRlZmF1bHRzIHRvICdsb2cnCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfZW1wdHlfc3RyIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiA9ICcnKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQs IGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlv dSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBz dWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGlj YXRpb25zLgorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rs b2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2Nv bmZsaWN0X2VtcHR5X3N0cic7CisgICAgICAgICAgc3VibmFtZSAgICAgICAgICAgfCBzdWJjb25m bGljdGxvZ2Rlc3QgfCBzdWJjb25mbGljdGxvZ3JlbGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdy ZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciB8IGxvZyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIDAKKygxIHJvdykKKworLS0gdGhpcyBzaG91bGQgZ2VuZXJhdGUgYW4gaW50ZXJuYWwg Y29uZmxpY3QgbG9nIHRhYmxlIG5hbWVkIHBnX2NvbmZsaWN0XyRzdWJpZCQKK0NSRUFURSBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNl LCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKK1dBUk5JTkc6ICBzdWJzY3Jp cHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlh dGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24g c2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9u IHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgorLS0gY2hlY2sgbWV0YWRhdGEgaW4gcGdfc3Vic2Ny aXB0aW9uOiBkZXN0aW5hdGlvbiBzaG91bGQgYmUgJ3RhYmxlJyBhbmQgcmVsaWQgdmFsaWQKK1NF TEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQgPiAw IEFTIGhhc19yZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdy ZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKyAgICAgICAgc3VibmFtZSAgICAgICAgIHwgc3ViY29uZmxp Y3Rsb2dkZXN0IHwgaGFzX3JlbGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgcmVncmVzc19jb25mbGljdF90ZXN0MSB8IHRhYmxl ICAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0YWJs ZSBleGlzdHMsIGl0cyBPSUQgbWF0Y2hlcyBzdWJjb25mbGljdGxvZ3JlbGlkLAorLS0gYW5kIGl0 IGlzIGxvY2F0ZWQgaW4gdGhlICdwZ19jb25mbGljdCcgbmFtZXNwYWNlCitTRUxFQ1Qgbi5uc3Bu YW1lLCAoYy5vaWQgPSBzLnN1YmNvbmZsaWN0bG9ncmVsaWQpIEFTICJvaWRfbWF0Y2hlcyIKK0ZS T00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdf Y29uZmxpY3RfJyB8fCBzLm9pZAorSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFj ZSA9IG4ub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7Cisg ICBuc3BuYW1lICAgfCBvaWRfbWF0Y2hlcyAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHBnX2NvbmZsaWN0IHwgdAorKDEgcm93KQorCistLSBjaGVjayBpZiB0aGUgY29uZmxpY3QgbG9n IHRhYmxlIGhhcyB0aGUgY29ycmVjdCBzY2hlbWEKK1NFTEVDVCBhLmF0dG51bSwgYS5hdHRuYW1l CitGUk9NIHBnX2F0dHJpYnV0ZSBhCitKT0lOIHBnX2NsYXNzIGMgT04gYS5hdHRyZWxpZCA9IGMu b2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8n IHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgQU5E IGEuYXR0bnVtID4gMAorICAgIE9SREVSIEJZIGEuYXR0bnVtOworIGF0dG51bSB8ICAgICAgYXR0 bmFtZSAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgMSB8IHJlbGlk CisgICAgICAyIHwgc2NoZW1hbmFtZQorICAgICAgMyB8IHJlbG5hbWUKKyAgICAgIDQgfCBjb25m bGljdF90eXBlCisgICAgICA1IHwgcmVtb3RlX3hpZAorICAgICAgNiB8IHJlbW90ZV9jb21taXRf bHNuCisgICAgICA3IHwgcmVtb3RlX2NvbW1pdF90cworICAgICAgOCB8IHJlbW90ZV9vcmlnaW4K KyAgICAgIDkgfCByZXBsaWNhX2lkZW50aXR5CisgICAgIDEwIHwgcmVtb3RlX3R1cGxlCisgICAg IDExIHwgbG9jYWxfY29uZmxpY3RzCisoMTEgcm93cykKKworLS0KKy0tIEFMVEVSIFNVQlNDUklQ VElPTiAtIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiBzdGF0ZSB0cmFuc2l0aW9ucworLS0KKy0t IFRoZXNlIHRlc3RzIHZlcmlmeSB0aGUgdHJhbnNpdGlvbiBsb2dpYyBiZXR3ZWVuIGRpZmZlcmVu dCBsb2dnaW5nCistLSBkZXN0aW5hdGlvbnMsIGVuc3VyaW5nIGNvbmZsaWN0IGxvZyB0YWJsZXMg YXJlIGNyZWF0ZWQgb3IgZHJvcHBlZCBhcworLS0gZXhwZWN0ZWQKKy0tCistLSB0cmFuc2l0aW9u IGZyb20gJ2xvZycgdG8gJ2FsbCcKKy0tIGEgbmV3IGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJs ZSBzaG91bGQgYmUgY3JlYXRlZAorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QyIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJ T04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlv biA9ICdsb2cnKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBu b3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1h bnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRp b24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9s b2dfZGVzdGluYXRpb24gPSAnYWxsJyk7CistLSB2ZXJpZnkgbWV0YWRhdGEgYWZ0ZXIgQUxURVIg KGRlc3RpbmF0aW9uIHNob3VsZCBiZSAnYWxsJykKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGlj dGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQgPiAwIEFTIGhhc19yZWxpZAorRlJPTSBwZ19z dWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKyAg ICAgICAgc3VibmFtZSAgICAgICAgIHwgc3ViY29uZmxpY3Rsb2dkZXN0IHwgaGFzX3JlbGlkIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgcmVncmVzc19jb25mbGljdF90ZXN0MiB8IGFsbCAgICAgICAgICAgICAgICB8IHQKKygxIHJv dykKKworLS0gdHJhbnNpdGlvbiBmcm9tICdhbGwnIHRvICd0YWJsZScKKy0tIHNob3VsZCBOT1Qg ZHJvcCB0aGUgdGFibGUsIG9ubHkgY2hhbmdlIGRlc3RpbmF0aW9uIHN0cmluZworU0VMRUNUIHN1 YmNvbmZsaWN0bG9ncmVsaWQgQVMgb2xkX3JlbGlkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJF IHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MicgXGdzZXQKK0FMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u ID0gJ3RhYmxlJyk7CitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3Jl bGlkID0gOm9sZF9yZWxpZCBBUyByZWxpZF91bmNoYW5nZWQKK0ZST00gcGdfc3Vic2NyaXB0aW9u IFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7Cisgc3ViY29uZmxpY3Rs b2dkZXN0IHwgcmVsaWRfdW5jaGFuZ2VkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0KKyB0YWJsZSAgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKKy0tIHRyYW5zaXRp b24gZnJvbSAndGFibGUnIHRvICdsb2cnCistLSBzaG91bGQgZHJvcCB0aGUgdGFibGUgYW5kIGNs ZWFyIHJlbGlkCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQg KGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsKK1NFTEVDVCBzdWJjb25mbGljdGxv Z2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7Cisgc3ViY29uZmxpY3Rsb2dkZXN0IHwg c3ViY29uZmxpY3Rsb2dyZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIGxvZyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIDAKKygxIHJv dykKKworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0YWJsZSBpcyBnb25lCitTRUxFQ1QgY291bnQo KikKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUg PSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfdGVzdDInOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tCist LSBQVUJMSUNBVElPTjogVmVyaWZ5IGNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIG5vdCBwdWJsaXNo YWJsZQorLS0KKy0tIHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlIHNob3VsZCByZXR1cm4gZmFs c2UgZm9yIGludGVybmFsIGNvbmZsaWN0IGxvZworLS0gdGFibGVzIHRvIHByZXZlbnQgdGhlbSBm cm9tIGJlaW5nIGFjY2lkZW50YWxseSBpbmNsdWRlZCBpbiBwdWJsaWNhdGlvbnMKKy0tCitTRUxF Q1Qgbi5uc3BuYW1lLCBwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZShjLm9pZCkKK0ZST00gcGdf Y2xhc3MgYworSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkCitK T0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIHMuc3ViY29uZmxpY3Rsb2dyZWxpZCA9IGMub2lkCitX SEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisgICBuc3BuYW1lICAg fCBwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHBnX2NvbmZsaWN0IHwgZgorKDEgcm93KQorCistLQorLS0gVGFi bGUgUHJvdGVjdGlvbiBhbmQgTGlmZWN5Y2xlIE1hbmFnZW1lbnQKKy0tCistLSBUaGVzZSB0ZXN0 cyB2ZXJpZnkgdGhhdDoKKy0tIE1hbnVhbCBEUk9QIFRBQkxFIGlzIGRpc2FsbG93ZWQKKy0tIERS T1AgU1VCU0NSSVBUSU9OIGF1dG9tYXRpY2FsbHkgcmVhcHMgdGhlIHRhYmxlCistLQorLS0gcmUt ZW5hYmxlIHRhYmxlIGxvZ2dpbmcgZm9yIHZlcmlmaWNhdGlvbgorQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAn dGFibGUnKTsKKy0tIFdlIHVzZSBhIERPIGJsb2NrIHdpdGggZHluYW1pYyBTUUwgYmVjYXVzZSB0 aGUgaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxlCistLSBuYW1lIGNvbnRhaW5zIHRoZSBzdWJz Y3JpcHRpb24gT0lELCB3aGljaCBpcyBub24tZGV0ZXJtaW5pc3RpYy4gVGhpcworLS0gYXBwcm9h Y2ggYWxsb3dzIHVzIHRvIGF0dGVtcHQgdGhlIERST1AgYW5kIGNhcHR1cmUgdGhlIGV4cGVjdGVk IGVycm9yCistLSB3aXRob3V0IGhhcmQtY29kaW5nIGEgc3BlY2lmaWMgT0lEIGluIHRoZSBleHBl Y3RlZCBvdXRwdXQKKy0tIGZhaWwgLSBkcm9wIHRhYmxlIG5vdCBhbGxvd2VkIGR1ZSB0byBpbnRl cm5hbCBkZXBlbmRlbmN5CitETyAkJAorQkVHSU4KKyAgICBFWEVDVVRFICdEUk9QIFRBQkxFICcg fHwgKFNFTEVDVCAncGdfY29uZmxpY3QucGdfY29uZmxpY3RfJyB8fCBvaWQgRlJPTSBwZ19zdWJz Y3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyk7CitFWENF UFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0Ug J2NhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlJzsKK0VORCAk JDsKK05PVElDRTogIGNhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmls ZWdlCistLSBDTEVBTlVQOiBEUk9QIFNVQlNDUklQVElPTiByZWFwcyB0aGUgdGFibGUKK0FMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIERJU0FCTEU7CitBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwor LS0gVmVyaWZ5IHRoZSB0YWJsZSBPSUQgZm9yIHJlYXAgY2hlY2sKK1NFTEVDVCAncGdfY29uZmxp Y3RfJyB8fCBvaWQgQVMgaW50ZXJuYWxfdGFibGVuYW1lIEZST00gcGdfc3Vic2NyaXB0aW9uIFdI RVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgXGdzZXQKK0RST1AgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDE7CistLSBzaG91bGQgcmV0dXJuIE5VTEwsIG1l YW5pbmcgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3YXMgcmVhcGVkIHZpYSBkZXBlbmRlbmN5CitT RUxFQ1QgdG9fcmVnY2xhc3MoOidpbnRlcm5hbF90YWJsZW5hbWUnKTsKKyB0b19yZWdjbGFzcyAK Ky0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworLS0KKy0tIEFkZGl0aW9uYWwgTmFtZXNwYWNl IGFuZCBUYWJsZSBQcm90ZWN0aW9uIFRlc3RzCistLQorLS0gU2V0dXA6IEVuc3VyZSB3ZSBoYXZl IGEgc3Vic2NyaXB0aW9uIHdpdGggYSBjb25mbGljdCBsb2cgdGFibGUKK0NSRUFURSBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgQ09OTkVDVElPTiAnZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0JworICAgIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29u bmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKK1dBUk5J Tkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5U OiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUg cmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUg c3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgorLS0gVHJ5aW5nIHRvIEFMVEVS IHRoZSBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYmVj YXVzZSB0aGUgdGFibGUgaXMgc3lzdGVtLW1hbmFnZWQKKy0tIEFzIG1lbnRpb25lZCBpbiBwcmV2 aW91cyB0ZXN0IGNhc2VzLCB3ZSB1c2UgYSBETyBibG9jayB0byBoaWRlIGR5bmFtaWMgT0lEcwor RE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3Bn X2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBj IEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0XycgfHwg cy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9u X3Rlc3QnOworCisgICAgUkFJU0UgTk9USUNFICdBdHRlbXB0aW5nIEFMVEVSIFRBQkxFIG9uIGlu dGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZSc7CisgICAgRVhFQ1VURSAnQUxURVIgVEFCTEUgJyB8 fCB0YWJfbmFtZSB8fCAnIEFERCBDT0xVTU4gZXh0cmFfaW5mbyB0ZXh0JzsKK0VYQ0VQVElPTiBX SEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVy ZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5nIEFMVEVSJzsK K0VORCAkJDsKK05PVElDRTogIEF0dGVtcHRpbmcgQUxURVIgVEFCTEUgb24gaW50ZXJuYWwgY29u ZmxpY3QgbG9nIHRhYmxlCitOT1RJQ0U6ICBjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZm aWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgQUxURVIKKy0tIFRlc3QgTWFudWFsIElOU0VSVCBvbiBj b25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUgdGFibGUg aXMgc3lzdGVtLW1hbmFnZWQKKy0tIEhpZGluZyB0aGUgT0lEIGluIHRoZSBlcnJvciBtZXNzYWdl IGJ5IGNhdGNoaW5nIHRoZSBleGNlcHRpb24KK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUg dGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0 YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMu cmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0g J3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKworICAgIEVYRUNVVEUgJ0lOU0VS VCBJTlRPICcgfHwgdGFiX25hbWUgfHwgJyAocmVsbmFtZSkgVkFMVUVTICgnJ215dGVzdCcnKSc7 CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBO T1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1 cmluZyBJTlNFUlQnOworRU5EICQkOworTk9USUNFOiAgY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6 IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5nIElOU0VSVAorLS0gVGVzdCBNYW51YWwgVVBE QVRFIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRo ZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gSGlkaW5nIHRoZSBPSUQgaW4gdGhlIGVycm9y IG1lc3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgorRE8gJCQKK0RFQ0xBUkUKKyAgICB0 YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFt ZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9u IHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0XycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworCisgICAgRVhFQ1VU RSAnVVBEQVRFICcgfHwgdGFiX25hbWUgfHwgJyBTRVQgcmVsbmFtZSA9ICcnbXl0ZXN0JycgJzsK K0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5P VElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVy aW5nIFVQREFURSc7CitFTkQgJCQ7CitOT1RJQ0U6ICBjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjog aW5zdWZmaWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgVVBEQVRFCistLSBUcnlpbmcgdG8gcGVyZm9y bSBUUlVOQ0FURS9ERUxFVEUgb24gdGhlIGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0g VGhpcyBzaG91bGQgYmUgYWxsb3dlZCBzbyB0aGF0IHVzZXIgY2FuIHBlcmZvcm0gY2xlYW51cAor U0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgQVMgY29uZmxpY3RfdGFiCitGUk9NIHBn X2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZs aWN0XycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3Rl Y3Rpb25fdGVzdCcgXGdzZXQKK1RSVU5DQVRFIDpjb25mbGljdF90YWI7CitERUxFVEUgRlJPTSA6 Y29uZmxpY3RfdGFiOworLS0gVHJ5aW5nIHRvIGNyZWF0ZSBhIG5ldyB0YWJsZSBtYW51YWxseSBp biB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNlCistLSBUaGlzIHNob3VsZCBmYWlsIGFzIHRoZSBu YW1lc3BhY2UgaXMgcmVzZXJ2ZWQgZm9yIGNvbmZsaWN0IGxvZ3MgdGFibGVzCitDUkVBVEUgVEFC TEUgcGdfY29uZmxpY3QubWFudWFsX3RhYmxlIChpZCBpbnQpOworRVJST1I6ICBwZXJtaXNzaW9u IGRlbmllZCB0byBjcmVhdGUgInBnX2NvbmZsaWN0Lm1hbnVhbF90YWJsZSIKK0RFVEFJTDogIFN5 c3RlbSBjYXRhbG9nIG1vZGlmaWNhdGlvbnMgYXJlIGN1cnJlbnRseSBkaXNhbGxvd2VkLgorLS0g TW92aW5nIGFuIGV4aXN0aW5nIHRhYmxlIGludG8gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZQor LS0gVXNlcnMgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIG1vdmUgdGhlaXIgb3duIHRhYmxlcyB3aXRo aW4gdGhpcyBuYW1lc3BhY2UKK0NSRUFURSBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlIChpZCBpbnQp OworQUxURVIgVEFCTEUgcHVibGljLnRlc3RfbW92ZSBTRVQgU0NIRU1BIHBnX2NvbmZsaWN0Owor RVJST1I6ICBjYW5ub3QgbW92ZSBvYmplY3RzIGludG8gb3Igb3V0IG9mIENPTkZMSUNUIHNjaGVt YQorRFJPUCBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlOworLS0gQ2xlYW4gdXAgcmVtYWluaW5nIHRl c3Qgc3Vic2NyaXB0aW9uCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2df ZGVmYXVsdCBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9n X2RlZmF1bHQgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfY29uZmxpY3RfbG9nX2RlZmF1bHQ7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF9lbXB0eV9zdHIgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X2VtcHR5X3N0ciBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF9lbXB0eV9zdHI7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF90ZXN0MiBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxp Y3RfdGVzdDIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfY29uZmxpY3RfdGVzdDI7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9w cm90ZWN0aW9uX3Rlc3QgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X3Byb3RlY3Rpb25fdGVzdCBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3Q7CiBSRVNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT047CiBEUk9QIFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsKIERST1Ag Uk9MRSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3Jp cHRpb24uc3FsCmluZGV4IGVmMGMyOThkMmRmLi5kMjkzNDQ3ODM5MiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zdWJzY3JpcHRpb24uc3FsCkBAIC0zNjUsNiArMzY1LDIyMyBAQCBDT01NSVQ7CiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBE Uk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CiAKKy0tCistLSBDT05GTElDVCBMT0cg REVTVElOQVRJT04gVEVTVFMKKy0tCisKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXInOworCistLSBmYWlsIC0gdW5yZWNvZ25pemVkIHBhcmFtZXRl ciB2YWx1ZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2ZhaWwgQ09OTkVD VElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJ VEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2ludmFsaWQn KTsKKworLS0gdmVyaWZ5IHN1YmNvbmZsaWN0bG9nZGVzdCBpcyAnbG9nJyBhbmQgcmVsaWQgaXMg MCAoSW52YWxpZE9pZCkgZm9yIGRlZmF1bHQgY2FzZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdy ZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UpOworU0VM RUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZAorRlJP TSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X2xvZ19k ZWZhdWx0JzsKKworLS0gdmVyaWZ5IGVtcHR5IHN0cmluZyBkZWZhdWx0cyB0byAnbG9nJworQ1JF QVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBDT05ORUNUSU9OICdk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29u bmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnJyk7CitTRUxFQ1Qgc3Vi bmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1 YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyJzsK KworLS0gdGhpcyBzaG91bGQgZ2VuZXJhdGUgYW4gaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxl IG5hbWVkIHBnX2NvbmZsaWN0XyRzdWJpZCQKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF90ZXN0MSBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBV QkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVz dGluYXRpb24gPSAndGFibGUnKTsKKworLS0gY2hlY2sgbWV0YWRhdGEgaW4gcGdfc3Vic2NyaXB0 aW9uOiBkZXN0aW5hdGlvbiBzaG91bGQgYmUgJ3RhYmxlJyBhbmQgcmVsaWQgdmFsaWQKK1NFTEVD VCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQgPiAwIEFT IGhhc19yZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Rlc3QxJzsKKworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0YWJsZSBleGlzdHMs IGl0cyBPSUQgbWF0Y2hlcyBzdWJjb25mbGljdGxvZ3JlbGlkLAorLS0gYW5kIGl0IGlzIGxvY2F0 ZWQgaW4gdGhlICdwZ19jb25mbGljdCcgbmFtZXNwYWNlCitTRUxFQ1Qgbi5uc3BuYW1lLCAoYy5v aWQgPSBzLnN1YmNvbmZsaWN0bG9ncmVsaWQpIEFTICJvaWRfbWF0Y2hlcyIKK0ZST00gcGdfY2xh c3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3Rf JyB8fCBzLm9pZAorSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lk CitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisKKy0tIGNoZWNr IGlmIHRoZSBjb25mbGljdCBsb2cgdGFibGUgaGFzIHRoZSBjb3JyZWN0IHNjaGVtYQorU0VMRUNU IGEuYXR0bnVtLCBhLmF0dG5hbWUKK0ZST00gcGdfYXR0cmlidXRlIGEKK0pPSU4gcGdfY2xhc3Mg YyBPTiBhLmF0dHJlbGlkID0gYy5vaWQKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxu YW1lID0gJ3BnX2NvbmZsaWN0XycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Rlc3QxJyBBTkQgYS5hdHRudW0gPiAwCisgICAgT1JERVIgQlkgYS5hdHRudW07 CisKKy0tCistLSBBTFRFUiBTVUJTQ1JJUFRJT04gLSBjb25mbGljdF9sb2dfZGVzdGluYXRpb24g c3RhdGUgdHJhbnNpdGlvbnMKKy0tCistLSBUaGVzZSB0ZXN0cyB2ZXJpZnkgdGhlIHRyYW5zaXRp b24gbG9naWMgYmV0d2VlbiBkaWZmZXJlbnQgbG9nZ2luZworLS0gZGVzdGluYXRpb25zLCBlbnN1 cmluZyBjb25mbGljdCBsb2cgdGFibGVzIGFyZSBjcmVhdGVkIG9yIGRyb3BwZWQgYXMKKy0tIGV4 cGVjdGVkCistLQorLS0gdHJhbnNpdGlvbiBmcm9tICdsb2cnIHRvICdhbGwnCistLSBhIG5ldyBp bnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUgc2hvdWxkIGJlIGNyZWF0ZWQKK0NSRUFURSBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNl LCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnbG9nJyk7CitBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdh bGwnKTsKKworLS0gdmVyaWZ5IG1ldGFkYXRhIGFmdGVyIEFMVEVSIChkZXN0aW5hdGlvbiBzaG91 bGQgYmUgJ2FsbCcpCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25m bGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJF IHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0tIHRyYW5zaXRpb24gZnJv bSAnYWxsJyB0byAndGFibGUnCistLSBzaG91bGQgTk9UIGRyb3AgdGhlIHRhYmxlLCBvbmx5IGNo YW5nZSBkZXN0aW5hdGlvbiBzdHJpbmcKK1NFTEVDVCBzdWJjb25mbGljdGxvZ3JlbGlkIEFTIG9s ZF9yZWxpZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfdGVzdDInIFxnc2V0CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90 ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworU0VMRUNUIHN1 YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA9IDpvbGRfcmVsaWQgQVMgcmVs aWRfdW5jaGFuZ2VkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jl c3NfY29uZmxpY3RfdGVzdDInOworCistLSB0cmFuc2l0aW9uIGZyb20gJ3RhYmxlJyB0byAnbG9n JworLS0gc2hvdWxkIGRyb3AgdGhlIHRhYmxlIGFuZCBjbGVhciByZWxpZAorQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRp b24gPSAnbG9nJyk7CitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3Jl bGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxp Y3RfdGVzdDInOworCistLSB2ZXJpZnkgdGhlIHBoeXNpY2FsIHRhYmxlIGlzIGdvbmUKK1NFTEVD VCBjb3VudCgqKQorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMu cmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVn cmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0tCistLSBQVUJMSUNBVElPTjogVmVyaWZ5IGNvbmZs aWN0IGxvZyB0YWJsZXMgYXJlIG5vdCBwdWJsaXNoYWJsZQorLS0KKy0tIHBnX3JlbGF0aW9uX2lz X3B1Ymxpc2hhYmxlIHNob3VsZCByZXR1cm4gZmFsc2UgZm9yIGludGVybmFsIGNvbmZsaWN0IGxv ZworLS0gdGFibGVzIHRvIHByZXZlbnQgdGhlbSBmcm9tIGJlaW5nIGFjY2lkZW50YWxseSBpbmNs dWRlZCBpbiBwdWJsaWNhdGlvbnMKKy0tCitTRUxFQ1Qgbi5uc3BuYW1lLCBwZ19yZWxhdGlvbl9p c19wdWJsaXNoYWJsZShjLm9pZCkKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19uYW1lc3BhY2Ug biBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIHMu c3ViY29uZmxpY3Rsb2dyZWxpZCA9IGMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19j b25mbGljdF90ZXN0MSc7CisKKy0tCistLSBUYWJsZSBQcm90ZWN0aW9uIGFuZCBMaWZlY3ljbGUg TWFuYWdlbWVudAorLS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGF0OgorLS0gTWFudWFsIERS T1AgVEFCTEUgaXMgZGlzYWxsb3dlZAorLS0gRFJPUCBTVUJTQ1JJUFRJT04gYXV0b21hdGljYWxs eSByZWFwcyB0aGUgdGFibGUKKy0tCistLSByZS1lbmFibGUgdGFibGUgbG9nZ2luZyBmb3IgdmVy aWZpY2F0aW9uCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQg KGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworCistLSBXZSB1c2UgYSBETyBi bG9jayB3aXRoIGR5bmFtaWMgU1FMIGJlY2F1c2UgdGhlIGludGVybmFsIGNvbmZsaWN0IGxvZyB0 YWJsZQorLS0gbmFtZSBjb250YWlucyB0aGUgc3Vic2NyaXB0aW9uIE9JRCwgd2hpY2ggaXMgbm9u LWRldGVybWluaXN0aWMuIFRoaXMKKy0tIGFwcHJvYWNoIGFsbG93cyB1cyB0byBhdHRlbXB0IHRo ZSBEUk9QIGFuZCBjYXB0dXJlIHRoZSBleHBlY3RlZCBlcnJvcgorLS0gd2l0aG91dCBoYXJkLWNv ZGluZyBhIHNwZWNpZmljIE9JRCBpbiB0aGUgZXhwZWN0ZWQgb3V0cHV0CisKKy0tIGZhaWwgLSBk cm9wIHRhYmxlIG5vdCBhbGxvd2VkIGR1ZSB0byBpbnRlcm5hbCBkZXBlbmRlbmN5CitETyAkJAor QkVHSU4KKyAgICBFWEVDVVRFICdEUk9QIFRBQkxFICcgfHwgKFNFTEVDVCAncGdfY29uZmxpY3Qu cGdfY29uZmxpY3RfJyB8fCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9 ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyk7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRf cHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVkIGVycm9y OiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlJzsKK0VORCAkJDsKKworLS0gQ0xFQU5VUDogRFJPUCBT VUJTQ1JJUFRJT04gcmVhcHMgdGhlIHRhYmxlCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF90ZXN0MSBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxp Y3RfdGVzdDEgU0VUIChzbG90X25hbWUgPSBOT05FKTsKKworLS0gVmVyaWZ5IHRoZSB0YWJsZSBP SUQgZm9yIHJlYXAgY2hlY2sKK1NFTEVDVCAncGdfY29uZmxpY3RfJyB8fCBvaWQgQVMgaW50ZXJu YWxfdGFibGVuYW1lIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF90ZXN0MScgXGdzZXQKKworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF90ZXN0MTsKKworLS0gc2hvdWxkIHJldHVybiBOVUxMLCBtZWFuaW5nIHRoZSBjb25mbGlj dCBsb2cgdGFibGUgd2FzIHJlYXBlZCB2aWEgZGVwZW5kZW5jeQorU0VMRUNUIHRvX3JlZ2NsYXNz KDonaW50ZXJuYWxfdGFibGVuYW1lJyk7CisKKy0tCistLSBBZGRpdGlvbmFsIE5hbWVzcGFjZSBh bmQgVGFibGUgUHJvdGVjdGlvbiBUZXN0cworLS0KKworLS0gU2V0dXA6IEVuc3VyZSB3ZSBoYXZl IGEgc3Vic2NyaXB0aW9uIHdpdGggYSBjb25mbGljdCBsb2cgdGFibGUKK0NSRUFURSBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgQ09OTkVDVElPTiAnZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0JworICAgIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29u bmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKKworLS0g VHJ5aW5nIHRvIEFMVEVSIHRoZSBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMg c2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUgdGFibGUgaXMgc3lzdGVtLW1hbmFnZWQKKy0tIEFzIG1l bnRpb25lZCBpbiBwcmV2aW91cyB0ZXN0IGNhc2VzLCB3ZSB1c2UgYSBETyBibG9jayB0byBoaWRl IGR5bmFtaWMgT0lEcworRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4K KyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAg RlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3Bn X2NvbmZsaWN0XycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25m bGljdF9wcm90ZWN0aW9uX3Rlc3QnOworCisgICAgUkFJU0UgTk9USUNFICdBdHRlbXB0aW5nIEFM VEVSIFRBQkxFIG9uIGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZSc7CisgICAgRVhFQ1VURSAn QUxURVIgVEFCTEUgJyB8fCB0YWJfbmFtZSB8fCAnIEFERCBDT0xVTU4gZXh0cmFfaW5mbyB0ZXh0 JzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNF IE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2Ug ZHVyaW5nIEFMVEVSJzsKK0VORCAkJDsKKworLS0gVGVzdCBNYW51YWwgSU5TRVJUIG9uIGNvbmZs aWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBz eXN0ZW0tbWFuYWdlZAorLS0gSGlkaW5nIHRoZSBPSUQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkg Y2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0 OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9u YW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxu YW1lID0gJ3BnX2NvbmZsaWN0XycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVn cmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworCisgICAgRVhFQ1VURSAnSU5TRVJUIElO VE8gJyB8fCB0YWJfbmFtZSB8fCAnIChyZWxuYW1lKSBWQUxVRVMgKCcnbXl0ZXN0JycpJzsKK0VY Q0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElD RSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5n IElOU0VSVCc7CitFTkQgJCQ7CisKKy0tIFRlc3QgTWFudWFsIFVQREFURSBvbiBjb25mbGljdCBs b2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUgdGFibGUgaXMgc3lzdGVt LW1hbmFnZWQKKy0tIEhpZGluZyB0aGUgT0lEIGluIHRoZSBlcnJvciBtZXNzYWdlIGJ5IGNhdGNo aW5nIHRoZSBleGNlcHRpb24KK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKK0JF R0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQor ICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9 ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3Nf Y29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKworICAgIEVYRUNVVEUgJ1VQREFURSAnIHx8IHRh Yl9uYW1lIHx8ICcgU0VUIHJlbG5hbWUgPSAnJ215dGVzdCcnICc7CitFWENFUFRJT04gV0hFTiBp bnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4 cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBVUERBVEUnOworRU5E ICQkOworCistLSBUcnlpbmcgdG8gcGVyZm9ybSBUUlVOQ0FURS9ERUxFVEUgb24gdGhlIGludGVy bmFsIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgYmUgYWxsb3dlZCBzbyB0aGF0 IHVzZXIgY2FuIHBlcmZvcm0gY2xlYW51cAorU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5h bWUgQVMgY29uZmxpY3RfdGFiCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9u IHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0XycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFt ZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCcgXGdzZXQKK1RSVU5DQVRFIDpj b25mbGljdF90YWI7CitERUxFVEUgRlJPTSA6Y29uZmxpY3RfdGFiOworCistLSBUcnlpbmcgdG8g Y3JlYXRlIGEgbmV3IHRhYmxlIG1hbnVhbGx5IGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UK Ky0tIFRoaXMgc2hvdWxkIGZhaWwgYXMgdGhlIG5hbWVzcGFjZSBpcyByZXNlcnZlZCBmb3IgY29u ZmxpY3QgbG9ncyB0YWJsZXMKK0NSRUFURSBUQUJMRSBwZ19jb25mbGljdC5tYW51YWxfdGFibGUg KGlkIGludCk7CisKKy0tIE1vdmluZyBhbiBleGlzdGluZyB0YWJsZSBpbnRvIHRoZSBwZ19jb25m bGljdCBuYW1lc3BhY2UKKy0tIFVzZXJzIHNob3VsZCBub3QgYmUgYWJsZSB0byBtb3ZlIHRoZWly IG93biB0YWJsZXMgd2l0aGluIHRoaXMgbmFtZXNwYWNlCitDUkVBVEUgVEFCTEUgcHVibGljLnRl c3RfbW92ZSAoaWQgaW50KTsKK0FMVEVSIFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgU0VUIFNDSEVN QSBwZ19jb25mbGljdDsKK0RST1AgVEFCTEUgcHVibGljLnRlc3RfbW92ZTsKKworLS0gQ2xlYW4g dXAgcmVtYWluaW5nIHRlc3Qgc3Vic2NyaXB0aW9uCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c19jb25mbGljdF9sb2dfZGVmYXVsdCBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQ7CisKK0FMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBESVNBQkxFOworQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitE Uk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0cjsKKworQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9Q IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyOworCitBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgRElTQUJMRTsKK0FMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBTRVQgKHNsb3RfbmFtZSA9 IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rl c3Q7CisKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyOwpk aWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMv cGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCAxNGRlYzJkNDljMS4uNjA2NDQ3MzRlZDYgMTAw NjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC01MDEsNiArNTAxLDggQEAgQ29uZGl0aW9uVmFy aWFibGVNaW5pbWFsbHlQYWRkZWQKIENvbmRpdGlvbmFsU3RhY2sKIENvbmZpZ0RhdGEKIENvbmZp Z1ZhcmlhYmxlCitDb25mbGljdExvZ0NvbHVtbkRlZgorQ29uZmxpY3RMb2dEZXN0CiBDb25mbGlj dFR1cGxlSW5mbwogQ29uZmxpY3RUeXBlCiBDb25uQ2FjaGVFbnRyeQotLSAKMi40OS4wCgo= --0000000000000db5ba06487b8131--