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 1wVSA4-001yEZ-3D for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Jun 2026 10:52:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wVSA3-00BpJT-34 for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Jun 2026 10:52:23 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wVSA2-00BpJL-1q for pgsql-hackers@lists.postgresql.org; Fri, 05 Jun 2026 10:52:23 +0000 Received: from mail-lf1-x135.google.com ([2a00:1450:4864:20::135]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wVS9y-00000001DvH-4AVI for pgsql-hackers@lists.postgresql.org; Fri, 05 Jun 2026 10:52:21 +0000 Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-5aa4bb157c6so1719946e87.3 for ; Fri, 05 Jun 2026 03:52:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780656736; cv=none; d=google.com; s=arc-20240605; b=NhRfdbpRo0F0UBZbxo1aCHRzltc2op6pZ/gkgHaVYhDGqJNvt/5cAjCbsyhXdi+esM pqA9iVqhYHVSAGZtVqRlASMuo21aJdm5wAyJXRzFOOqYRoMLIqStbpsDOu8EM/KLHYv9 4D2zNpaHbsiNsQRP/Tf87HjvD9cOzvKaBi7QmXQgaxesYW8AwfHba71IQyCJO2T0q1K0 nyBws3T0r+emf2fvc4bjJYbCEh9AcWSMg6cY2p4dH6aTvv6+IRudMI7JpJ4YDZpbL+q4 Y7TxriPGm7JpWFIttzZ3zCXpLAtwE9g2vyC9K7TrSKX9MORwjTnPUFyKsYMWrTlBwcmY FMvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=Dn/h4qs3cBQ0K0scTO3Xf1i85gmF89z+t4jh1SwTRwA=; fh=qUnWxt8aBYe7iR+WLxC0aTWGNRryskX+xwuva2FItOs=; b=Ib30/WcNLDnc/umxygxXyr4WZFFma2szLoKRf8B6wlcBWHda2l3NinU8YUN0TMClIn /9MftdKau4Zmm+TdujmtRykLiXjHML6Uog/puYaOPACdrb7c2NZCmK7tlbyEVObqpoT4 YfSpZYHa9AhVmIX5AMstJAU413/huTT5N2fJeYZQg0cxuVng++NjJ7LRhKV7HAUWtDUp pFxg/Z537v9zkRBupDB7+llNb8++D5OYtuQyBXYntGeNGCXfnu0xwr3JwqHx5ujQpiSz LGguVKvM8516CgtX0mOTzue9KSBH/T5jsBBpXldddvGViE70jiHQvFNvdBvdgfzqewJC E1Yg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780656736; x=1781261536; 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=Dn/h4qs3cBQ0K0scTO3Xf1i85gmF89z+t4jh1SwTRwA=; b=HZDmJvVgkjpsEkj4TCn4Qyy4gKQklLZXhRgSZZUYM/v8PbrBZ6Zfg0l9tXspWqou3J 5ZVJnrVrdalaLBJwLkcwe+C2hUMTSluqxkAuzuYclJ9FuaenaNSUwb08svemrS0OYdQF 4xOeGRBCTIXbhF8opmOyzcnOy+EDgWSWvEZdsOZNexrtPA8B2RZjJfJS1vpU4oariUKi NusGCkZj1woK056Pk4zt8YKbhWSfqp3MgUh6ve/Ak2jWWIzjIqxKoRR8/FZ9oHqp4tpC qy3EO/vLAhVchKLoCez6z4iHIQZsxr+GP5cl/teLe3jepiUDqPLaDHqqXv7y7K5tG+ta 4p1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780656736; x=1781261536; 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=Dn/h4qs3cBQ0K0scTO3Xf1i85gmF89z+t4jh1SwTRwA=; b=UK5DUG4hWEs9ht2vyUqYT49plFWvQkT8upC002vlvzXGqi6JYZMBL1NW7QM7ISrBrk DWhh4KAvbQ+cVLUMBtUSSft48AiYujCNIZo0MczzNwWjYX01dvdgicupb1Pobr7Zm6ht yMcf+vsmAmqfWPbgnUK/InyChc17vjlSgtZM83Yp4TutRmrfoVjtTLYRKb5MAxYioekZ jH1Uu5dPsn6b9nKv2lya2mZmkrnCYdYYV/bHNXAcBBaI7GPPYyqy/iNRgP/lQjyxULY8 jVe9Qp5pWtOg1jUQECZqROfbKBIagREWciWOulJU71PR64z6f7I7RiPHXUJjjEBtMXQD TP7A== X-Forwarded-Encrypted: i=1; AFNElJ/NkDY5zBUAACW845/j3fdyttjIh0oWM+4kWBOogLfWDlkTMbk0tYdDTVFhMoOixvXrGOaKNEeFqnKhGLfj@lists.postgresql.org X-Gm-Message-State: AOJu0YwRsj1JyMHfehR0hyvO3adwgtVVQnQmJi0PrZocLiZ8K1L75+j4 i6nUhzkOXmuNM755s4AmDeSYyK3/dpilsV7kIa3OWww2Odohwr8pQMoOoaD89vNrhU1uaQ8lTMs eJMeeUCO6CSvRsUyTOaHXHPaQDK0eWns= X-Gm-Gg: Acq92OFm7pYCDS59T6jaNqGdpoPfwNJpDpzdwkP/4B0wgIWdhIOT5bnp6O5aQjfkDl0 SazqbUndMmf/HJk+JAhXEYKZYS1jP/gHxzL+L3DglXCxIJre/SR+0RXUy5yox63Fm2vMXxyYhxK LGNWfnkKQbxfu/s7XZez4kOPxx+RDEkAGH5Pllu0qHof2dMww4MoaRESINSNx3Zc21zXbIxklhQ 902KdFIX4kbw/dUjKSEMZ8mAUC1QhWn5ByeyE88vmdBlXejagckFLJh/1uEB3E7nBAbjVNa5QTT 8J4aGLYtr2mMVB7XOfc= X-Received: by 2002:a05:6512:ac5:b0:5aa:6637:f225 with SMTP id 2adb3069b0e04-5aa87c3df64mr863024e87.37.1780656735364; Fri, 05 Jun 2026 03:52:15 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dilip Kumar Date: Fri, 5 Jun 2026 16:21:56 +0530 X-Gm-Features: AVVi8Ce-TTsGpmt_xag4h1pL_GRhuBbXxMZCD_P-UrrLtEQoXW2xUIfxeEbeJf8 Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: shveta malik Cc: vignesh C , Nisha Moond , Amit Kapila , Peter Smith , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000002dd2ab06537f74b3" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002dd2ab06537f74b3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Jun 5, 2026 at 3:06=E2=80=AFPM shveta malik wrote: > > On Fri, Jun 5, 2026 at 11:53=E2=80=AFAM Dilip Kumar wrote: > > > > On Thu, Jun 4, 2026 at 4:05=E2=80=AFPM shveta malik wrote: > > > > > > I noticed that it is currently possible to acquire explicit locks on = a CLT: > > > > > > --Session locks table and does not commit txn: > > > postgres=3D# BEGIN; > > > LOCK TABLE pg_conflict.pg_conflict_log_16481 IN SHARE MODE; > > > BEGIN > > > LOCK TABLE > > > > > > Doing so can cause the apply worker to block indefinitely when it > > > attempts to modify the CLT: > > > > > > [247433] LOG: logical replication apply worker for subscription > > > "sub1" has started > > > [247433] LOG: process 247433 still waiting for RowExclusiveLock on > > > relation 16482 of database 5 after 1001.030 ms > > > [247433] DETAIL: Process holding the lock: 245584. Wait queue: 24743= 3. > > > [247433] CONTEXT: waiting for RowExclusiveLock on relation 16482 of = database 5 > > > > > > Toast Table behaviour: > > > postgres=3D*# LOCK TABLE pg_toast.pg_toast_16384 IN SHARE MODE; > > > ERROR: cannot lock relation "pg_toast_16384" > > > DETAIL: This operation is not supported for TOAST tables. > > > > > > Should we consider disallowing explicit LOCK TABLE operations on CLTs= , > > > similar to how PostgreSQL handles TOAST tables? Or does anyone see an= y > > > legitimate use-case (I don't) where we would need to allow explicit > > > LOCKs on CLT? > > > > We need to add namespace-based checks here, as the current logic > > relies solely on relkind [1], which classifies TOAST tables > > separately. In my view, choosing to either allow or disallow this > > behavior will not cause significant inconvenience or seem unusual to > > anyone. Therefore, I prefer the path that minimizes special-purpose > > code. Since explicitly disallowing this requires additional > > special-purpose logic (as shown below [1]), allowing it seems to be > > the cleaner approach. Thoughts? > > Okay, upon analyzing this new logic, I too prefer to allow it. > > I was thinking if there is a way to set lock_timeout in > ProcessPendingConflictLogTuple() or try to acquire lock and if it > fails we hit 'ERRCODE_LOCK_NOT_AVAILABLE', log a different warning in > the log file and let the apply worker proceed. > > But if this too is complicated, I am fine with the current > implementation. Since LOCK TABLE is a well-known command, if a user > explicitly locks a CLT, they should be responsible for the > consequences such as blocking the apply worker. +1 Here is the updated patch which fixes all open issues except Peter reported on 0004 patch, Vignesh would you take care of that? -- Regards, Dilip Kumar Google --0000000000002dd2ab06537f74b3 Content-Type: application/octet-stream; name="v46-0004-Add-conflict-log-table-information-to-describe-s.patch" Content-Disposition: attachment; filename="v46-0004-Add-conflict-log-table-information-to-describe-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq0t11ib3 RnJvbSA4YzkxYzUyZjM4NWQ1ODNkMWRjZTBhZDkzODJiYzYzZWU3NWJlNTU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IE1vbiwgMTggTWF5IDIwMjYgMTE6MzA6MTYgKzAwMDAKU3ViamVjdDogW1BBVENIIHY0NiA0LzVd IEFkZCBjb25mbGljdCBsb2cgdGFibGUgaW5mb3JtYXRpb24gdG8gZGVzY3JpYmUKIHN1YnNjcmlw dGlvbiBvdXRwdXQKCkRpc3BsYXkgdGhlIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlIGFz IGEgZm9vdGVyIGluIFxkUnMrCm91dHB1dCB3aGVuIGNvbmZsaWN0IGxvZ2dpbmcgdG8gdGFibGUv YWxsIGlzIGVuYWJsZWQgZm9yIGEKc3Vic2NyaXB0aW9uLgoKUHJldmlvdXNseSwgc3Vic2NyaXB0 aW9ucyB3ZXJlIGRpc3BsYXllZCB1c2luZyBhIHNpbmdsZSB0YWJ1bGFyCm91dHB1dCBmb3JtYXQu IFNpbmNlIHRoZSBjb25mbGljdCBsb2cgdGFibGUgaW5mb3JtYXRpb24gaXMgc3BlY2lmaWMKdG8g ZWFjaCBzdWJzY3JpcHRpb24gYW5kIGlzIGJldHRlciBzdWl0ZWQgYXMgYXV4aWxpYXJ5IGluZm9y bWF0aW9uLApjaGFuZ2UgdGhlIG91dHB1dCB0byBkaXNwbGF5IGVhY2ggc3Vic2NyaXB0aW9uIGlu ZGl2aWR1YWxseSBpbiBhCnJvdy13aXNlIHRhYmxlIGZvcm1hdCBhbmQgc2hvdyB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlIGFzIGEgZm9vdGVyCndoZW4gYXBwbGljYWJsZS4KClRoaXMgYXBwcm9hY2gg d2FzIGNob3NlbiBiYXNlZCBvbiBzdWdnZXN0aW9ucyBhdDoKaHR0cHM6Ly93d3cucG9zdGdyZXNx bC5vcmcvbWVzc2FnZS1pZC9DQUE0ZUsxS2RLcUtrYVRxY2ozaW42ZWhEX2hnNm9PYUNGXy1Kc1Zm ZDhONm5TOG9WOWclNDBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iaW4vcHNxbC9jb21tYW5kLmMg ICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAg ICAgICAgICAgICAgICAgIHwgNDA1ICsrKysrKysrKysrKysrKysrLS0tLQogc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmggICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgfCAxNzYgKysrKy0tLS0tCiA0IGZpbGVzIGNoYW5n ZWQsIDQyMiBpbnNlcnRpb25zKCspLCAxNjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKaW5kZXggMDFiOGYx MWFhZGQuLjc3N2QwNTUzMjQ2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jCisr KyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKQEAgLTEyMjAsNyArMTIyMCwxMCBAQCBleGVjX2Nv bW1hbmRfZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29u c3QgY2hhciAqY21kKQogCQkJCQkJCXN1Y2Nlc3MgPSBsaXN0UHVibGljYXRpb25zKHBhdHRlcm4p OwogCQkJCQkJYnJlYWs7CiAJCQkJCWNhc2UgJ3MnOgotCQkJCQkJc3VjY2VzcyA9IGRlc2NyaWJl U3Vic2NyaXB0aW9ucyhwYXR0ZXJuLCBzaG93X3ZlcmJvc2UpOworCQkJCQkJaWYgKHNob3dfdmVy Ym9zZSkKKwkJCQkJCQlzdWNjZXNzID0gZGVzY3JpYmVTdWJzY3JpcHRpb25zKHBhdHRlcm4pOwor CQkJCQkJZWxzZQorCQkJCQkJCXN1Y2Nlc3MgPSBsaXN0U3Vic2NyaXB0aW9ucyhwYXR0ZXJuKTsK IAkJCQkJCWJyZWFrOwogCQkJCQlkZWZhdWx0OgogCQkJCQkJc3RhdHVzID0gUFNRTF9DTURfVU5L Tk9XTjsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMKaW5kZXggZTE0NDk2NTRmOTYuLjg2YWUxMzYyOTViIDEwMDY0NAotLS0gYS9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAt MjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uX2QuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnRfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGVm YXVsdF9hY2xfZC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlX2QuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3Byb2NfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBo X2VsZW1lbnRfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVibGljYXRpb25fZC5oIgpAQCAt NzA4MSwxOSArNzA4MiwxNyBAQCBlcnJvcl9yZXR1cm46CiAKIC8qCiAgKiBcZFJzCi0gKiBEZXNj cmliZXMgc3Vic2NyaXB0aW9ucy4KKyAqIExpc3RzIHN1YnNjcmlwdGlvbnMuCiAgKgogICogVGFr ZXMgYW4gb3B0aW9uYWwgcmVnZXhwIHRvIHNlbGVjdCBwYXJ0aWN1bGFyIHN1YnNjcmlwdGlvbnMK ICAqLwogYm9vbAotZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSkKK2xpc3RTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiB7CiAJ UFFFeHBCdWZmZXJEYXRhIGJ1ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBt eW9wdCA9IHBzZXQucG9wdDsKLQlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1td ID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotCQlmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKLQlmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJc3RhdGljIGNvbnN0 IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07 CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDEwMDAwMCkKIAl7CkBAIC03MTA4LDk5ICs3MTA3LDIx MSBAQCBkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJi b3NlKQogCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKIAogCXByaW50ZlBRRXhwQnVmZmVyKCZidWYs ICIvKiAlcyAqL1xuIiwgXygiR2V0IG1hdGNoaW5nIHN1YnNjcmlwdGlvbnMiKSk7CisKKwkvKiBP bmx5IGRpc3BsYXkgc3Vic2NyaXB0aW9ucyBpbiBjdXJyZW50IGRhdGFiYXNlLiAqLwogCWFwcGVu ZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCSAgIlNFTEVDVCBzdWJuYW1lIEFTIFwiJXNcIlxuIgog CQkJCQkgICIsICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZChzdWJvd25lcikgQVMgXCIlc1wi XG4iCiAJCQkJCSAgIiwgIHN1YmVuYWJsZWQgQVMgXCIlc1wiXG4iCi0JCQkJCSAgIiwgIHN1YnB1 YmxpY2F0aW9ucyBBUyBcIiVzXCJcbiIsCisJCQkJCSAgIiwgIHN1YnB1YmxpY2F0aW9ucyBBUyBc IiVzXCJcbiIKKwkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvblxuIgorCQkJ CQkgICJXSEVSRSBzdWJkYmlkID0gKFNFTEVDVCBvaWRcbiIKKwkJCQkJICAiICAgICAgICAgICAg ICAgICBGUk9NIHBnX2NhdGFsb2cucGdfZGF0YWJhc2VcbiIKKwkJCQkJICAiICAgICAgICAgICAg ICAgICBXSEVSRSBkYXRuYW1lID0gcGdfY2F0YWxvZy5jdXJyZW50X2RhdGFiYXNlKCkpIiwKIAkJ CQkJICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiks CiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJFbmFibGVkIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJQ dWJsaWNhdGlvbiIpKTsKIAotCWlmICh2ZXJib3NlKQorCWlmICghdmFsaWRhdGVTUUxOYW1lUGF0 dGVybigmYnVmLCBwYXR0ZXJuLCB0cnVlLCBmYWxzZSwKKwkJCQkJCQkJTlVMTCwgInN1Ym5hbWUi LCBOVUxMLAorCQkJCQkJCQlOVUxMLAorCQkJCQkJCQlOVUxMLCAxKSkKIAl7Ci0JCS8qIEJpbmFy eSBtb2RlIGFuZCBzdHJlYW1pbmcgYXJlIG9ubHkgc3VwcG9ydGVkIGluIHYxNCBhbmQgaGlnaGVy ICovCi0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDE0MDAwMCkKLQkJewotCQkJYXBwZW5kUFFFeHBC dWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1YmJpbmFyeSBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJ ICBnZXR0ZXh0X25vb3AoIkJpbmFyeSIpKTsKKwkJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCQly ZXR1cm4gZmFsc2U7CisJfQogCi0JCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCi0JCQkJ YXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkJICAiLCAoQ0FTRSBzdWJzdHJlYW1cbiIK LQkJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJFQU1fT0ZG KSAiIFRIRU4gJ29mZidcbiIKLQkJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9H SUNBTFJFUF9TVFJFQU1fT04pICIgVEhFTiAnb24nXG4iCi0JCQkJCQkJCSAgIiAgICBXSEVOICIg Q3BwQXNTdHJpbmcyKExPR0lDQUxSRVBfU1RSRUFNX1BBUkFMTEVMKSAiIFRIRU4gJ3BhcmFsbGVs J1xuIgotCQkJCQkJCQkgICIgICBFTkQpIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkJICBnZXR0ZXh0 X25vb3AoIlN0cmVhbWluZyIpKTsKLQkJCWVsc2UKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LAotCQkJCQkJCQkgICIsIHN1YnN0cmVhbSBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJCSAgZ2V0dGV4 dF9ub29wKCJTdHJlYW1pbmciKSk7Ci0JCX0KKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAi T1JERVIgQlkgMTsiKTsKIAotCQkvKiBUd29fcGhhc2UgYW5kIGRpc2FibGVfb25fZXJyb3IgYXJl IG9ubHkgc3VwcG9ydGVkIGluIHYxNSBhbmQgaGlnaGVyICovCi0JCWlmIChwc2V0LnN2ZXJzaW9u ID49IDE1MDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJ0 d29waGFzZXN0YXRlIEFTIFwiJXNcIlxuIgotCQkJCQkJCSAgIiwgc3ViZGlzYWJsZW9uZXJyIEFT IFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiVHdvLXBoYXNlIGNvbW1pdCIpLAot CQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEaXNhYmxlIG9uIGVycm9yIikpOworCXJlcyA9IFBTUUxl eGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJaWYgKCFyZXMpCisJCXJl dHVybiBmYWxzZTsKIAotCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCi0JCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3Vib3JpZ2luIEFTIFwiJXNcIlxuIgotCQkJ CQkJCSAgIiwgc3VicGFzc3dvcmRyZXF1aXJlZCBBUyBcIiVzXCJcbiIKLQkJCQkJCQkgICIsIHN1 YnJ1bmFzb3duZXIgQVMgXCIlc1wiXG4iLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJPcmlnaW4i KSwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiUGFzc3dvcmQgcmVxdWlyZWQiKSwKLQkJCQkJCQkg IGdldHRleHRfbm9vcCgiUnVuIGFzIG93bmVyPyIpKTsKKwlteW9wdC50aXRsZSA9IF8oIkxpc3Qg b2Ygc3Vic2NyaXB0aW9ucyIpOworCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOworCW15 b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7CisJbXlvcHQubl90cmFu c2xhdGVfY29sdW1ucyA9IGxlbmd0aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsKIAotCQlpZiAocHNl dC5zdmVyc2lvbiA+PSAxNzAwMDApCisJcHJpbnRRdWVyeShyZXMsICZteW9wdCwgcHNldC5xdWVy eUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCisJUFFjbGVhcihyZXMpOworCisJcmV0dXJu IHRydWU7Cit9CisKKy8qCisgKiBcZFJzKworICogRGVzY3JpYmVzIHN1YnNjcmlwdGlvbnMuCisg KgorICogVGFrZXMgYW4gb3B0aW9uYWwgcmVnZXhwIHRvIHNlbGVjdCBwYXJ0aWN1bGFyIHN1YnNj cmlwdGlvbnMKKyAqLworYm9vbAorZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBh dHRlcm4pCit7CisJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKKwlpbnQJCQlpOworCVBHcmVzdWx0ICAg KnJlczsKKwlpbnQJCQluY29sczsKKwlpbnQJCQlucm93cyA9IDE7CisKKwlQUUV4cEJ1ZmZlckRh dGEgdGl0bGU7CisJcHJpbnRUYWJsZUNvbnRlbnQgY29udDsKKworCWlmIChwc2V0LnN2ZXJzaW9u IDwgMTAwMDAwKQorCXsKKwkJY2hhcgkJc3ZlcmJ1ZlszMl07CisKKwkJcGdfbG9nX2Vycm9yKCJU aGUgc2VydmVyICh2ZXJzaW9uICVzKSBkb2VzIG5vdCBzdXBwb3J0IHN1YnNjcmlwdGlvbnMuIiwK KwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJlcihwc2V0LnN2ZXJzaW9uLCBmYWxzZSwKKwkJCQkJ CQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3ZlcmJ1ZikpKTsKKwkJcmV0dXJuIHRydWU7CisJfQor CisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIi8q ICVzICovXG4iLCBfKCJHZXQgbWF0Y2hpbmcgc3Vic2NyaXB0aW9ucyIpKTsKKwlhcHBlbmRQUUV4 cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1Qgb2lkLCBzdWJuYW1lIEFTIFwiJXNcIlxuIgor CQkJCQkgICIsICAoU0VMRUNUIG5zcG5hbWUgRlJPTSBwZ19uYW1lc3BhY2UgV0hFUkUgb2lkID0g IiBDcHBBc1N0cmluZzIoUEdfQ09ORkxJQ1RfTkFNRVNQQUNFKSAiKSAgQVMgIFwiJXNcIlxuIgor CQkJCQkgICIsICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZChzdWJvd25lcikgQVMgXCIlc1wi XG4iCisJCQkJCSAgIiwgIHN1YmVuYWJsZWQgQVMgXCIlc1wiXG4iCisJCQkJCSAgIiwgIHN1YnB1 YmxpY2F0aW9ucyBBUyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJ CQkJCSAgZ2V0dGV4dF9ub29wKCJDb25mbGljdF9zY2hlbWEiKSwKKwkJCQkJICBnZXR0ZXh0X25v b3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJFbmFibGVkIiksCisJCQkJCSAgZ2V0 dGV4dF9ub29wKCJQdWJsaWNhdGlvbiIpKTsKKworCS8qCisJICogb2lkLCBzdWJuYW1lIGFuZCBj b25mbGljdF9zY2hlbWEgY29sdW1ucyBhcmUgaW50ZXJuYWwgYW5kIG5vdCBkaXNwbGF5ZWQsCisJ ICogc28gb25seSAzIHZpc2libGUgY29sdW1ucy4KKwkgKi8KKwluY29scyA9IDM7CisKKwkvKiBC aW5hcnkgbW9kZSBhbmQgc3RyZWFtaW5nIGFyZSBvbmx5IHN1cHBvcnRlZCBpbiB2MTQgYW5kIGhp Z2hlciAqLworCWlmIChwc2V0LnN2ZXJzaW9uID49IDE0MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhw QnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHN1YmJpbmFyeSBBUyBcIiVzXCJcbiIsCisJCQkJCQkg IGdldHRleHRfbm9vcCgiQmluYXJ5IikpOworCQluY29scysrOworCisJCWlmIChwc2V0LnN2ZXJz aW9uID49IDE2MDAwMCkKIAkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJICAiLCBz dWJmYWlsb3ZlciBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIkZhaWxvdmVy IikpOwotCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCi0JCXsKKwkJCQkJCQkgICIsIChD QVNFIHN1YnN0cmVhbVxuIgorCQkJCQkJCSAgIiAgICBXSEVOICIgQ3BwQXNTdHJpbmcyKExPR0lD QUxSRVBfU1RSRUFNX09GRikgIiBUSEVOICdvZmYnXG4iCisJCQkJCQkJICAiICAgIFdIRU4gIiBD cHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJFQU1fT04pICIgVEhFTiAnb24nXG4iCisJCQkJCQkJ ICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwpICIg VEhFTiAncGFyYWxsZWwnXG4iCisJCQkJCQkJICAiICAgRU5EKSBBUyBcIiVzXCJcbiIsCisJCQkJ CQkJICBnZXR0ZXh0X25vb3AoIlN0cmVhbWluZyIpKTsKKwkJZWxzZQogCQkJYXBwZW5kUFFFeHBC dWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIChzZWxlY3Qgc3J2bmFtZSBmcm9tIHBnX2ZvcmVpZ25f c2VydmVyIHdoZXJlIG9pZD1zdWJzZXJ2ZXIpIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRl eHRfbm9vcCgiU2VydmVyIikpOworCQkJCQkJCSAgIiwgc3Vic3RyZWFtIEFTIFwiJXNcIlxuIiwK KwkJCQkJCQkgIGdldHRleHRfbm9vcCgiU3RyZWFtaW5nIikpOwogCi0JCQlhcHBlbmRQUUV4cEJ1 ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3VicmV0YWluZGVhZHR1cGxlcyBBUyBcIiVzXCJcbiIs Ci0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlJldGFpbiBkZWFkIHR1cGxlcyIpKTsKKwkJbmNvbHMr KzsKKwl9CiAKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJtYXhy ZXRlbnRpb24gQVMgXCIlc1wiXG4iLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJNYXggcmV0ZW50 aW9uIGR1cmF0aW9uIikpOworCS8qIFR3b19waGFzZSBhbmQgZGlzYWJsZV9vbl9lcnJvciBhcmUg b25seSBzdXBwb3J0ZWQgaW4gdjE1IGFuZCBoaWdoZXIgKi8KKwlpZiAocHNldC5zdmVyc2lvbiA+ PSAxNTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLCBzdWJ0 d29waGFzZXN0YXRlIEFTIFwiJXNcIlxuIgorCQkJCQkJICAiLCBzdWJkaXNhYmxlb25lcnIgQVMg XCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIlR3by1waGFzZSBjb21taXQiKSwKKwkJ CQkJCSAgZ2V0dGV4dF9ub29wKCJEaXNhYmxlIG9uIGVycm9yIikpOworCQluY29scyArPSAyOwor CX0KIAotCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1YnJldGVudGlv bmFjdGl2ZSBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlJldGVudGlvbiBh Y3RpdmUiKSk7Ci0JCX0KKwlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCisJeworCQlhcHBl bmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLCBzdWJvcmlnaW4gQVMgXCIlc1wiXG4iCisJ CQkJCQkgICIsIHN1YnBhc3N3b3JkcmVxdWlyZWQgQVMgXCIlc1wiXG4iCisJCQkJCQkgICIsIHN1 YnJ1bmFzb3duZXIgQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIk9yaWdpbiIp LAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIlBhc3N3b3JkIHJlcXVpcmVkIiksCisJCQkJCQkgIGdl dHRleHRfbm9vcCgiUnVuIGFzIG93bmVyPyIpKTsKKwkJbmNvbHMgKz0gMzsKKwl9CiAKKwlpZiAo cHNldC5zdmVyc2lvbiA+PSAxNzAwMDApCisJewogCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAot CQkJCQkJICAiLCAgc3Vic3luY2NvbW1pdCBBUyBcIiVzXCJcbiIKLQkJCQkJCSAgIiwgIHN1YmNv bm5pbmZvIEFTIFwiJXNcIlxuIiwKLQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJTeW5jaHJvbm91cyBj b21taXQiKSwKLQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb25uaW5mbyIpKTsKKwkJCQkJCSAgIiwg c3ViZmFpbG92ZXIgQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkZhaWxvdmVy IikpOworCQluY29scysrOworCX0KIAotCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCi0J CQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3Vid2FscmN2dGltZW91dCBB UyBcIiVzXCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlJlY2VpdmVyIHRpbWVvdXQiKSk7 CisJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwKKwkJCQkJCSAgIiwgKHNlbGVjdCBzcnZuYW1lIGZyb20gcGdfZm9yZWlnbl9zZXJ2ZXIg d2hlcmUgb2lkPXN1YnNlcnZlcikgQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3Ao IlNlcnZlciIpKTsKIAotCQkvKiBTa2lwIExTTiBpcyBvbmx5IHN1cHBvcnRlZCBpbiB2MTUgYW5k IGhpZ2hlciAqLwotCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCi0JCQlhcHBlbmRQUUV4 cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3Vic2tpcGxzbiBBUyBcIiVzXCJcbiIsCi0JCQkJ CQkJICBnZXR0ZXh0X25vb3AoIlNraXAgTFNOIikpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LAorCQkJCQkJICAiLCBzdWJyZXRhaW5kZWFkdHVwbGVzIEFTIFwiJXNcIlxuIiwKKwkJCQkJCSAg Z2V0dGV4dF9ub29wKCJSZXRhaW4gZGVhZCB0dXBsZXMiKSk7CiAKIAkJYXBwZW5kUFFFeHBCdWZm ZXIoJmJ1ZiwKLQkJCQkJCSAgIiwgIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3Bn X3N1YnNjcmlwdGlvbicpIEFTIFwiJXNcIlxuIiwKLQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZXNj cmlwdGlvbiIpKTsKKwkJCQkJCSAgIiwgc3VibWF4cmV0ZW50aW9uIEFTIFwiJXNcIlxuIiwKKwkJ CQkJCSAgZ2V0dGV4dF9ub29wKCJNYXggcmV0ZW50aW9uIGR1cmF0aW9uIikpOworCisJCWFwcGVu ZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHN1YnJldGVudGlvbmFjdGl2ZSBBUyBcIiVz XCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiUmV0ZW50aW9uIGFjdGl2ZSIpKTsKKworCQlu Y29scyArPSA0OworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCSAgIiwgIHN1 YnN5bmNjb21taXQgQVMgXCIlc1wiXG4iCisJCQkJCSAgIiwgIHN1YmNvbm5pbmZvIEFTIFwiJXNc IlxuIiwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlN5bmNocm9ub3VzIGNvbW1pdCIpLAorCQkJCQkg IGdldHRleHRfbm9vcCgiQ29ubmluZm8iKSk7CisJbmNvbHMgKz0gMjsKKworCWlmIChwc2V0LnN2 ZXJzaW9uID49IDE5MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkg ICIsIHN1YndhbHJjdnRpbWVvdXQgQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3Ao IlJlY2VpdmVyIHRpbWVvdXQiKSk7CisJCW5jb2xzKys7CisJfQorCisJLyogU2tpcCBMU04gaXMg b25seSBzdXBwb3J0ZWQgaW4gdjE1IGFuZCBoaWdoZXIgKi8KKwlpZiAocHNldC5zdmVyc2lvbiA+ PSAxNTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLCBzdWJz a2lwbHNuIEFTIFwiJXNcIlxuIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJTa2lwIExTTiIpKTsK KwkJbmNvbHMrKzsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICIsICBw Z19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihvaWQsICdwZ19zdWJzY3JpcHRpb24nKSBBUyBcIiVz XCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZXNjcmlwdGlvbiIpKTsKKwluY29scysrOwor CisJLyogQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIGlzIHN1cHBvcnRlZCBpbiB2MTkgYW5kIGhp Z2hlciAqLworCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhw QnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHN1YmNvbmZsaWN0bG9nZGVzdCBBUyBcIiVzXCJcbiIs CisJCQkJCQkgIGdldHRleHRfbm9vcCgiQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIikpOworCQlu Y29scysrOwogCX0KIAogCS8qIE9ubHkgZGlzcGxheSBzdWJzY3JpcHRpb25zIGluIGN1cnJlbnQg ZGF0YWJhc2UuICovCkBAIC03MjE5LDIwICs3MzMwLDE1NiBAQCBkZXNjcmliZVN1YnNjcmlwdGlv bnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQlyZXR1cm4gZmFsc2U7CiAJ fQogCi0JYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDE7Iik7CisJYXBwZW5k UFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIHN1Ym5hbWU7Iik7CiAKIAlyZXMgPSBQU1FM ZXhlYyhidWYuZGF0YSk7CiAJdGVybVBRRXhwQnVmZmVyKCZidWYpOwogCWlmICghcmVzKQogCQly ZXR1cm4gZmFsc2U7CiAKLQlteW9wdC50aXRsZSA9IF8oIkxpc3Qgb2Ygc3Vic2NyaXB0aW9ucyIp OwotCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwotCW15b3B0LnRyYW5zbGF0ZV9jb2x1 bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7Ci0JbXlvcHQubl90cmFuc2xhdGVfY29sdW1ucyA9IGxl bmd0aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsKKwlpZiAoUFFudHVwbGVzKHJlcykgPT0gMCkKKwl7 CisJCWlmICghcHNldC5xdWlldCkKKwkJeworCQkJaWYgKHBhdHRlcm4pCisJCQkJcGdfbG9nX2Vy cm9yKCJEaWQgbm90IGZpbmQgYW55IHN1YnNjcmlwdGlvbiBuYW1lZCBcIiVzXCIuIiwKKwkJCQkJ CQkgcGF0dGVybik7CisJCQllbHNlCisJCQkJcGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55 IHN1YnNjcmlwdGlvbnMuIik7CisJCX0KIAotCXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQu cXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKKwkJdGVybVBRRXhwQnVmZmVyKCZidWYp OworCQlQUWNsZWFyKHJlcyk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlmb3IgKGkgPSAwOyBp IDwgUFFudHVwbGVzKHJlcyk7IGkrKykKKwl7CisJCWNvbnN0IGNoYXIJYWxpZ24gPSAnbCc7CisJ CWNoYXIJICAgKnN1YmlkID0gUFFnZXR2YWx1ZShyZXMsIGksIDApOworCQljaGFyCSAgICpzdWJu YW1lID0gUFFnZXR2YWx1ZShyZXMsIGksIDEpOworCQljaGFyCSAgICpjb25mbGljdF9zY2hlbWEg PSBQUWdldHZhbHVlKHJlcywgaSwgMik7CisJCWludAkJCWN1cnJlbnRfY29sID0gMzsKKwkJcHJp bnRUYWJsZU9wdCBteW9wdCA9IHBzZXQucG9wdC50b3B0OwogCisJCWluaXRQUUV4cEJ1ZmZlcigm dGl0bGUpOworCQlwcmludGZQUUV4cEJ1ZmZlcigmdGl0bGUsIF8oIlN1YnNjcmlwdGlvbiAlcyIp LCBzdWJuYW1lKTsKKwkJcHJpbnRUYWJsZUluaXQoJmNvbnQsICZteW9wdCwgdGl0bGUuZGF0YSwg bmNvbHMsIG5yb3dzKTsKKworCQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25v b3AoIk93bmVyIiksIHRydWUsIGFsaWduKTsKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwg Z2V0dGV4dF9ub29wKCJFbmFibGVkIiksIHRydWUsIGFsaWduKTsKKwkJcHJpbnRUYWJsZUFkZEhl YWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJQdWJsaWNhdGlvbiIpLCB0cnVlLCBhbGlnbik7CisK KwkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2Nv bCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFs dWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJcHJpbnRUYWJsZUFk ZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZh bHNlKTsKKworCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNDAwMDApCisJCXsKKwkJCXByaW50VGFi bGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiQmluYXJ5IiksIHRydWUsIGFsaWduKTsK KwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9j b2wrKyksIGZhbHNlLCBmYWxzZSk7CisKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdl dHRleHRfbm9vcCgiU3RyZWFtaW5nIiksIHRydWUsIGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRD ZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxz ZSk7CisJCX0KKworCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCXsKKwkJCXByaW50 VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiVHdvLXBoYXNlIGNvbW1pdCIpLCB0 cnVlLCBhbGlnbik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMs IGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCQlwcmludFRhYmxlQWRkSGVh ZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIkRpc2FibGUgb24gZXJyb3IiKSwgdHJ1ZSwgYWxpZ24p OworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50 X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE2 MDAwMCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJP cmlnaW4iKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0 dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRU YWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJQYXNzd29yZCByZXF1aXJlZCIpLCB0 cnVlLCBhbGlnbik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMs IGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCQlwcmludFRhYmxlQWRkSGVh ZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIlJ1biBhcyBvd25lcj8iKSwgdHJ1ZSwgYWxpZ24pOwor CQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2Nv bCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE3MDAw MCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJGYWls b3ZlciIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2 YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCQl9CisKKwkJaWYg KHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCQl7CisJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZj b250LCBnZXR0ZXh0X25vb3AoIlNlcnZlciIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmludFRhYmxl QWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwg ZmFsc2UpOworCisJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIlJl dGFpbiBkZWFkIHR1cGxlcyIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgm Y29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOwor CisJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIk1heCByZXRlbnRp b24gZHVyYXRpb24iKSwKKwkJCQkJCQkJdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENl bGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNl KTsKKworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJSZXRlbnRp b24gYWN0aXZlIiksIHRydWUsIGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQ UWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCX0KKwor CQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIlN5bmNocm9ub3VzIGNv bW1pdCIpLCB0cnVlLCBhbGlnbik7CisJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZh bHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisKKwkJcHJpbnRUYWJs ZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJDb25uaW5mbyIpLCB0cnVlLCBhbGlnbik7 CisJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9j b2wrKyksIGZhbHNlLCBmYWxzZSk7CisKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQor CQl7CisJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIlJlY2VpdmVy IHRpbWVvdXQiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBR Z2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJ CWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRl cigmY29udCwgZ2V0dGV4dF9ub29wKCJTa2lwIExTTiIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmlu dFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBm YWxzZSwgZmFsc2UpOworCQl9CisKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4 dF9ub29wKCJEZXNjcmlwdGlvbiIpLCB0cnVlLCBhbGlnbik7CisJCXByaW50VGFibGVBZGRDZWxs KCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7 CisKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCQl7CisJCQljaGFyCSAgICpsb2dk ZXN0OworCisJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIkNvbmZs aWN0IGxvZyBkZXN0aW5hdGlvbiIpLAorCQkJCQkJCQl0cnVlLCBhbGlnbik7CisKKwkJCWxvZ2Rl c3QgPSBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyk7CisKKwkJCXByaW50VGFibGVB ZGRDZWxsKCZjb250LCBsb2dkZXN0LCBmYWxzZSwgZmFsc2UpOworCisJCQlpZiAoc3RyY21wKGxv Z2Rlc3QsICJ0YWJsZSIpID09IDAgfHwKKwkJCQlzdHJjbXAobG9nZGVzdCwgImFsbCIpID09IDAp CisJCQl7CisJCQkJY2hhcgkJY29uZmxpY3Rsb2d0YWJsZVtOQU1FREFUQUxFTiArIDMyXTsKKwor CQkJCXNucHJpbnRmKGNvbmZsaWN0bG9ndGFibGUsCisJCQkJCQkgc2l6ZW9mKGNvbmZsaWN0bG9n dGFibGUpLAorCQkJCQkJICIlcy5wZ19jb25mbGljdF9sb2dfJXMiLAorCQkJCQkJIGNvbmZsaWN0 X3NjaGVtYSwgc3ViaWQpOworCisJCQkJcHJpbnRUYWJsZUFkZEZvb3RlcigmY29udCwgXygiQ29u ZmxpY3QgbG9nIHRhYmxlOiIpKTsKKwkJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBwc3By aW50ZigiICAgICVzIiwgY29uZmxpY3Rsb2d0YWJsZSkpOworCQkJfQorCQl9CisKKwkJcHJpbnRU YWJsZSgmY29udCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCQlwcmlu dFRhYmxlQ2xlYW51cCgmY29udCk7CisKKwkJdGVybVBRRXhwQnVmZmVyKCZ0aXRsZSk7CisJfQor CisJdGVybVBRRXhwQnVmZmVyKCZidWYpOwogCVBRY2xlYXIocmVzKTsKIAlyZXR1cm4gdHJ1ZTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmgKaW5kZXggNDdmYWU1Y2VhZmIuLjE1YzZjNjg1MzIzIDEwMDY0NAotLS0gYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApAQCAtMTI2 LDcgKzEyNiwxMCBAQCBib29sCQlsaXN0UHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4p OwogYm9vbAkJZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybik7CiAKIC8q IFxkUnMgKi8KLWJvb2wJCWRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJu LCBib29sIHZlcmJvc2UpOworYm9vbAkJbGlzdFN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0 dGVybik7CisKKy8qIFxkUnMrICovCitib29sCQlkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3Qg Y2hhciAqcGF0dGVybik7CiAKIC8qIFxkQWMgKi8KIGV4dGVybiBib29sIGxpc3RPcGVyYXRvckNs YXNzZXMoY29uc3QgY2hhciAqYWNjZXNzX21ldGhvZF9wYXR0ZXJuLApkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CmluZGV4IDg2MWJjY2I1ZjM3Li4yNzU4NzM1MDYz MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAtMTI0 LDE4ICsxMjQsMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IENPTk5F Q1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFUKIFdBUk5JTkc6ICBzdWJzY3Jp cHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlh dGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24g c2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9u IHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQg fCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQg fCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVz dHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAg fCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9u IHJlZ3Jlc3NfdGVzdHN1YjQKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRp b24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAg fCBEZXNjcmlwdGlvbiB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAgICAgICAg ICAgICB8IGxvZwogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi NCBTRVQgKG9yaWdpbiA9IGFueSk7CiBcZFJzKyByZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucwotICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3Vi NCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwg ICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYg ICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVn cmVzc190ZXN0c3ViNAorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVi bGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJs ZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8 IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBk dXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAg ICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERl c2NyaXB0aW9uIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8ICAgICAgICAgICAg IHwgbG9nCiAoMSByb3cpCiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjM7CkBA IC0yMDAsMTAgKzIwMCwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENP Tk5FQ1RJT04gJ2Zvb2Jhcic7CiBFUlJPUjogIGludmFsaWQgY29ubmVjdGlvbiBzdHJpbmcgc3lu dGF4OiBtaXNzaW5nICI9IiBhZnRlciAiZm9vYmFyIiBpbiBjb25uZWN0aW9uIGluZm8gc3RyaW5n CiAKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwg UmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBh Y3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAg fCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8ICAgIERlc2NyaXB0aW9uICAgIAotLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAg ICAgIHwgMC8wMDAwMDAwMCB8IHRlc3Qgc3Vic2NyaXB0aW9uCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVz c190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgICAgRGVz Y3JpcHRpb24gICAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgdGVz dCBzdWJzY3JpcHRpb24gfCBsb2cKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTRVQgUFVCTElDQVRJT04gdGVzdHB1YjIsIHRlc3RwdWIzIFdJVEggKHJlZnJl c2ggPSBmYWxzZSk7CkBAIC0yMTIsMTAgKzIxMiwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gJ25ld25hbWUnKTsKIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IGZhbHNlKTsKIEFM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChydW5fYXNfb3duZXIgPSB0cnVl KTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAg fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCAgICBEZXNjcmlw dGlvbiAgICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHVi M30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IGYgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IGYgICAg ICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg MCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QyIHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCB0ZXN0IHN1 YnNjcmlwdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCAgICBEZXNjcmlwdGlvbiAgICB8 IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi Mix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IGYgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAg ICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAg fCB0ZXN0IHN1YnNjcmlwdGlvbiB8IGxvZwogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViIFNFVCAocGFzc3dvcmRfcmVxdWlyZWQgPSB0cnVlKTsKQEAgLTIzMSwx MCArMjMxLDEwIEBAIEVSUk9SOiAgdW5yZWNvZ25pemVkIHN1YnNjcmlwdGlvbiBwYXJhbWV0ZXI6 ICJjcmVhdGVfc2xvdCIKIC0tIG9rCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IFNLSVAgKGxzbiA9ICcwLzEyMzQ1Jyk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIHwgICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IC0xICAgICAgICAgICAgICAg fCAwLzAwMDEyMzQ1IHwgdGVzdCBzdWJzY3JpcHRpb24KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVz c190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVi bGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRp b24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04g IHwgICAgRGVzY3JpcHRpb24gICAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNl ciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IC0xICAgICAg ICAgICAgICAgfCAwLzAwMDEyMzQ1IHwgdGVzdCBzdWJzY3JpcHRpb24gfCBsb2cKICgxIHJvdykK IAogLS0gb2sgLSB3aXRoIGxzbiA9IE5PTkUKQEAgLTI0MywxMCArMjQzLDEwIEBAIEFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNuID0gTk9ORSk7CiBBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9ICcwLzAnKTsKIEVSUk9SOiAgaW52 YWxpZCBXQUwgbG9jYXRpb24gKExTTik6IDAvMAogXGRScysKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0 aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFi bGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQg fCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0 IHwgIFNraXAgTFNOICB8ICAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAtMSAgICAgICAgICAg ICAgIHwgMC8wMDAwMDAwMCB8IHRlc3Qgc3Vic2NyaXB0aW9uCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJl Z3Jlc3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAg IFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0 ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAg TFNOICB8ICAgIERlc2NyaXB0aW9uICAgIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVs ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAg ICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAtMSAg ICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IHRlc3Qgc3Vic2NyaXB0aW9uIHwgbG9nCiAoMSBy b3cpCiAKIEJFR0lOOwpAQCAtMjgyLDEwICsyODIsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1Yl9mb28gU0VUICh3YWxfcmVjZWl2ZXJfdGltZW91dCA9ICc4MHMnKTsKIEFM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWJfZm9vIFNFVCAod2FsX3JlY2VpdmVyX3Rp bWVvdXQgPSAnZm9vYmFyJyk7CiBFUlJPUjogIGludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciAi d2FsX3JlY2VpdmVyX3RpbWVvdXQiOiAiZm9vYmFyIgogXGRScysKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJz Y3JpcHRpb25zCi0gICAgICAgIE5hbWUgICAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVh ZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZl ciB0aW1lb3V0IHwgIFNraXAgTFNOICB8ICAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWJfZm9vIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwg cGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8 IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAg ICAgICAgIHwgbG9jYWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 MiB8IDgwcyAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgdGVzdCBzdWJzY3JpcHRpb24KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1Yl9mb28KKyAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3Jk IHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRl YWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2 ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCAgICBEZXNjcmlwdGlvbiAgICB8IENvbmZsaWN0IGxv ZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30g fCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBsb2NhbCAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QyIHwgODBzICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCB0ZXN0IHN1YnNj cmlwdGlvbiB8IGxvZwogKDEgcm93KQogCiAtLSByZW5hbWUgYmFjayB0byBrZWVwIHRoZSByZXN0 IHNpbXBsZQpAQCAtMzE0LDE5ICszMTQsMTkgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdB Uk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBI SU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0 aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0 aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJz Y3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3Vi IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IHQg ICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAg ICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAg ICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVn cmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1 cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVz Y3JpcHRpb24gfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8 IHQgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAg fCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgICAgICAgICAgICAg fCBsb2cKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQg KGJpbmFyeSA9IGZhbHNlKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VU IChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFt ZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRp b24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBl cnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxv dmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlv biB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0 aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAg ICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwg UmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBh Y3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAg fCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9uIHwgQ29uZmxpY3Qg bG9nIGRlc3RpbmF0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAg ICAgICAgICAgIHwgMC8wMDAwMDAwMCB8ICAgICAgICAgICAgIHwgbG9nCiAoMSByb3cpCiAKIERS T1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKQEAgLTMzOCwyNyArMzM4LDI3IEBAIENS RUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVk LCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5 b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUg c3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1Ymxp Y2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAg ICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8w MDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQg dHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0 aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9uIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0 aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwg MCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwg MC8wMDAwMDAwMCB8ICAgICAgICAgICAgIHwgbG9nCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSBwYXJhbGxlbCk7CiBcZFJzKwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1 aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1 cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGlt ZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg IDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlw dGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBEZXNjcmlwdGlvbiB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAgICAg ICAgICAgICB8IGxvZwogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoc3RyZWFtaW5nID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50 aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04g IHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9m ZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAg ICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0 c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwg UmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24g fCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgICAgICAgICAgICAgfCBsb2cKICgx IHJvdykKIAogLS0gZmFpbCAtIHB1YmxpY2F0aW9uIGFscmVhZHkgZXhpc3RzCkBAIC0zNzMsMTAg KzM3MywxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIEFERCBQVUJMSUNB VElPTiB0ZXN0cHViMSwgdGVzdHB1YjIgV0lUSCAocmVmcgogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBBREQgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJl ZnJlc2ggPSBmYWxzZSk7CiBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViMSIgaXMgYWxyZWFk eSBpbiBzdWJzY3JpcHRpb24gInJlZ3Jlc3NfdGVzdHN1YiIKIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEVuYWJsZWQgfCAgICAgICAgIFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBS ZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIxLHRlc3RwdWIyfSB8IGYgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiBy ZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAg ICAgICAgUHVibGljYXRpb24gICAgICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQg fCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQg fCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIsdGVzdHB1YjEsdGVzdHB1YjJ9IHwgZiAgICAg IHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAg ICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAgICAgICAgICAgICB8IGxvZwog KDEgcm93KQogCiAtLSBmYWlsIC0gcHVibGljYXRpb24gdXNlZCBtb3JlIHRoYW4gb25jZQpAQCAt MzkxLDEwICszOTEsMTAgQEAgRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjMiIGlzIG5vdCBp biBzdWJzY3JpcHRpb24gInJlZ3Jlc3NfdGVzdHN1YiIKIC0tIG9rIC0gZGVsZXRlIHB1YmxpY2F0 aW9ucwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBEUk9QIFBVQkxJQ0FUSU9O IHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwogXGRScysKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQg fCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQg fCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0 c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8 IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAg fCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwg ZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24g cmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQ dWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/ IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9u IGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwg RGVzY3JpcHRpb24gfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0g ICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg ICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAg ICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgICAgICAgICAg ICAgfCBsb2cKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwpA QCAtNDMwLDE5ICs0MzAsMTkgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg Q09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBz dWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8g aW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGlj YXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2Ny aXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50 aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04g IHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBh cmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAg ICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0 c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwg UmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24g fCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IHBhcmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgICAgICAgICAgICAgfCBsb2cKICgx IHJvdykKIAogLS0gd2UgY2FuIGFsdGVyIHN0cmVhbWluZyB3aGVuIHR3b19waGFzZSBlbmFibGVk CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0gdHJ1 ZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJl dGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0 aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg UmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAw MDAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJl ZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxl cyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25v dXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91 dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAg ICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAw MDAwMDAgfCAgICAgICAgICAgICB8IGxvZwogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC00NTIsMTAgKzQ1Miwx MCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMg Y3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNh dGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFi bGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVz aCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBS ZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAK LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAg ICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVj ZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiB8IENvbmZsaWN0IGxvZyBk ZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAg ICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAg ICAgICB8IDAvMDAwMDAwMDAgfCAgICAgICAgICAgICB8IGxvZwogKDEgcm93KQogCiBBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC00 NjgsMTggKzQ2OCwxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05O RUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNj cmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0 aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlv biBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRp b24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24g ZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBE ZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxs ZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEg ICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIK KyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNl cnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRl bnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiB8IENv bmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFy YWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0 ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYg ICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg LTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAgICAgICAgICAgICB8IGxvZwogKDEgcm93 KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoZGlzYWJsZV9vbl9l cnJvciA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAg IHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJp bmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwg T3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBT ZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0 ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNl ciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAg ICAgICAgICAgfCB0ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAg fCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4g ZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2Vp dmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gfCBDb25mbGljdCBsb2cgZGVz dGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAg ICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAg ICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAg ICAgfCAwLzAwMDAwMDAwIHwgICAgICAgICAgICAgfCBsb2cKICgxIHJvdykKIAogQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtNDky LDEwICs0OTIsMTAgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVD VElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3Jp cHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlh dGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24g c2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9u IHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1 cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVz Y3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVs ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAg ICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisg ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFy eSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2 ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50 aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gfCBDb25m bGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAg ICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0x ICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgICAgICAgICAgICAgfCBsb2cKICgxIHJvdykK IAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5P TkUpOwpAQCAtNTA5LDE5ICs1MDksMTkgQEAgTk9USUNFOiAgbWF4X3JldGVudGlvbl9kdXJhdGlv biBpcyBpbmVmZmVjdGl2ZSB3aGVuIHJldGFpbl9kZWFkX3R1cGxlcyBpcyBkaXNhYmwKIFdBUk5J Tkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5U OiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUg cmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUg c3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tp cCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAg ICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAxMDAwIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVz c190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3Jp cHRpb24gfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYg ICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAg ICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAxMDAwICAgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgICAgICAgICAgICAgfCBs b2cKICgxIHJvdykKIAogLS0gb2sKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg U0VUIChtYXhfcmV0ZW50aW9uX2R1cmF0aW9uID0gMCk7CiBcZFJzKwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg cGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8 IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rl c3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9u IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3Zl ciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24g fCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlv biB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAg ICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAgICAgICAgICAgICB8IGxvZwog KDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9u YW1lID0gTk9ORSk7Ci0tIAoyLjQ5LjAKCg== --0000000000002dd2ab06537f74b3 Content-Type: application/octet-stream; name="v46-0005-Documentation-patch.patch" Content-Disposition: attachment; filename="v46-0005-Documentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq0t11ie4 RnJvbSBkNzU1YWU1MzY0MDdkYWQ5MzUxODc0NWY3ZDNlMzBlNjViYWNjMTQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hckBEaWxpcC5sb2NhbD4K RGF0ZTogU3VuLCA1IEFwciAyMDI2IDE3OjAyOjAxICswNTMwClN1YmplY3Q6IFtQQVRDSCB2NDYg NS81XSBEb2N1bWVudGF0aW9uIHBhdGNoCgotLS0KIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAg ICAgICAgICAgICAgICAgIHwgIDIwICsKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAg ICAgICAgICAgIHwgIDEyICsKIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwg ICAgIHwgNjY5ICsrKysrKysrKysrKystLS0tLS0tLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf c3Vic2NyaXB0aW9uLnNnbWwgIHwgIDEzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJz Y3JpcHRpb24uc2dtbCB8ICA1MSArKwogNSBmaWxlcyBjaGFuZ2VkLCA0OTQgaW5zZXJ0aW9ucygr KSwgMjcxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBi L2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA3NDdmOTI5YWVlMy4uYzE2ZTM1ZGRmNTkgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNn bWwKQEAgLTM3NTksNiArMzc1OSwyNiBAQCBSRVZPS0UgQ1JFQVRFIE9OIFNDSEVNQSBwdWJsaWMg RlJPTSBQVUJMSUM7CiAgICA8L3BhcmE+CiAgIDwvc2VjdDI+CiAKKyAgPHNlY3QyIGlkPSJkZGwt c2NoZW1hcy1jb25mbGljdCI+CisgICA8dGl0bGU+VGhlIENvbmZsaWN0IFNjaGVtYTwvdGl0bGU+ CisKKyAgIDxpbmRleHRlcm0gem9uZT0iZGRsLXNjaGVtYXMtY29uZmxpY3QiPgorICAgIDxwcmlt YXJ5PmNvbmZsaWN0PC9wcmltYXJ5PgorICAgIDxzZWNvbmRhcnk+c2NoZW1hPC9zZWNvbmRhcnk+ CisgICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgU2ltaWxhcmx5LCB0aGUgPGxpdGVy YWw+cGdfY29uZmxpY3Q8L2xpdGVyYWw+IHNjaGVtYSAoc29tZXRpbWVzIHJlZmVycmVkIHRvCisg ICAgYXMgdGhlIDxlbXBoYXNpcz5jb25mbGljdCBzY2hlbWE8L2VtcGhhc2lzPikgY29udGFpbnMg c3lzdGVtIG1hbmFnZWQKKyAgICBjb25mbGljdCBsb2cgdGFibGVzIHVzZWQgZm9yIGxvZ2ljYWwg cmVwbGljYXRpb24gY29uZmxpY3QgdHJhY2tpbmcuIFRoZXNlCisgICAgdGFibGVzIGFyZSBjcmVh dGVkIGFuZCBtYWludGFpbmVkIGJ5IHRoZSBzeXN0ZW0gYW5kIGFyZSBub3QgaW50ZW5kZWQgZm9y CisgICAgZGlyZWN0IHVzZXIgbWFuaXB1bGF0aW9uLiBVbmxpa2UgPGxpdGVyYWw+cGdfY2F0YWxv ZzwvbGl0ZXJhbD4sIHRoZQorICAgIDxsaXRlcmFsPnBnX2NhdGFsb2c8L2xpdGVyYWw+IHNjaGVt YSBpcyBub3QgaW1wbGljaXRseSBpbmNsdWRlZCBpbiB0aGUKKyAgICBzZWFyY2ggcGF0aCwgc28g b2JqZWN0cyB3aXRoaW4gaXQgbXVzdCBiZSByZWZlcmVuY2VkIGV4cGxpY2l0bHkgb3IgYnkKKyAg ICBhZGp1c3RpbmcgdGhlIHNlYXJjaCBwYXRoLgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCiAg IDxzZWN0MiBpZD0iZGRsLXNjaGVtYXMtcGF0dGVybnMiPgogICAgPHRpdGxlPlVzYWdlIFBhdHRl cm5zPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgYi9k b2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBiODgxYWU3MTE5OC4uNTdiNjk3MGFkOWYg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9nbG9zc2FyeS5zZ21sCkBAIC01MDYsNiArNTA2LDE4IEBACiAgICA8L2dsb3NzZGVmPgogICA8 L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LWNvbmZsaWN0LXNjaGVt YSI+CisgICA8Z2xvc3N0ZXJtPmNvbmZsaWN0IHNjaGVtYTwvZ2xvc3N0ZXJtPgorICAgPGdsb3Nz ZGVmPgorICAgIDxwYXJhPgorICAgICBUaGUgPGxpdGVyYWw+cGdfY29uZmxpY3Q8L2xpdGVyYWw+ IHNjaGVtYSB0aGF0IGNvbnRhaW5zIHN5c3RlbS1tYW5hZ2VkCisgICAgIGNvbmZsaWN0IGxvZyB0 YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24uIFRoZXNlIHRhYmxlcyBhcmUgY3JlYXRlZAor ICAgICBhbmQgbWFpbnRhaW5lZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBzeXN0ZW0gYW5kIGFyZSBu b3QgaW50ZW5kZWQgZm9yCisgICAgIGRpcmVjdCB1c2VyIG1hbmlwdWxhdGlvbi4gU2VlIDx4cmVm IGxpbmtlbmQ9ImRkbC1zY2hlbWFzLWNvbmZsaWN0Ii8+LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xv c3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4KKwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3NhcnktY29u bmVjdGlvbiI+CiAgICA8Z2xvc3N0ZXJtPkNvbm5lY3Rpb248L2dsb3NzdGVybT4KICAgIDxnbG9z c2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDllNzg2ODQ4N2Rl Li5mYjg1Y2IyNjI5NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0y OTMsNiArMjkzLDIxIEBACiAgICBvcHRpb24gb2YgPGNvbW1hbmQ+Q1JFQVRFIFNVQlNDUklQVElP TjwvY29tbWFuZD4gZm9yIGRldGFpbHMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIDxsaW5r IGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29uZmxpY3RzIj5Db25mbGljdHM8L2xpbms+ IHRoYXQgb2NjdXIKKyAgIGR1cmluZyByZXBsaWNhdGlvbiBhcmUsIGJ5IGRlZmF1bHQsIGxvZ2dl ZCBhcyBwbGFpbiB0ZXh0IGluIHRoZSBzZXJ2ZXIgbG9nLAorICAgd2hpY2ggY2FuIG1ha2UgYXV0 b21hdGVkIG1vbml0b3JpbmcgYW5kIGFuYWx5c2lzIGRpZmZpY3VsdC4gVGhlCisgICA8Y29tbWFu ZD5DUkVBVEUgU1VCU0NSSVBUSU9OPC9jb21tYW5kPiBjb21tYW5kIHByb3ZpZGVzIHRoZQorICAg PGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGlj dC1sb2ctZGVzdGluYXRpb24iPgorICAgPGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u PC9saXRlcmFsPjwvbGluaz4gb3B0aW9uIHRvIHJlY29yZCBkZXRhaWxlZAorICAgY29uZmxpY3Qg aW5mb3JtYXRpb24gaW4gYSBzdHJ1Y3R1cmVkLCBxdWVyeWFibGUgZm9ybWF0LiBXaGVuIHRoaXMg cGFyYW1ldGVyCisgICBpcyBzZXQgdG8gPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9yIDxsaXRl cmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBzeXN0ZW0KKyAgIGF1dG9tYXRpY2FsbHkgbWFuYWdlcyBh IGRlZGljYXRlZCA8Zmlyc3R0ZXJtPmNvbmZsaWN0IGxvZyB0YWJsZTwvZmlyc3R0ZXJtPiwKKyAg IHdoaWNoIGlzIGNyZWF0ZWQgYW4gZHJvcHBlZCBhbG9uZyB3aXRoIHRoZSBzdWJzY3JpcHRpb24u IFRoaXMgc2lnbmlmaWNhbnRseQorICAgaW1wcm92ZXMgcG9zdC1tb3J0ZW0gYW5hbHlzaXMgYW5k IG9wZXJhdGlvbmFsIHZpc2liaWxpdHkgb2YgdGhlIHJlcGxpY2F0aW9uCisgICBzZXR1cC4KKyAg PC9wYXJhPgorCiAgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1zdWJzY3JpcHRpb24t c2xvdCI+CiAgICA8dGl0bGU+TG9naWNhbCBSZXBsaWNhdGlvbiBTbG90IE1hbmFnZW1lbnQ8L3Rp dGxlPgogCkBAIC0yMDA5LDEyMCArMjAyNCwyMjUgQEAgSW5jbHVkZWQgaW4gcHVibGljYXRpb25z OgogICAgb3BlcmF0aW9ucyB3aWxsIHNpbXBseSBiZSBza2lwcGVkLgogICA8L3BhcmE+CiAKLSAg PHBhcmE+Ci0gICBBZGRpdGlvbmFsIGxvZ2dpbmcgaXMgdHJpZ2dlcmVkLCBhbmQgdGhlIGNvbmZs aWN0IHN0YXRpc3RpY3MgYXJlIGNvbGxlY3RlZCAoZGlzcGxheWVkIGluIHRoZQotICAgPGxpbmsg bGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LXN1YnNjcmlwdGlvbi1zdGF0cyI+PHN0cnVjdG5h bWU+cGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHM8L3N0cnVjdG5hbWU+PC9saW5rPiB2aWV3KQot ICAgaW4gdGhlIGZvbGxvd2luZyA8Zmlyc3R0ZXJtPmNvbmZsaWN0PC9maXJzdHRlcm0+IGNhc2Vz OgotICAgPHZhcmlhYmxlbGlzdD4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC1pbnNl cnQtZXhpc3RzIiB4cmVmbGFiZWw9Imluc2VydF9leGlzdHMiPgotICAgICA8dGVybT48bGl0ZXJh bD5pbnNlcnRfZXhpc3RzPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAg PHBhcmE+Ci0gICAgICAgSW5zZXJ0aW5nIGEgcm93IHRoYXQgdmlvbGF0ZXMgYSA8bGl0ZXJhbD5O T1QgREVGRVJSQUJMRTwvbGl0ZXJhbD4KLSAgICAgICB1bmlxdWUgY29uc3RyYWludC4gTm90ZSB0 aGF0IHRvIGxvZyB0aGUgb3JpZ2luIGFuZCBjb21taXQKLSAgICAgICB0aW1lc3RhbXAgZGV0YWls cyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAotICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFj ay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJu YW1lPjwvbGluaz4KLSAgICAgICBzaG91bGQgYmUgZW5hYmxlZCBvbiB0aGUgc3Vic2NyaWJlci4g SW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlCi0gICAgICAgcmFpc2VkIHVudGlsIHRoZSBj b25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0 aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGlj dC11cGRhdGUtb3JpZ2luLWRpZmZlcnMiIHhyZWZsYWJlbD0idXBkYXRlX29yaWdpbl9kaWZmZXJz Ij4KLSAgICAgPHRlcm0+PGxpdGVyYWw+dXBkYXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPjwv dGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgVXBkYXRpbmcgYSBy b3cgdGhhdCB3YXMgcHJldmlvdXNseSBtb2RpZmllZCBieSBhbm90aGVyIG9yaWdpbi4KLSAgICAg ICBOb3RlIHRoYXQgdGhpcyBjb25mbGljdCBjYW4gb25seSBiZSBkZXRlY3RlZCB3aGVuCi0gICAg ICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3RhbXAiPjx2YXJuYW1lPnRy YWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgotICAgICAgIGlzIGVuYWJsZWQg b24gdGhlIHN1YnNjcmliZXIuIEN1cnJlbnRseSwgdGhlIHVwZGF0ZSBpcyBhbHdheXMgYXBwbGll ZAotICAgICAgIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yaWdpbiBvZiB0aGUgbG9jYWwgcm93LgotICAg ICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotICAgIDx2 YXJsaXN0ZW50cnkgaWQ9ImNvbmZsaWN0LXVwZGF0ZS1leGlzdHMiIHhyZWZsYWJlbD0idXBkYXRl X2V4aXN0cyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVwZGF0ZV9leGlzdHM8L2xpdGVyYWw+PC90 ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBUaGUgdXBkYXRlZCB2 YWx1ZSBvZiBhIHJvdyB2aW9sYXRlcyBhIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFs PgotICAgICAgIHVuaXF1ZSBjb25zdHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4g YW5kIGNvbW1pdAotICAgICAgIHRpbWVzdGFtcCBkZXRhaWxzIG9mIHRoZSBjb25mbGljdGluZyBr ZXksCi0gICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3RhbXAiPjx2 YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgotICAgICAgIHNo b3VsZCBiZSBlbmFibGVkIG9uIHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9y IHdpbGwgYmUKLSAgICAgICByYWlzZWQgdW50aWwgdGhlIGNvbmZsaWN0IGlzIHJlc29sdmVkIG1h bnVhbGx5LiBOb3RlIHRoYXQgd2hlbiB1cGRhdGluZyBhCi0gICAgICAgcGFydGl0aW9uZWQgdGFi bGUsIGlmIHRoZSB1cGRhdGVkIHJvdyB2YWx1ZSBzYXRpc2ZpZXMgYW5vdGhlciBwYXJ0aXRpb24K LSAgICAgICBjb25zdHJhaW50IHJlc3VsdGluZyBpbiB0aGUgcm93IGJlaW5nIGluc2VydGVkIGlu dG8gYSBuZXcgcGFydGl0aW9uLCB0aGUKLSAgICAgICA8bGl0ZXJhbD5pbnNlcnRfZXhpc3RzPC9s aXRlcmFsPiBjb25mbGljdCBtYXkgYXJpc2UgaWYgdGhlIG5ldyByb3cKLSAgICAgICB2aW9sYXRl cyBhIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlxdWUgY29uc3RyYWludC4K LSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAg ICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtZGVsZXRlZCIgeHJlZmxhYmVsPSJ1 cGRhdGVfZGVsZXRlZCI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVwZGF0ZV9kZWxldGVkPC9saXRl cmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgVGhlIHR1 cGxlIHRvIGJlIHVwZGF0ZWQgd2FzIGNvbmN1cnJlbnRseSBkZWxldGVkIGJ5IGFub3RoZXIgb3Jp Z2luLiBUaGUKLSAgICAgICB1cGRhdGUgd2lsbCBzaW1wbHkgYmUgc2tpcHBlZCBpbiB0aGlzIHNj ZW5hcmlvLiBOb3RlIHRoYXQgdGhpcyBjb25mbGljdAotICAgICAgIGNhbiBvbmx5IGJlIGRldGVj dGVkIHdoZW4KLSAgICAgICA8bGluayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFt cCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+Ci0gICAg ICAgYW5kIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgt cmV0YWluLWRlYWQtdHVwbGVzIj48bGl0ZXJhbD5yZXRhaW5fZGVhZF90dXBsZXM8L2xpdGVyYWw+ PC9saW5rPgotICAgICAgIGFyZSBlbmFibGVkLiBOb3RlIHRoYXQgaWYgYSB0dXBsZSBjYW5ub3Qg YmUgZm91bmQgZHVlIHRvIHRoZSB0YWJsZSBiZWluZwotICAgICAgIHRydW5jYXRlZCwgb25seSBh IDxsaXRlcmFsPnVwZGF0ZV9taXNzaW5nPC9saXRlcmFsPiBjb25mbGljdCB3aWxsCi0gICAgICAg YXJpc2UuIEFkZGl0aW9uYWxseSwgaWYgdGhlIHR1cGxlIHdhcyBkZWxldGVkIGJ5IHRoZSBzYW1l IG9yaWdpbiwgYW4KLSAgICAgICA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJhbD4gY29u ZmxpY3Qgd2lsbCBhcmlzZS4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8 L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtbWlz c2luZyIgeHJlZmxhYmVsPSJ1cGRhdGVfbWlzc2luZyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVw ZGF0ZV9taXNzaW5nPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBh cmE+Ci0gICAgICAgVGhlIHJvdyB0byBiZSB1cGRhdGVkIHdhcyBub3QgZm91bmQuIFRoZSB1cGRh dGUgd2lsbCBzaW1wbHkgYmUKLSAgICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCi0gICAg ICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0gICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtZGVsZXRlLW9yaWdpbi1kaWZmZXJzIiB4cmVmbGFiZWw9 ImRlbGV0ZV9vcmlnaW5fZGlmZmVycyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPmRlbGV0ZV9vcmln aW5fZGlmZmVyczwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJh PgotICAgICAgIERlbGV0aW5nIGEgcm93IHRoYXQgd2FzIHByZXZpb3VzbHkgbW9kaWZpZWQgYnkg YW5vdGhlciBvcmlnaW4uIE5vdGUgdGhhdAotICAgICAgIHRoaXMgY29uZmxpY3QgY2FuIG9ubHkg YmUgZGV0ZWN0ZWQgd2hlbgotICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQt dGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGlu az4KLSAgICAgICBpcyBlbmFibGVkIG9uIHRoZSBzdWJzY3JpYmVyLiBDdXJyZW50bHksIHRoZSBk ZWxldGUgaXMgYWx3YXlzIGFwcGxpZWQKLSAgICAgICByZWdhcmRsZXNzIG9mIHRoZSBvcmlnaW4g b2YgdGhlIGxvY2FsIHJvdy4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8 L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC1kZWxldGUtbWlz c2luZyIgeHJlZmxhYmVsPSJkZWxldGVfbWlzc2luZyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPmRl bGV0ZV9taXNzaW5nPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBh cmE+Ci0gICAgICAgVGhlIHJvdyB0byBiZSBkZWxldGVkIHdhcyBub3QgZm91bmQuIFRoZSBkZWxl dGUgd2lsbCBzaW1wbHkgYmUKLSAgICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCi0gICAg ICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0gICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtbXVsdGlwbGUtdW5pcXVlLWNvbmZsaWN0cyIgeHJlZmxh YmVsPSJtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIj4KLSAgICAgPHRlcm0+PGxpdGVyYWw+bXVs dGlwbGVfdW5pcXVlX2NvbmZsaWN0czwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4K LSAgICAgIDxwYXJhPgotICAgICAgIEluc2VydGluZyBvciB1cGRhdGluZyBhIHJvdyB2aW9sYXRl cyBtdWx0aXBsZQotICAgICAgIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlx dWUgY29uc3RyYWludHMuIE5vdGUgdGhhdCB0byBsb2cKLSAgICAgICB0aGUgb3JpZ2luIGFuZCBj b21taXQgdGltZXN0YW1wIGRldGFpbHMgb2YgY29uZmxpY3Rpbmcga2V5cywgZW5zdXJlCi0gICAg ICAgdGhhdCA8bGluayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5h bWU+dHJhY2tfY29tbWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+Ci0gICAgICAgaXMgZW5h YmxlZCBvbiB0aGUgc3Vic2NyaWJlci4gSW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlIHJh aXNlZCB1bnRpbAotICAgICAgIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KLSAg ICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAgIDwv dmFyaWFibGVsaXN0PgotICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgb3RoZXIgY29uZmxpY3Qgc2Nl bmFyaW9zLCBzdWNoIGFzIGV4Y2x1c2lvbiBjb25zdHJhaW50Ci0gICAgdmlvbGF0aW9ucy4gQ3Vy cmVudGx5LCB3ZSBkbyBub3QgcHJvdmlkZSBhZGRpdGlvbmFsIGRldGFpbHMgZm9yIHRoZW0gaW4g dGhlCi0gICAgbG9nLgotICA8L3BhcmE+CisgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlv bi1jb25mbGljdC1sb2dnaW5nIj4KKyAgIDx0aXRsZT5Db25mbGljdCBsb2dnaW5nPC90aXRsZT4K KyAgIDxwYXJhPgorICAgIEFkZGl0aW9uYWwgbG9nZ2luZyBpcyB0cmlnZ2VyZWQsIGFuZCB0aGUg Y29uZmxpY3Qgc3RhdGlzdGljcyBhcmUgY29sbGVjdGVkIChkaXNwbGF5ZWQgaW4gdGhlCisgICAg PGxpbmsgbGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LXN1YnNjcmlwdGlvbi1zdGF0cyI+PHN0 cnVjdG5hbWU+cGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHM8L3N0cnVjdG5hbWU+PC9saW5rPiB2 aWV3KQorICAgIGluIHRoZSBmb2xsb3dpbmcgPGZpcnN0dGVybT5jb25mbGljdDwvZmlyc3R0ZXJt PiBjYXNlczoKKyAgICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25m bGljdC1pbnNlcnQtZXhpc3RzIiB4cmVmbGFiZWw9Imluc2VydF9leGlzdHMiPgorICAgICAgPHRl cm0+PGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0 ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEluc2VydGluZyBhIHJvdyB0aGF0IHZpb2xhdGVz IGEgPGxpdGVyYWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+CisgICAgICAgIHVuaXF1ZSBjb25z dHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4gYW5kIGNvbW1pdAorICAgICAgICB0 aW1lc3RhbXAgZGV0YWlscyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAorICAgICAgICA8bGluayBs aW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0 X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIHNob3VsZCBiZSBlbmFibGVkIG9u IHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9yIHdpbGwgYmUKKyAgICAgICAg cmFpc2VkIHVudGlsIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KKyAgICAgICA8 L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtdXBkYXRlLW9yaWdpbi1kaWZmZXJzIiB4cmVmbGFiZWw9 InVwZGF0ZV9vcmlnaW5fZGlmZmVycyI+CisgICAgICA8dGVybT48bGl0ZXJhbD51cGRhdGVfb3Jp Z2luX2RpZmZlcnM8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBVcGRhdGluZyBhIHJvdyB0aGF0IHdhcyBwcmV2aW91c2x5IG1vZGlmaWVk IGJ5IGFub3RoZXIgb3JpZ2luLgorICAgICAgICBOb3RlIHRoYXQgdGhpcyBjb25mbGljdCBjYW4g b25seSBiZSBkZXRlY3RlZCB3aGVuCisgICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1j b21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJuYW1l PjwvbGluaz4KKyAgICAgICAgaXMgZW5hYmxlZCBvbiB0aGUgc3Vic2NyaWJlci4gQ3VycmVudGx5 LCB0aGUgdXBkYXRlIGlzIGFsd2F5cyBhcHBsaWVkCisgICAgICAgIHJlZ2FyZGxlc3Mgb2YgdGhl IG9yaWdpbiBvZiB0aGUgbG9jYWwgcm93LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0 ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGlj dC11cGRhdGUtZXhpc3RzIiB4cmVmbGFiZWw9InVwZGF0ZV9leGlzdHMiPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+dXBkYXRlX2V4aXN0czwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSB1cGRhdGVkIHZhbHVlIG9mIGEgcm93IHZpb2xh dGVzIGEgPGxpdGVyYWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+CisgICAgICAgIHVuaXF1ZSBj b25zdHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4gYW5kIGNvbW1pdAorICAgICAg ICB0aW1lc3RhbXAgZGV0YWlscyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAorICAgICAgICA8bGlu ayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29t bWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIHNob3VsZCBiZSBlbmFibGVk IG9uIHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9yIHdpbGwgYmUKKyAgICAg ICAgcmFpc2VkIHVudGlsIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4gTm90ZSB0 aGF0IHdoZW4gdXBkYXRpbmcgYQorICAgICAgICBwYXJ0aXRpb25lZCB0YWJsZSwgaWYgdGhlIHVw ZGF0ZWQgcm93IHZhbHVlIHNhdGlzZmllcyBhbm90aGVyIHBhcnRpdGlvbgorICAgICAgICBjb25z dHJhaW50IHJlc3VsdGluZyBpbiB0aGUgcm93IGJlaW5nIGluc2VydGVkIGludG8gYSBuZXcgcGFy dGl0aW9uLCB0aGUKKyAgICAgICAgPGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4gY29u ZmxpY3QgbWF5IGFyaXNlIGlmIHRoZSBuZXcgcm93CisgICAgICAgIHZpb2xhdGVzIGEgPGxpdGVy YWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+IHVuaXF1ZSBjb25zdHJhaW50LgorICAgICAgIDwv cGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8dmFy bGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtZGVsZXRlZCIgeHJlZmxhYmVsPSJ1cGRhdGVf ZGVsZXRlZCI+CisgICAgICA8dGVybT48bGl0ZXJhbD51cGRhdGVfZGVsZXRlZDwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSB0dXBs ZSB0byBiZSB1cGRhdGVkIHdhcyBjb25jdXJyZW50bHkgZGVsZXRlZCBieSBhbm90aGVyIG9yaWdp bi4gVGhlCisgICAgICAgIHVwZGF0ZSB3aWxsIHNpbXBseSBiZSBza2lwcGVkIGluIHRoaXMgc2Nl bmFyaW8uIE5vdGUgdGhhdCB0aGlzIGNvbmZsaWN0CisgICAgICAgIGNhbiBvbmx5IGJlIGRldGVj dGVkIHdoZW4KKyAgICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3Rh bXAiPjx2YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgorICAg ICAgICBhbmQgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0 aC1yZXRhaW4tZGVhZC10dXBsZXMiPjxsaXRlcmFsPnJldGFpbl9kZWFkX3R1cGxlczwvbGl0ZXJh bD48L2xpbms+CisgICAgICAgIGFyZSBlbmFibGVkLiBOb3RlIHRoYXQgaWYgYSB0dXBsZSBjYW5u b3QgYmUgZm91bmQgZHVlIHRvIHRoZSB0YWJsZSBiZWluZworICAgICAgICB0cnVuY2F0ZWQsIG9u bHkgYSA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJhbD4gY29uZmxpY3Qgd2lsbAorICAg ICAgICBhcmlzZS4gQWRkaXRpb25hbGx5LCBpZiB0aGUgdHVwbGUgd2FzIGRlbGV0ZWQgYnkgdGhl IHNhbWUgb3JpZ2luLCBhbgorICAgICAgICA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJh bD4gY29uZmxpY3Qgd2lsbCBhcmlzZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVt PgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iY29uZmxpY3Qt dXBkYXRlLW1pc3NpbmciIHhyZWZsYWJlbD0idXBkYXRlX21pc3NpbmciPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+dXBkYXRlX21pc3Npbmc8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgcm93IHRvIGJlIHVwZGF0ZWQgd2FzIG5vdCBm b3VuZC4gVGhlIHVwZGF0ZSB3aWxsIHNpbXBseSBiZQorICAgICAgICBza2lwcGVkIGluIHRoaXMg c2NlbmFyaW8uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImNvbmZsaWN0LWRlbGV0ZS1vcmlnaW4t ZGlmZmVycyIgeHJlZmxhYmVsPSJkZWxldGVfb3JpZ2luX2RpZmZlcnMiPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+ZGVsZXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxs aXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgRGVsZXRpbmcgYSByb3cgdGhhdCB3YXMg cHJldmlvdXNseSBtb2RpZmllZCBieSBhbm90aGVyIG9yaWdpbi4gTm90ZSB0aGF0CisgICAgICAg IHRoaXMgY29uZmxpY3QgY2FuIG9ubHkgYmUgZGV0ZWN0ZWQgd2hlbgorICAgICAgICA8bGluayBs aW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0 X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIGlzIGVuYWJsZWQgb24gdGhlIHN1 YnNjcmliZXIuIEN1cnJlbnRseSwgdGhlIGRlbGV0ZSBpcyBhbHdheXMgYXBwbGllZAorICAgICAg ICByZWdhcmRsZXNzIG9mIHRoZSBvcmlnaW4gb2YgdGhlIGxvY2FsIHJvdy4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iY29uZmxpY3QtZGVsZXRlLW1pc3NpbmciIHhyZWZsYWJlbD0iZGVsZXRlX21p c3NpbmciPgorICAgICAgPHRlcm0+PGxpdGVyYWw+ZGVsZXRlX21pc3Npbmc8L2xpdGVyYWw+PC90 ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgcm93IHRv IGJlIGRlbGV0ZWQgd2FzIG5vdCBmb3VuZC4gVGhlIGRlbGV0ZSB3aWxsIHNpbXBseSBiZQorICAg ICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImNv bmZsaWN0LW11bHRpcGxlLXVuaXF1ZS1jb25mbGljdHMiIHhyZWZsYWJlbD0ibXVsdGlwbGVfdW5p cXVlX2NvbmZsaWN0cyI+CisgICAgICA8dGVybT48bGl0ZXJhbD5tdWx0aXBsZV91bmlxdWVfY29u ZmxpY3RzPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgSW5zZXJ0aW5nIG9yIHVwZGF0aW5nIGEgcm93IHZpb2xhdGVzIG11bHRpcGxlCisg ICAgICAgIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlxdWUgY29uc3RyYWlu dHMuIE5vdGUgdGhhdCB0byBsb2cKKyAgICAgICAgdGhlIG9yaWdpbiBhbmQgY29tbWl0IHRpbWVz dGFtcCBkZXRhaWxzIG9mIGNvbmZsaWN0aW5nIGtleXMsIGVuc3VyZQorICAgICAgICB0aGF0IDxs aW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19j b21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGluaz4KKyAgICAgICAgaXMgZW5hYmxlZCBvbiB0 aGUgc3Vic2NyaWJlci4gSW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlIHJhaXNlZCB1bnRp bAorICAgICAgICB0aGUgY29uZmxpY3QgaXMgcmVzb2x2ZWQgbWFudWFsbHkuCisgICAgICAgPC9w YXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPC92YXJp YWJsZWxpc3Q+CisgICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgb3RoZXIgY29uZmxpY3Qgc2NlbmFy aW9zLCBzdWNoIGFzIGV4Y2x1c2lvbiBjb25zdHJhaW50CisgICAgIHZpb2xhdGlvbnMuIEN1cnJl bnRseSwgd2UgZG8gbm90IHByb3ZpZGUgYWRkaXRpb25hbCBkZXRhaWxzIGZvciB0aGVtIGluIHRo ZQorICAgICBsb2cuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CiAKLSAgPHBhcmE+Ci0gICBUaGUg bG9nIGZvcm1hdCBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMgaXMgYXMgZm9sbG93 czoKKyAgPHNlY3QyIGlkPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNvbmZsaWN0LXRhYmxlLWJhc2Vk LWxvZ2dpbmciPgorICAgPHRpdGxlPlRhYmxlLWJhc2VkIGxvZ2dpbmc8L3RpdGxlPgorICAgPHBh cmE+CisgICAgSWYgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0 aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICAgcGFyYW1ldGVyIGlzIHNldCB0byA8bGl0ZXJh bD50YWJsZTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+YWxsPC9saXRlcmFsPiB0aGVuCisgICAgYSBk ZWRpY2F0ZWQgY29uZmxpY3QgbG9nIHRhYmxlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjcmVhdGVk LiBUaGlzIHRhYmxlIGlzCisgICAgY3JlYXRlZCBpbiB0aGUgPGxpdGVyYWw+cGdfY29uZmxpY3Q8 L2xpdGVyYWw+IG5hbWVzcGFjZS4gVGhlIG5hbWUgb2YgdGhlCisgICAgY29uZmxpY3QgbG9nIHRh YmxlIGlzCisgICAgPGxpdGVyYWw+cGdfY29uZmxpY3RfbG9nX2Zvcl9zdWJpZF8mbHQ7c3ViaWQm Z3Q7PC9saXRlcmFsPi4gVGhlIHByZWRlZmluZWQKKyAgICBzY2hlbWEgb2YgdGhpcyB0YWJsZSBp cyBkZXRhaWxlZCBpbgorICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29u ZmxpY3QtbG9nLXNjaGVtYSIvPi4KKyAgIDwvcGFyYT4KKworICAgPHRhYmxlIGlkPSJsb2dpY2Fs LXJlcGxpY2F0aW9uLWNvbmZsaWN0LWxvZy1zY2hlbWEiPgorICAgIDx0aXRsZT5Db25mbGljdCBM b2cgVGFibGUgU2NoZW1hPC90aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgICA8dGhl YWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5Db2x1bW48L2VudHJ5PgorICAgICAgIDxl bnRyeT5UeXBlPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAg ICAgPC9yb3c+CisgICAgIDwvdGhlYWQ+CisgICAgIDx0Ym9keT4KKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5PjxsaXRlcmFsPnJlbGlkPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5 Pjx0eXBlPm9pZDwvdHlwZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgT0lEIG9mIHRoZSBs b2NhbCB0YWJsZSB3aGVyZSB0aGUgY29uZmxpY3Qgb2NjdXJyZWQuPC9lbnRyeT4KKyAgICAgIDwv cm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+c2NoZW1hbmFtZTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBlPjwvZW50cnk+Cisg ICAgICAgPGVudHJ5PlRoZSBzY2hlbWEgbmFtZSBvZiB0aGUgY29uZmxpY3RpbmcgdGFibGUuPC9l bnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+ cmVsbmFtZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBl PjwvZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSBuYW1lIG9mIHRoZSBjb25mbGljdGluZyB0YWJs ZS48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT48bGl0 ZXJhbD5jb25mbGljdF90eXBlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx0eXBl PnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+VGhlIHR5cGUgb2YgY29uZmxpY3Qg dGhhdCBvY2N1cnJlZCAoZS5nLiwgPGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4pLjwv ZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFs PnJlbW90ZV94aWQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHR5cGU+eGlkPC90 eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSByZW1vdGUgdHJhbnNhY3Rpb24gSUQgdGhh dCBjYXVzZWQgdGhlIGNvbmZsaWN0LjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbW90ZV9jb21taXRfbHNuPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICAgPGVudHJ5Pjx0eXBlPnBnX2xzbjwvdHlwZT48L2VudHJ5PgorICAgICAgIDxl bnRyeT5UaGUgZmluYWwgTFNOIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAg ICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX2Nv bW1pdF90czwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50aW1lc3RhbXB0 ejwvdHlwZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgcmVtb3RlIGNvbW1pdCB0aW1lc3Rh bXAgb2YgdGhlIHJlbW90ZSB0cmFuc2FjdGlvbi48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAg ICA8cm93PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5yZW1vdGVfb3JpZ2luPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICAgPGVudHJ5Pjx0eXBlPnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICA8 ZW50cnk+VGhlIG9yaWdpbiBvZiB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uLjwvZW50cnk+CisgICAg ICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbW90ZV90dXBs ZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT5qc29uPC90eXBlPjwvZW50 cnk+CisgICAgICAgPGVudHJ5PlRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbmNvbWlu ZyByZW1vdGUgcm93IHRoYXQgY2F1c2VkCisgICAgICAgdGhlIGNvbmZsaWN0LjwvZW50cnk+Cisg ICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlcGxpY2Ff aWRlbnRpdHk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHR5cGU+anNvbjwvdHlw ZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUg cmVwbGljYSBpZGVudGl0eS48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+PHR5cGU+anNvbltdPC90eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pgor ICAgICAgICBBbiBhcnJheSBvZiBKU09OIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBzdGF0ZSBv ZiBleGlzdGluZyBsb2NhbAorICAgICAgICByb3cocykgdGhhdCBjYXVzZWQgdGhlIGNvbmZsaWN0 LiBFYWNoIG9iamVjdCBpbmNsdWRlcyB0aGUgbG9jYWwKKyAgICAgICAgdHJhbnNhY3Rpb24gSUQg KDxsaXRlcmFsPnhpZDwvbGl0ZXJhbD4pLCBjb21taXQgdGltZXN0YW1wCisgICAgICAgICg8bGl0 ZXJhbD5jb21taXRfdHM8L2xpdGVyYWw+KSwgb3JpZ2luICg8bGl0ZXJhbD5vcmlnaW48L2xpdGVy YWw+KSwKKyAgICAgICAgY29uZmxpY3Rpbmcga2V5IGRhdGEgKDxsaXRlcmFsPmtleTwvbGl0ZXJh bD4pLCBhbmQgdGhlIGZ1bGwgbG9jYWwgcm93CisgICAgICAgIGltYWdlICg8bGl0ZXJhbD50dXBs ZTwvbGl0ZXJhbD4pLgorICAgICAgIDwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90Ym9k eT4KKyAgICA8L3Rncm91cD4KKyAgIDwvdGFibGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjb25m bGljdGluZyByb3cgZGF0YSwgaW5jbHVkaW5nIHRoZSBpbmNvbWluZyByZW1vdGUgcm93ICg8bGl0 ZXJhbD5yZW1vdGVfdHVwbGU8L2xpdGVyYWw+KQorICAgIGFuZCB0aGUgYXNzb2NpYXRlZCBsb2Nh bCBjb25mbGljdCBkZXRhaWxzICg8bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+KSwg aXMgc3RvcmVkIGluCisgICAgPHR5cGU+SlNPTjwvdHlwZT4gZm9ybWF0cyBmb3IgZmxleGlibGUg cXVlcnlpbmcgYW5kIGFuYWx5c2lzLgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0 MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1maWxlLWJhc2VkLWxvZ2dpbmciPgor ICAgPHRpdGxlPkZpbGUtYmFzZWQgbG9nZ2luZzwvdGl0bGU+CisgICA8cGFyYT4KKyAgICBJZiA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0 LWxvZy1kZXN0aW5hdGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRl cmFsPjwvbGluaz4KKyAgICBpcyBzZXQgdG8gPGxpdGVyYWw+bG9nPC9saXRlcmFsPiBvciA8bGl0 ZXJhbD5hbGw8L2xpdGVyYWw+IHRoZW4gY29uZmxpY3RzCisgICAgYXJlIGxvZ2dlZCB0byB0aGUg c2VydmVyIHVzaW5nIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgogPHN5bm9wc2lzPgogTE9HOiAgY29u ZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gIjxyZXBsYWNlYWJsZT5zY2hlbWFuYW1lPC9yZXBs YWNlYWJsZT4uPHJlcGxhY2VhYmxlPnRhYmxlbmFtZTwvcmVwbGFjZWFibGU+IjogY29uZmxpY3Q9 PHJlcGxhY2VhYmxlPmNvbmZsaWN0X3R5cGU8L3JlcGxhY2VhYmxlPgogREVUQUlMOiAgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBsYWNlYWJs ZT5bOiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsX3ZhbHVlczwvcmVwbGFj ZWFibGU+IFssIC4uLiBdXS4KQEAgLTIxMzUsMTgyICsyMjU1LDE4NSBAQCBERVRBSUw6ICA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsZWRfZXhwbGFuYXRpb248L3JlcGxhY2Vh YmxlPls6IDxyZQogICAgIDxsaXRlcmFsPnJlcGxpY2EgaWRlbnRpdHk8L2xpdGVyYWw+IHsoPHJl cGxhY2VhYmxlPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFsPiwgLi4uPC9vcHRp b25hbD4pPSg8cmVwbGFjZWFibGU+Y29sdW1uX3ZhbHVlPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFs PiwgLi4uPC9vcHRpb25hbD4pIHwgZnVsbCA8b3B0aW9uYWw+KDxyZXBsYWNlYWJsZT5jb2x1bW5f bmFtZTwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD4sIC4uLjwvb3B0aW9uYWw+KT08L29wdGlvbmFs Pig8cmVwbGFjZWFibGU+Y29sdW1uX3ZhbHVlPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFsPiwgLi4u PC9vcHRpb25hbD4pfQogPC9zeW5vcHNpcz4KIAotICAgVGhlIGxvZyBwcm92aWRlcyB0aGUgZm9s bG93aW5nIGluZm9ybWF0aW9uOgotICAgPHZhcmlhYmxlbGlzdD4KLSAgICA8dmFybGlzdGVudHJ5 PgotICAgICA8dGVybT48bGl0ZXJhbD5MT0c8L2xpdGVyYWw+PC90ZXJtPgotICAgICAgPGxpc3Rp dGVtPgorICAgIFRoZSBsb2cgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKKyAg ICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVy YWw+TE9HPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxpdGVt aXplZGxpc3Q+CisgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgPHJlcGxhY2VhYmxlPnNjaGVtYW5hbWU8L3JlcGxhY2VhYmxlPi48cmVwbGFjZWFibGU+dGFi bGVuYW1lPC9yZXBsYWNlYWJsZT4KKyAgICAgICAgICBpZGVudGlmaWVzIHRoZSBsb2NhbCByZWxh dGlvbiBpbnZvbHZlZCBpbiB0aGUgY29uZmxpY3QuCisgICAgICAgICAgPC9wYXJhPgorICAgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICA8cGFyYT4KKyAg ICAgICAgICA8cmVwbGFjZWFibGU+Y29uZmxpY3RfdHlwZTwvcmVwbGFjZWFibGU+IGlzIHRoZSB0 eXBlIG9mIGNvbmZsaWN0IHRoYXQgb2NjdXJyZWQKKyAgICAgICAgICAoZS5nLiwgPGxpdGVyYWw+ aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4sIDxsaXRlcmFsPnVwZGF0ZV9leGlzdHM8L2xpdGVyYWw+ KS4KKyAgICAgICAgICA8L3BhcmE+CisgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICA8L2l0 ZW1pemVkbGlzdD4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVyYWw+REVUQUlMPC9saXRlcmFs PjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAg ICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+Ci0gICAgICAgICA8cmVwbGFjZWFibGU+c2No ZW1hbmFtZTwvcmVwbGFjZWFibGU+LjxyZXBsYWNlYWJsZT50YWJsZW5hbWU8L3JlcGxhY2VhYmxl PgotICAgICAgICAgaWRlbnRpZmllcyB0aGUgbG9jYWwgcmVsYXRpb24gaW52b2x2ZWQgaW4gdGhl IGNvbmZsaWN0LgorICAgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRh aWxlZF9leHBsYW5hdGlvbjwvcmVwbGFjZWFibGU+IGluY2x1ZGVzCisgICAgICAgICAgdGhlIG9y aWdpbiwgdHJhbnNhY3Rpb24gSUQsIGFuZCBjb21taXQgdGltZXN0YW1wIG9mIHRoZSB0cmFuc2Fj dGlvbiB0aGF0CisgICAgICAgICAgbW9kaWZpZWQgdGhlIGxvY2FsIHJvdywgaWYgYXZhaWxhYmxl LgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICA8bGlzdGl0 ZW0+CiAgICAgICAgICA8cGFyYT4KLSAgICAgICAgIDxyZXBsYWNlYWJsZT5jb25mbGljdF90eXBl PC9yZXBsYWNlYWJsZT4gaXMgdGhlIHR5cGUgb2YgY29uZmxpY3QgdGhhdCBvY2N1cnJlZAotICAg ICAgICAgKGUuZy4sIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51 cGRhdGVfZXhpc3RzPC9saXRlcmFsPikuCisgICAgICAgICAgVGhlIDxsaXRlcmFsPmtleTwvbGl0 ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUga2V5IHZhbHVlcyBvZiB0aGUgbG9jYWwKKyAgICAg ICAgICByb3cgdGhhdCB2aW9sYXRlZCBhIHVuaXF1ZSBjb25zdHJhaW50IGZvcgorICAgICAgICAg IDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51cGRhdGVfZXhpc3Rz PC9saXRlcmFsPiBvcgorICAgICAgICAgIDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGlj dHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0 aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhl IDxsaXRlcmFsPmxvY2FsIHJvdzwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUgbG9jYWwg cm93IGlmIGl0cworICAgICAgICAgIG9yaWdpbiBkaWZmZXJzIGZyb20gdGhlIHJlbW90ZSByb3cg Zm9yCisgICAgICAgICAgPGxpdGVyYWw+dXBkYXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPiBv ciA8bGl0ZXJhbD5kZWxldGVfb3JpZ2luX2RpZmZlcnM8L2xpdGVyYWw+CisgICAgICAgICAgY29u ZmxpY3RzLCBvciBpZiB0aGUga2V5IHZhbHVlIGNvbmZsaWN0cyB3aXRoIHRoZSByZW1vdGUgcm93 IGZvcgorICAgICAgICAgIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJh bD51cGRhdGVfZXhpc3RzPC9saXRlcmFsPiBvcgorICAgICAgICAgIDxsaXRlcmFsPm11bHRpcGxl X3VuaXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4KKyAgICAgICAgIDwvcGFyYT4K KyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgVGhlIDxsaXRlcmFsPnJlbW90ZSByb3c8L2xpdGVyYWw+IHNlY3Rpb24gaW5j bHVkZXMgdGhlIG5ldyByb3cgZnJvbQorICAgICAgICAgIHRoZSByZW1vdGUgaW5zZXJ0IG9yIHVw ZGF0ZSBvcGVyYXRpb24gdGhhdCBjYXVzZWQgdGhlIGNvbmZsaWN0LiBOb3RlIHRoYXQKKyAgICAg ICAgICBmb3IgYW4gdXBkYXRlIG9wZXJhdGlvbiwgdGhlIGNvbHVtbiB2YWx1ZSBvZiB0aGUgbmV3 IHJvdyB3aWxsIGJlIG51bGwKKyAgICAgICAgICBpZiB0aGUgdmFsdWUgaXMgdW5jaGFuZ2VkIGFu ZCB0b2FzdGVkLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgPGxpdGVyYWw+cmVw bGljYSBpZGVudGl0eTwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUgcmVwbGljYQorICAg ICAgICAgIGlkZW50aXR5IGtleSB2YWx1ZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc2VhcmNoIGZvciB0 aGUgZXhpc3RpbmcgbG9jYWwKKyAgICAgICAgICByb3cgdG8gYmUgdXBkYXRlZCBvciBkZWxldGVk LiBUaGlzIG1heSBpbmNsdWRlIHRoZSBmdWxsIHJvdyB2YWx1ZQorICAgICAgICAgIGlmIHRoZSBs b2NhbCByZWxhdGlvbiBpcyBtYXJrZWQgd2l0aAorICAgICAgICAgIDxsaW5rIGxpbmtlbmQ9InNx bC1hbHRlcnRhYmxlLXJlcGxpY2EtaWRlbnRpdHktZnVsbCI+PGxpdGVyYWw+UkVQTElDQSBJREVO VElUWSBGVUxMPC9saXRlcmFsPjwvbGluaz4uCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwv bGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAg IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IGlzIHRoZSBjb2x1bW4gbmFtZS4KKyAgICAgICAgICBGb3IgPGxpdGVyYWw+bG9jYWwgcm93PC9s aXRlcmFsPiwgPGxpdGVyYWw+cmVtb3RlIHJvdzwvbGl0ZXJhbD4sIGFuZAorICAgICAgICAgIDxs aXRlcmFsPnJlcGxpY2EgaWRlbnRpdHkgZnVsbDwvbGl0ZXJhbD4gY2FzZXMsIGNvbHVtbiBuYW1l cyBhcmUKKyAgICAgICAgICBsb2dnZWQgb25seSBpZiB0aGUgdXNlciBsYWNrcyB0aGUgcHJpdmls ZWdlIHRvIGFjY2VzcyBhbGwgY29sdW1ucyBvZgorICAgICAgICAgIHRoZSB0YWJsZS4gSWYgY29s dW1uIG5hbWVzIGFyZSBwcmVzZW50LCB0aGV5IGFwcGVhciBpbiB0aGUgc2FtZSBvcmRlcgorICAg ICAgICAgIGFzIHRoZSBjb3JyZXNwb25kaW5nIGNvbHVtbiB2YWx1ZXMuCisgICAgICAgICA8L3Bh cmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxw YXJhPgorICAgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fdmFs dWU8L3JlcGxhY2VhYmxlPiBpcyB0aGUgY29sdW1uIHZhbHVlLgorICAgICAgICAgIFRoZSBsYXJn ZSBjb2x1bW4gdmFsdWVzIGFyZSB0cnVuY2F0ZWQgdG8gNjQgYnl0ZXMuCisgICAgICAgICA8L3Bh cmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxw YXJhPgorICAgICAgICAgIE5vdGUgdGhhdCBpbiBjYXNlIG9mIDxsaXRlcmFsPm11bHRpcGxlX3Vu aXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0LAorICAgICAgICAgIG11bHRpcGxlIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRhaWxlZF9leHBsYW5hdGlvbjwvcmVwbGFj ZWFibGU+CisgICAgICAgICAgYW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRh aWxfdmFsdWVzPC9yZXBsYWNlYWJsZT4gbGluZXMKKyAgICAgICAgICB3aWxsIGJlIGdlbmVyYXRl ZCwgZWFjaCBkZXRhaWxpbmcgdGhlIGNvbmZsaWN0IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQKKyAg ICAgICAgICB3aXRoIGRpc3RpbmN0IHVuaXF1ZSBjb25zdHJhaW50cy4KICAgICAgICAgIDwvcGFy YT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L2l0ZW1pemVkbGlzdD4KICAgICAgIDwv bGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAg ICA8dGVybT48bGl0ZXJhbD5ERVRBSUw8L2xpdGVyYWw+PC90ZXJtPgotICAgICAgPGxpc3RpdGVt PgotICAgICAgPGl0ZW1pemVkbGlzdD4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxwYXJh PgotICAgICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxh bmF0aW9uPC9yZXBsYWNlYWJsZT4gaW5jbHVkZXMKLSAgICAgICAgIHRoZSBvcmlnaW4sIHRyYW5z YWN0aW9uIElELCBhbmQgY29tbWl0IHRpbWVzdGFtcCBvZiB0aGUgdHJhbnNhY3Rpb24gdGhhdAot ICAgICAgICAgbW9kaWZpZWQgdGhlIGxvY2FsIHJvdywgaWYgYXZhaWxhYmxlLgotICAgICAgICA8 L3BhcmE+Ci0gICAgICAgPC9saXN0aXRlbT4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxw YXJhPgotICAgICAgICAgVGhlIDxsaXRlcmFsPmtleTwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRl cyB0aGUga2V5IHZhbHVlcyBvZiB0aGUgbG9jYWwKLSAgICAgICAgIHJvdyB0aGF0IHZpb2xhdGVk IGEgdW5pcXVlIGNvbnN0cmFpbnQgZm9yCi0gICAgICAgICA8bGl0ZXJhbD5pbnNlcnRfZXhpc3Rz PC9saXRlcmFsPiwgPGxpdGVyYWw+dXBkYXRlX2V4aXN0czwvbGl0ZXJhbD4gb3IKLSAgICAgICAg IDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4K LSAgICAgICAgPC9wYXJhPgotICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgot ICAgICAgICA8cGFyYT4KLSAgICAgICAgIFRoZSA8bGl0ZXJhbD5sb2NhbCByb3c8L2xpdGVyYWw+ IHNlY3Rpb24gaW5jbHVkZXMgdGhlIGxvY2FsIHJvdyBpZiBpdHMKLSAgICAgICAgIG9yaWdpbiBk aWZmZXJzIGZyb20gdGhlIHJlbW90ZSByb3cgZm9yCi0gICAgICAgICA8bGl0ZXJhbD51cGRhdGVf b3JpZ2luX2RpZmZlcnM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmRlbGV0ZV9vcmlnaW5fZGlmZmVy czwvbGl0ZXJhbD4KLSAgICAgICAgIGNvbmZsaWN0cywgb3IgaWYgdGhlIGtleSB2YWx1ZSBjb25m bGljdHMgd2l0aCB0aGUgcmVtb3RlIHJvdyBmb3IKLSAgICAgICAgIDxsaXRlcmFsPmluc2VydF9l eGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51cGRhdGVfZXhpc3RzPC9saXRlcmFsPiBvcgotICAg ICAgICAgPGxpdGVyYWw+bXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0czwvbGl0ZXJhbD4gY29uZmxp Y3RzLgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgPC9saXN0aXRlbT4KLSAgICAgICA8bGlzdGl0 ZW0+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgVGhlIDxsaXRlcmFsPnJlbW90ZSByb3c8L2xp dGVyYWw+IHNlY3Rpb24gaW5jbHVkZXMgdGhlIG5ldyByb3cgZnJvbQotICAgICAgICAgdGhlIHJl bW90ZSBpbnNlcnQgb3IgdXBkYXRlIG9wZXJhdGlvbiB0aGF0IGNhdXNlZCB0aGUgY29uZmxpY3Qu IE5vdGUgdGhhdAotICAgICAgICAgZm9yIGFuIHVwZGF0ZSBvcGVyYXRpb24sIHRoZSBjb2x1bW4g dmFsdWUgb2YgdGhlIG5ldyByb3cgd2lsbCBiZSBudWxsCi0gICAgICAgICBpZiB0aGUgdmFsdWUg aXMgdW5jaGFuZ2VkIGFuZCB0b2FzdGVkLgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgPC9saXN0 aXRlbT4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgVGhlIDxs aXRlcmFsPnJlcGxpY2EgaWRlbnRpdHk8L2xpdGVyYWw+IHNlY3Rpb24gaW5jbHVkZXMgdGhlIHJl cGxpY2EKLSAgICAgICAgIGlkZW50aXR5IGtleSB2YWx1ZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc2Vh cmNoIGZvciB0aGUgZXhpc3RpbmcgbG9jYWwKLSAgICAgICAgIHJvdyB0byBiZSB1cGRhdGVkIG9y IGRlbGV0ZWQuIFRoaXMgbWF5IGluY2x1ZGUgdGhlIGZ1bGwgcm93IHZhbHVlCi0gICAgICAgICBp ZiB0aGUgbG9jYWwgcmVsYXRpb24gaXMgbWFya2VkIHdpdGgKLSAgICAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1hbHRlcnRhYmxlLXJlcGxpY2EtaWRlbnRpdHktZnVsbCI+PGxpdGVyYWw+UkVQTElD QSBJREVOVElUWSBGVUxMPC9saXRlcmFsPjwvbGluaz4uCi0gICAgICAgIDwvcGFyYT4KLSAgICAg ICA8L2xpc3RpdGVtPgotICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgPHBhcmE+Ci0gICAgICAg ICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBpcyB0aGUgY29sdW1uIG5hbWUuCi0gICAgICAgICBGb3IgPGxpdGVyYWw+bG9jYWwgcm93PC9s aXRlcmFsPiwgPGxpdGVyYWw+cmVtb3RlIHJvdzwvbGl0ZXJhbD4sIGFuZAotICAgICAgICAgPGxp dGVyYWw+cmVwbGljYSBpZGVudGl0eSBmdWxsPC9saXRlcmFsPiBjYXNlcywgY29sdW1uIG5hbWVz IGFyZQotICAgICAgICAgbG9nZ2VkIG9ubHkgaWYgdGhlIHVzZXIgbGFja3MgdGhlIHByaXZpbGVn ZSB0byBhY2Nlc3MgYWxsIGNvbHVtbnMgb2YKLSAgICAgICAgIHRoZSB0YWJsZS4gSWYgY29sdW1u IG5hbWVzIGFyZSBwcmVzZW50LCB0aGV5IGFwcGVhciBpbiB0aGUgc2FtZSBvcmRlcgotICAgICAg ICAgYXMgdGhlIGNvcnJlc3BvbmRpbmcgY29sdW1uIHZhbHVlcy4KLSAgICAgICAgPC9wYXJhPgot ICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgotICAgICAgICA8cGFyYT4KLSAg ICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fdmFsdWU8L3JlcGxh Y2VhYmxlPiBpcyB0aGUgY29sdW1uIHZhbHVlLgotICAgICAgICAgVGhlIGxhcmdlIGNvbHVtbiB2 YWx1ZXMgYXJlIHRydW5jYXRlZCB0byA2NCBieXRlcy4KLSAgICAgICAgPC9wYXJhPgotICAgICAg IDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgotICAgICAgICA8cGFyYT4KLSAgICAgICAg IE5vdGUgdGhhdCBpbiBjYXNlIG9mIDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHM8 L2xpdGVyYWw+IGNvbmZsaWN0LAotICAgICAgICAgbXVsdGlwbGUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBsYWNlYWJsZT4KLSAgICAgICAg IGFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsX3ZhbHVlczwvcmVwbGFj ZWFibGU+IGxpbmVzCi0gICAgICAgICB3aWxsIGJlIGdlbmVyYXRlZCwgZWFjaCBkZXRhaWxpbmcg dGhlIGNvbmZsaWN0IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQKLSAgICAgICAgIHdpdGggZGlzdGlu Y3QgdW5pcXVlCi0gICAgICAgICBjb25zdHJhaW50cy4KLSAgICAgICAgPC9wYXJhPgotICAgICAg IDwvbGlzdGl0ZW0+Ci0gICAgICA8L2l0ZW1pemVkbGlzdD4KLSAgICAgPC9saXN0aXRlbT4KLSAg ICA8L3Zhcmxpc3RlbnRyeT4KLSAgIDwvdmFyaWFibGVsaXN0PgotICA8L3BhcmE+CisgICAgIDwv dmFybGlzdGVudHJ5PgorICAgIDwvdmFyaWFibGVsaXN0PgorICAgPC9wYXJhPgorICA8L3NlY3Qy PgogCi0gIDxwYXJhPgotICAgTG9naWNhbCByZXBsaWNhdGlvbiBvcGVyYXRpb25zIGFyZSBwZXJm b3JtZWQgd2l0aCB0aGUgcHJpdmlsZWdlcyBvZiB0aGUgcm9sZQotICAgd2hpY2ggb3ducyB0aGUg c3Vic2NyaXB0aW9uLiAgUGVybWlzc2lvbnMgZmFpbHVyZXMgb24gdGFyZ2V0IHRhYmxlcyB3aWxs Ci0gICBjYXVzZSByZXBsaWNhdGlvbiBjb25mbGljdHMsIGFzIHdpbGwgZW5hYmxlZAotICAgPGxp bmsgbGlua2VuZD0iZGRsLXJvd3NlY3VyaXR5Ij5yb3ctbGV2ZWwgc2VjdXJpdHk8L2xpbms+IG9u IHRhcmdldCB0YWJsZXMKLSAgIHRoYXQgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBpcyBzdWJqZWN0 IHRvLCB3aXRob3V0IHJlZ2FyZCB0byB3aGV0aGVyIGFueQotICAgcG9saWN5IHdvdWxkIG9yZGlu YXJpbHkgcmVqZWN0IHRoZSA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+LAotICAgPGNvbW1hbmQ+ VVBEQVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcgotICAgPGNvbW1h bmQ+VFJVTkNBVEU8L2NvbW1hbmQ+IHdoaWNoIGlzIGJlaW5nIHJlcGxpY2F0ZWQuICBUaGlzIHJl c3RyaWN0aW9uIG9uCi0gICByb3ctbGV2ZWwgc2VjdXJpdHkgbWF5IGJlIGxpZnRlZCBpbiBhIGZ1 dHVyZSB2ZXJzaW9uIG9mCi0gICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ LgotICA8L3BhcmE+CisgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1u b3RlcyI+CisgICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorICAgPHBhcmE+CisgICAgTG9naWNhbCBy ZXBsaWNhdGlvbiBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQgd2l0aCB0aGUgcHJpdmlsZWdlcyBv ZiB0aGUgcm9sZQorICAgIHdoaWNoIG93bnMgdGhlIHN1YnNjcmlwdGlvbi4gIFBlcm1pc3Npb25z IGZhaWx1cmVzIG9uIHRhcmdldCB0YWJsZXMgd2lsbAorICAgIGNhdXNlIHJlcGxpY2F0aW9uIGNv bmZsaWN0cywgYXMgd2lsbCBlbmFibGVkCisgICAgPGxpbmsgbGlua2VuZD0iZGRsLXJvd3NlY3Vy aXR5Ij5yb3ctbGV2ZWwgc2VjdXJpdHk8L2xpbms+IG9uIHRhcmdldCB0YWJsZXMKKyAgICB0aGF0 IHRoZSBzdWJzY3JpcHRpb24gb3duZXIgaXMgc3ViamVjdCB0bywgd2l0aG91dCByZWdhcmQgdG8g d2hldGhlciBhbnkKKyAgICBwb2xpY3kgd291bGQgb3JkaW5hcmlseSByZWplY3QgdGhlIDxjb21t YW5kPklOU0VSVDwvY29tbWFuZD4sCisgICAgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwgPGNv bW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcgorICAgIDxjb21tYW5kPlRSVU5DQVRFPC9jb21tYW5k PiB3aGljaCBpcyBiZWluZyByZXBsaWNhdGVkLiAgVGhpcyByZXN0cmljdGlvbiBvbgorICAgIHJv dy1sZXZlbCBzZWN1cml0eSBtYXkgYmUgbGlmdGVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YKKyAg ICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LgorICAgPC9wYXJhPgogCi0g IDxwYXJhPgotICAgQSBjb25mbGljdCB0aGF0IHByb2R1Y2VzIGFuIGVycm9yIHdpbGwgc3RvcCB0 aGUgcmVwbGljYXRpb247IGl0IG11c3QgYmUKLSAgIHJlc29sdmVkIG1hbnVhbGx5IGJ5IHRoZSB1 c2VyLiAgRGV0YWlscyBhYm91dCB0aGUgY29uZmxpY3QgY2FuIGJlIGZvdW5kIGluCi0gICB0aGUg c3Vic2NyaWJlcidzIHNlcnZlciBsb2cuCi0gIDwvcGFyYT4KKyAgIDxwYXJhPgorICAgIEEgY29u ZmxpY3QgdGhhdCBwcm9kdWNlcyBhbiBlcnJvciB3aWxsIHN0b3AgdGhlIHJlcGxpY2F0aW9uOyBp dCBtdXN0IGJlCisgICAgcmVzb2x2ZWQgbWFudWFsbHkgYnkgdGhlIHVzZXIuICBEZXRhaWxzIGFi b3V0IHRoZSBjb25mbGljdCBjYW4gYmUgZm91bmQgaW4KKyAgICB0aGUgc3Vic2NyaWJlcidzIHNl cnZlciBsb2cuCisgICA8L3BhcmE+CiAKLSAgPHBhcmE+Ci0gICBUaGUgcmVzb2x1dGlvbiBjYW4g YmUgZG9uZSBlaXRoZXIgYnkgY2hhbmdpbmcgZGF0YSBvciBwZXJtaXNzaW9ucyBvbiB0aGUgc3Vi c2NyaWJlciBzbwotICAgdGhhdCBpdCBkb2VzIG5vdCBjb25mbGljdCB3aXRoIHRoZSBpbmNvbWlu ZyBjaGFuZ2Ugb3IgYnkgc2tpcHBpbmcgdGhlCi0gICB0cmFuc2FjdGlvbiB0aGF0IGNvbmZsaWN0 cyB3aXRoIHRoZSBleGlzdGluZyBkYXRhLiAgV2hlbiBhIGNvbmZsaWN0IHByb2R1Y2VzCi0gICBh biBlcnJvciwgdGhlIHJlcGxpY2F0aW9uIHdvbid0IHByb2NlZWQsIGFuZCB0aGUgbG9naWNhbCBy ZXBsaWNhdGlvbiB3b3JrZXIgd2lsbAotICAgZW1pdCB0aGUgZm9sbG93aW5nIGtpbmQgb2YgbWVz c2FnZSB0byB0aGUgc3Vic2NyaWJlcidzIHNlcnZlciBsb2c6CisgICA8cGFyYT4KKyAgICBUaGUg cmVzb2x1dGlvbiBjYW4gYmUgZG9uZSBlaXRoZXIgYnkgY2hhbmdpbmcgZGF0YSBvciBwZXJtaXNz aW9ucyBvbiB0aGUgc3Vic2NyaWJlciBzbworICAgIHRoYXQgaXQgZG9lcyBub3QgY29uZmxpY3Qg d2l0aCB0aGUgaW5jb21pbmcgY2hhbmdlIG9yIGJ5IHNraXBwaW5nIHRoZQorICAgIHRyYW5zYWN0 aW9uIHRoYXQgY29uZmxpY3RzIHdpdGggdGhlIGV4aXN0aW5nIGRhdGEuICBXaGVuIGEgY29uZmxp Y3QgcHJvZHVjZXMKKyAgICBhbiBlcnJvciwgdGhlIHJlcGxpY2F0aW9uIHdvbid0IHByb2NlZWQs IGFuZCB0aGUgbG9naWNhbCByZXBsaWNhdGlvbiB3b3JrZXIgd2lsbAorICAgIGVtaXQgdGhlIGZv bGxvd2luZyBraW5kIG9mIG1lc3NhZ2UgdG8gdGhlIHN1YnNjcmliZXIncyBzZXJ2ZXIgbG9nOgog PHNjcmVlbj4KIEVSUk9SOiAgY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1YmxpYy50 ZXN0IjogY29uZmxpY3Q9aW5zZXJ0X2V4aXN0cwogREVUQUlMOiAgQ291bGQgbm90IGFwcGx5IHJl bW90ZSBjaGFuZ2U6IHJlbW90ZSByb3cgKDEsICdyZW1vdGUnKS4KIEtleSBhbHJlYWR5IGV4aXN0 cyBpbiB1bmlxdWUgaW5kZXggInRlc3RfcGtleSIsIG1vZGlmaWVkIGxvY2FsbHkgaW4gdHJhbnNh Y3Rpb24gODAwIGF0IDIwMjYtMDEtMTYgMTg6MTU6MjUuNjUyNzU5KzA5OiBrZXkgKGMpPSgxKSwg bG9jYWwgcm93ICgxLCAnbG9jYWwnKS4KIENPTlRFWFQ6ICBwcm9jZXNzaW5nIHJlbW90ZSBkYXRh IGZvciByZXBsaWNhdGlvbiBvcmlnaW4gInBnXzE2Mzk1IiBkdXJpbmcgIklOU0VSVCIgZm9yIHJl cGxpY2F0aW9uIHRhcmdldCByZWxhdGlvbiAicHVibGljLnRlc3QiIGluIHRyYW5zYWN0aW9uIDcy NSBmaW5pc2hlZCBhdCAwLzAxNEMwMzc4CiA8L3NjcmVlbj4KLSAgIFRoZSBMU04gb2YgdGhlIHRy YW5zYWN0aW9uIHRoYXQgY29udGFpbnMgdGhlIGNoYW5nZSB2aW9sYXRpbmcgdGhlIGNvbnN0cmFp bnQgYW5kCi0gICB0aGUgcmVwbGljYXRpb24gb3JpZ2luIG5hbWUgY2FuIGJlIGZvdW5kIGZyb20g dGhlIHNlcnZlciBsb2cgKExTTiAwLzAxNEMwMzc4IGFuZAotICAgcmVwbGljYXRpb24gb3JpZ2lu IDxsaXRlcmFsPnBnXzE2Mzk1PC9saXRlcmFsPiBpbiB0aGUgYWJvdmUgY2FzZSkuICBUaGUKLSAg IHRyYW5zYWN0aW9uIHRoYXQgcHJvZHVjZWQgdGhlIGNvbmZsaWN0IGNhbiBiZSBza2lwcGVkIGJ5 IHVzaW5nCi0gICA8bGluayBsaW5rZW5kPSJzcWwtYWx0ZXJzdWJzY3JpcHRpb24tcGFyYW1zLXNr aXAiPjxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4gU0tJUDwvY29tbWFuZD48L2xpbms+ Ci0gICB3aXRoIHRoZSBmaW5pc2ggTFNOCi0gICAoaS5lLiwgTFNOIDAvMDE0QzAzNzgpLiAgVGhl IGZpbmlzaCBMU04gY291bGQgYmUgYW4gTFNOIGF0IHdoaWNoIHRoZSB0cmFuc2FjdGlvbgotICAg aXMgY29tbWl0dGVkIG9yIHByZXBhcmVkIG9uIHRoZSBwdWJsaXNoZXIuICBBbHRlcm5hdGl2ZWx5 LCB0aGUgdHJhbnNhY3Rpb24gY2FuCi0gICBhbHNvIGJlIHNraXBwZWQgYnkgY2FsbGluZyB0aGUg PGxpbmsgbGlua2VuZD0icGctcmVwbGljYXRpb24tb3JpZ2luLWFkdmFuY2UiPgotICAgPGZ1bmN0 aW9uPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9hZHZhbmNlKCk8L2Z1bmN0aW9uPjwvbGluaz4gZnVu Y3Rpb24uCi0gICBCZWZvcmUgdXNpbmcgdGhpcyBmdW5jdGlvbiwgdGhlIHN1YnNjcmlwdGlvbiBu ZWVkcyB0byBiZSBkaXNhYmxlZCB0ZW1wb3JhcmlseQotICAgZWl0aGVyIGJ5IDxsaW5rIGxpbmtl bmQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbi1wYXJhbXMtZGlzYWJsZSI+Ci0gICA8Y29tbWFuZD5B TFRFUiBTVUJTQ1JJUFRJT04gLi4uIERJU0FCTEU8L2NvbW1hbmQ+PC9saW5rPiBvciwgdGhlCi0g ICBzdWJzY3JpcHRpb24gY2FuIGJlIHVzZWQgd2l0aCB0aGUKLSAgIDxsaW5rIGxpbmtlbmQ9InNx bC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZGlzYWJsZS1vbi1lcnJvciI+PGxpdGVy YWw+ZGlzYWJsZV9vbl9lcnJvcjwvbGl0ZXJhbD48L2xpbms+Ci0gICBvcHRpb24uIFRoZW4sIHlv dSBjYW4gdXNlIDxmdW5jdGlvbj5wZ19yZXBsaWNhdGlvbl9vcmlnaW5fYWR2YW5jZSgpPC9mdW5j dGlvbj4KLSAgIGZ1bmN0aW9uIHdpdGggdGhlIDxwYXJhbWV0ZXI+bm9kZV9uYW1lPC9wYXJhbWV0 ZXI+IChpLmUuLCA8bGl0ZXJhbD5wZ18xNjM5NTwvbGl0ZXJhbD4pCi0gICBhbmQgdGhlIG5leHQg TFNOIG9mIHRoZSBmaW5pc2ggTFNOIChpLmUuLCAwLzAxNEMwMzc5KS4gIFRoZSBjdXJyZW50IHBv c2l0aW9uIG9mCi0gICBvcmlnaW5zIGNhbiBiZSBzZWVuIGluIHRoZSA8bGluayBsaW5rZW5kPSJ2 aWV3LXBnLXJlcGxpY2F0aW9uLW9yaWdpbi1zdGF0dXMiPgotICAgPHN0cnVjdG5hbWU+cGdfcmVw bGljYXRpb25fb3JpZ2luX3N0YXR1czwvc3RydWN0bmFtZT48L2xpbms+IHN5c3RlbSB2aWV3Lgot ICAgUGxlYXNlIG5vdGUgdGhhdCBza2lwcGluZyB0aGUgd2hvbGUgdHJhbnNhY3Rpb24gaW5jbHVk ZXMgc2tpcHBpbmcgY2hhbmdlcyB0aGF0Ci0gICBtaWdodCBub3QgdmlvbGF0ZSBhbnkgY29uc3Ry YWludC4gIFRoaXMgY2FuIGVhc2lseSBtYWtlIHRoZSBzdWJzY3JpYmVyCi0gICBpbmNvbnNpc3Rl bnQuCi0gICBUaGUgYWRkaXRpb25hbCBkZXRhaWxzIHJlZ2FyZGluZyBjb25mbGljdGluZyByb3dz LCBzdWNoIGFzIHRoZWlyIG9yaWdpbiBhbmQKLSAgIGNvbW1pdCB0aW1lc3RhbXAgY2FuIGJlIHNl ZW4gaW4gdGhlIDxsaXRlcmFsPkRFVEFJTDwvbGl0ZXJhbD4gbGluZSBvZiB0aGUKLSAgIGxvZy4g QnV0IG5vdGUgdGhhdCB0aGlzIGluZm9ybWF0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4KLSAg IDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFj a19jb21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGluaz4KLSAgIGlzIGVuYWJsZWQgb24gdGhl IHN1YnNjcmliZXIuIFVzZXJzIGNhbiB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBkZWNpZGUKLSAg IHdoZXRoZXIgdG8gcmV0YWluIHRoZSBsb2NhbCBjaGFuZ2Ugb3IgYWRvcHQgdGhlIHJlbW90ZSBh bHRlcmF0aW9uLiBGb3IKLSAgIGluc3RhbmNlLCB0aGUgPGxpdGVyYWw+REVUQUlMPC9saXRlcmFs PiBsaW5lIGluIHRoZSBhYm92ZSBsb2cgaW5kaWNhdGVzIHRoYXQKLSAgIHRoZSBleGlzdGluZyBy b3cgd2FzIG1vZGlmaWVkIGxvY2FsbHkuIFVzZXJzIGNhbiBtYW51YWxseSBwZXJmb3JtIGEKLSAg IHJlbW90ZS1jaGFuZ2Utd2luLgotICA8L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBXaGVuIHRoZQot ICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1zdHJl YW1pbmciPjxsaXRlcmFsPnN0cmVhbWluZzwvbGl0ZXJhbD48L2xpbms+Ci0gICBtb2RlIGlzIDxs aXRlcmFsPnBhcmFsbGVsPC9saXRlcmFsPiwgdGhlIGZpbmlzaCBMU04gb2YgZmFpbGVkIHRyYW5z YWN0aW9ucwotICAgbWF5IG5vdCBiZSBsb2dnZWQuIEluIHRoYXQgY2FzZSwgaXQgbWF5IGJlIG5l Y2Vzc2FyeSB0byBjaGFuZ2UgdGhlIHN0cmVhbWluZwotICAgbW9kZSB0byA8bGl0ZXJhbD5vbjwv bGl0ZXJhbD4gb3IgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPiBhbmQgY2F1c2UgdGhlIHNhbWUKLSAg IGNvbmZsaWN0cyBhZ2FpbiBzbyB0aGUgZmluaXNoIExTTiBvZiB0aGUgZmFpbGVkIHRyYW5zYWN0 aW9uIHdpbGwgYmUgd3JpdHRlbgotICAgdG8gdGhlIHNlcnZlciBsb2cuIEZvciB0aGUgdXNhZ2Ug b2YgZmluaXNoIExTTiwgcGxlYXNlIHJlZmVyIHRvIDxsaW5rCi0gICBsaW5rZW5kPSJzcWwtYWx0 ZXJzdWJzY3JpcHRpb24iPjxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4KLSAgIFNLSVA8 L2NvbW1hbmQ+PC9saW5rPi4KLSAgPC9wYXJhPgorICAgIFRoZSBMU04gb2YgdGhlIHRyYW5zYWN0 aW9uIHRoYXQgY29udGFpbnMgdGhlIGNoYW5nZSB2aW9sYXRpbmcgdGhlIGNvbnN0cmFpbnQgYW5k CisgICAgdGhlIHJlcGxpY2F0aW9uIG9yaWdpbiBuYW1lIGNhbiBiZSBmb3VuZCBmcm9tIHRoZSBz ZXJ2ZXIgbG9nIChMU04gMC8wMTRDMDM3OCBhbmQKKyAgICByZXBsaWNhdGlvbiBvcmlnaW4gPGxp dGVyYWw+cGdfMTYzOTU8L2xpdGVyYWw+IGluIHRoZSBhYm92ZSBjYXNlKS4gIFRoZQorICAgIHRy YW5zYWN0aW9uIHRoYXQgcHJvZHVjZWQgdGhlIGNvbmZsaWN0IGNhbiBiZSBza2lwcGVkIGJ5IHVz aW5nCisgICAgPGxpbmsgbGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1za2lw Ij48Y29tbWFuZD5BTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFNLSVA8L2NvbW1hbmQ+PC9saW5rPgor ICAgIHdpdGggdGhlIGZpbmlzaCBMU04KKyAgICAoaS5lLiwgTFNOIDAvMDE0QzAzNzgpLiAgVGhl IGZpbmlzaCBMU04gY291bGQgYmUgYW4gTFNOIGF0IHdoaWNoIHRoZSB0cmFuc2FjdGlvbgorICAg IGlzIGNvbW1pdHRlZCBvciBwcmVwYXJlZCBvbiB0aGUgcHVibGlzaGVyLiAgQWx0ZXJuYXRpdmVs eSwgdGhlIHRyYW5zYWN0aW9uIGNhbgorICAgIGFsc28gYmUgc2tpcHBlZCBieSBjYWxsaW5nIHRo ZSA8bGluayBsaW5rZW5kPSJwZy1yZXBsaWNhdGlvbi1vcmlnaW4tYWR2YW5jZSI+CisgICAgPGZ1 bmN0aW9uPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9hZHZhbmNlKCk8L2Z1bmN0aW9uPjwvbGluaz4g ZnVuY3Rpb24uCisgICAgQmVmb3JlIHVzaW5nIHRoaXMgZnVuY3Rpb24sIHRoZSBzdWJzY3JpcHRp b24gbmVlZHMgdG8gYmUgZGlzYWJsZWQgdGVtcG9yYXJpbHkKKyAgICBlaXRoZXIgYnkgPGxpbmsg bGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1kaXNhYmxlIj4KKyAgICA8Y29t bWFuZD5BTFRFUiBTVUJTQ1JJUFRJT04gLi4uIERJU0FCTEU8L2NvbW1hbmQ+PC9saW5rPiBvciwg dGhlCisgICAgc3Vic2NyaXB0aW9uIGNhbiBiZSB1c2VkIHdpdGggdGhlCisgICAgPGxpbmsgbGlu a2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1kaXNhYmxlLW9uLWVycm9y Ij48bGl0ZXJhbD5kaXNhYmxlX29uX2Vycm9yPC9saXRlcmFsPjwvbGluaz4KKyAgICBvcHRpb24u IFRoZW4sIHlvdSBjYW4gdXNlIDxmdW5jdGlvbj5wZ19yZXBsaWNhdGlvbl9vcmlnaW5fYWR2YW5j ZSgpPC9mdW5jdGlvbj4KKyAgICBmdW5jdGlvbiB3aXRoIHRoZSA8cGFyYW1ldGVyPm5vZGVfbmFt ZTwvcGFyYW1ldGVyPiAoaS5lLiwgPGxpdGVyYWw+cGdfMTYzOTU8L2xpdGVyYWw+KQorICAgIGFu ZCB0aGUgbmV4dCBMU04gb2YgdGhlIGZpbmlzaCBMU04gKGkuZS4sIDAvMDE0QzAzNzkpLiAgVGhl IGN1cnJlbnQgcG9zaXRpb24gb2YKKyAgICBvcmlnaW5zIGNhbiBiZSBzZWVuIGluIHRoZSA8bGlu ayBsaW5rZW5kPSJ2aWV3LXBnLXJlcGxpY2F0aW9uLW9yaWdpbi1zdGF0dXMiPgorICAgIDxzdHJ1 Y3RuYW1lPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9zdGF0dXM8L3N0cnVjdG5hbWU+PC9saW5rPiBz eXN0ZW0gdmlldy4KKyAgICBQbGVhc2Ugbm90ZSB0aGF0IHNraXBwaW5nIHRoZSB3aG9sZSB0cmFu c2FjdGlvbiBpbmNsdWRlcyBza2lwcGluZyBjaGFuZ2VzIHRoYXQKKyAgICBtaWdodCBub3Qgdmlv bGF0ZSBhbnkgY29uc3RyYWludC4gIFRoaXMgY2FuIGVhc2lseSBtYWtlIHRoZSBzdWJzY3JpYmVy CisgICAgaW5jb25zaXN0ZW50LgorICAgIFRoZSBhZGRpdGlvbmFsIGRldGFpbHMgcmVnYXJkaW5n IGNvbmZsaWN0aW5nIHJvd3MsIHN1Y2ggYXMgdGhlaXIgb3JpZ2luIGFuZAorICAgIGNvbW1pdCB0 aW1lc3RhbXAgY2FuIGJlIHNlZW4gaW4gdGhlIDxsaXRlcmFsPkRFVEFJTDwvbGl0ZXJhbD4gbGlu ZSBvZiB0aGUKKyAgICBsb2cuIEJ1dCBub3RlIHRoYXQgdGhpcyBpbmZvcm1hdGlvbiBpcyBvbmx5 IGF2YWlsYWJsZSB3aGVuCisgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1l c3RhbXAiPjx2YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgor ICAgIGlzIGVuYWJsZWQgb24gdGhlIHN1YnNjcmliZXIuIFVzZXJzIGNhbiB1c2UgdGhpcyBpbmZv cm1hdGlvbiB0byBkZWNpZGUKKyAgICB3aGV0aGVyIHRvIHJldGFpbiB0aGUgbG9jYWwgY2hhbmdl IG9yIGFkb3B0IHRoZSByZW1vdGUgYWx0ZXJhdGlvbi4gRm9yCisgICAgaW5zdGFuY2UsIHRoZSA8 bGl0ZXJhbD5ERVRBSUw8L2xpdGVyYWw+IGxpbmUgaW4gdGhlIGFib3ZlIGxvZyBpbmRpY2F0ZXMg dGhhdAorICAgIHRoZSBleGlzdGluZyByb3cgd2FzIG1vZGlmaWVkIGxvY2FsbHkuIFVzZXJzIGNh biBtYW51YWxseSBwZXJmb3JtIGEKKyAgICByZW1vdGUtY2hhbmdlLXdpbi4KKyAgIDwvcGFyYT4K KworICAgPHBhcmE+CisgICAgV2hlbiB0aGUKKyAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRl c3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXN0cmVhbWluZyI+PGxpdGVyYWw+c3RyZWFtaW5nPC9s aXRlcmFsPjwvbGluaz4KKyAgICBtb2RlIGlzIDxsaXRlcmFsPnBhcmFsbGVsPC9saXRlcmFsPiwg dGhlIGZpbmlzaCBMU04gb2YgZmFpbGVkIHRyYW5zYWN0aW9ucworICAgIG1heSBub3QgYmUgbG9n Z2VkLiBJbiB0aGF0IGNhc2UsIGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gY2hhbmdlIHRoZSBzdHJl YW1pbmcKKyAgICBtb2RlIHRvIDxsaXRlcmFsPm9uPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5vZmY8 L2xpdGVyYWw+IGFuZCBjYXVzZSB0aGUgc2FtZQorICAgIGNvbmZsaWN0cyBhZ2FpbiBzbyB0aGUg ZmluaXNoIExTTiBvZiB0aGUgZmFpbGVkIHRyYW5zYWN0aW9uIHdpbGwgYmUgd3JpdHRlbgorICAg IHRvIHRoZSBzZXJ2ZXIgbG9nLiBGb3IgdGhlIHVzYWdlIG9mIGZpbmlzaCBMU04sIHBsZWFzZSBy ZWZlciB0byA8bGluaworICAgIGxpbmtlbmQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbiI+PGNvbW1h bmQ+QUxURVIgU1VCU0NSSVBUSU9OIC4uLgorICAgIFNLSVA8L2NvbW1hbmQ+PC9saW5rPi4KKyAg IDwvcGFyYT4KKyAgPC9zZWN0Mj4KICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJsb2dpY2FsLXJl cGxpY2F0aW9uLXJlc3RyaWN0aW9ucyI+CkBAIC0yNDE1LDYgKzI1MzgsMTQgQEAgQ09OVEVYVDog IHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAicGdfMTYzOTUi IGR1cmluZyAiSU5TRVIKICAgICAga2V5IG9yIHJlcGxpY2EgaWRlbnRpdHkgZGVmaW5lZCBmb3Ig aXQuCiAgICAgPC9wYXJhPgogICAgPC9saXN0aXRlbT4KKworICAgPGxpc3RpdGVtPgorICAgIDxw YXJhPgorICAgICBDb25mbGljdCBsb2cgdGFibGVzIChzZWUgPGxpbmsgbGlua2VuZD0ic3FsLWNy ZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxs aXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+IHBhcmFtZXRl cikKKyAgICAgYXJlIG5ldmVyIHB1Ymxpc2hlZCwgZXZlbiB3aGVuIHVzaW5nIDxsaXRlcmFsPkZP UiBBTEwgVEFCTEVTPC9saXRlcmFsPiBpbiBhCisgICAgIHB1YmxpY2F0aW9uLgorICAgIDwvcGFy YT4KKyAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogIDwvc2VjdDE+CiAKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IGU0ZjBiNmIxNmM3Li4xM2I0 MTNkMTQyZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0y OTMsOCArMjkzLDkgQEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZmFpbG92ZXIiPjxsaXRlcmFs PmZhaWxvdmVyPC9saXRlcmFsPjwvbGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXR3by1waGFzZSI+PGxpdGVyYWw+dHdvX3BoYXNl PC9saXRlcmFsPjwvbGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2Ny aXB0aW9uLXBhcmFtcy13aXRoLXJldGFpbi1kZWFkLXR1cGxlcyI+PGxpdGVyYWw+cmV0YWluX2Rl YWRfdHVwbGVzPC9saXRlcmFsPjwvbGluaz4sCi0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLW1heC1yZXRlbnRpb24tZHVyYXRpb24iPjxsaXRl cmFsPm1heF9yZXRlbnRpb25fZHVyYXRpb248L2xpdGVyYWw+PC9saW5rPiwgYW5kCi0gICAgICA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXdhbC1yZWNl aXZlci10aW1lb3V0Ij48bGl0ZXJhbD53YWxfcmVjZWl2ZXJfdGltZW91dDwvbGl0ZXJhbD48L2xp bms+LgorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1tYXgtcmV0ZW50aW9uLWR1cmF0aW9uIj48bGl0ZXJhbD5tYXhfcmV0ZW50aW9uX2R1cmF0 aW9uPC9saXRlcmFsPjwvbGluaz4sCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vi c2NyaXB0aW9uLXBhcmFtcy13aXRoLXdhbC1yZWNlaXZlci10aW1lb3V0Ij48bGl0ZXJhbD53YWxf cmVjZWl2ZXJfdGltZW91dDwvbGl0ZXJhbD48L2xpbms+LCBhbmQKKyAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtY29uZmxpY3QtbG9nLWRlc3Rp bmF0aW9uIj48bGl0ZXJhbD5jb25mbGljdF9sb2dfZGVzdGluYXRpb248L2xpdGVyYWw+PC9saW5r Pi4KICAgICAgIE9ubHkgYSBzdXBlcnVzZXIgY2FuIHNldCA8bGl0ZXJhbD5wYXNzd29yZF9yZXF1 aXJlZCA9IGZhbHNlPC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgogCkBAIC0zNTIsNiArMzUzLDE0 IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAgICAgICA8cXVvdGU+PGxpdGVyYWw+cGdfY29u ZmxpY3RfZGV0ZWN0aW9uPC9saXRlcmFsPjwvcXVvdGU+LCBjcmVhdGVkIHRvIHJldGFpbgogICAg ICAgZGVhZCB0dXBsZXMgZm9yIGNvbmZsaWN0IGRldGVjdGlvbiwgd2lsbCBiZSBkcm9wcGVkLgog ICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBXaGVuIHRoZSA8bGluayBsaW5rZW5k PSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5h dGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGluaz4K KyAgICAgIHBhcmFtZXRlciBpcyBzZXQgdG8gPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9yIDxs aXRlcmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBzeXN0ZW0KKyAgICAgIGF1dG9tYXRpY2FsbHkgY3Jl YXRlcyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLiBDb252ZXJzZWx5LCBpZiB0aGUgZGVzdGluYXRp b24gaXMgY2hhbmdlZCB0bworICAgICAgPGxpdGVyYWw+bG9nPC9saXRlcmFsPiwgbG9nZ2luZyB0 byB0aGUgdGFibGUgc3RvcHMgYW5kIHRoZSBjb25mbGljdCBsb2cKKyAgICAgIHRhYmxlIGlzIGF1 dG9tYXRpY2FsbHkgZHJvcHBlZC4KKyAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8 L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vi c2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dt bAppbmRleCAwN2Q1YjFiZDc3Yy4uNTI3ZjVhYjg3NGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0yNjEsNiArMjYxLDU3IEBAIENSRUFURSBTVUJTQ1JJ UFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9y ZXBsYWNlYWJsCiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAK KyAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13 aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD4gKDx0eXBlPmVudW08L3R5cGU+KTwvdGVy bT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgU3BlY2lm aWVzIHRoZSBkZXN0aW5hdGlvbiBmb3IgcmVjb3JkaW5nIGxvZ2ljYWwgcmVwbGljYXRpb24gY29u ZmxpY3RzLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhl IGF2YWlsYWJsZSBkZXN0aW5hdGlvbnMgYXJlOgorICAgICAgICAgIDxpdGVtaXplZGxpc3Q+Cisg ICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxs aXRlcmFsPmxvZzwvbGl0ZXJhbD46IENvbmZsaWN0IGRldGFpbHMgYXJlIHJlY29yZGVkIGluIHRo ZSBzZXJ2ZXIgbG9nLgorICAgICAgICAgICAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3Iu IFNlZQorICAgICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29u ZmxpY3QtZmlsZS1iYXNlZC1sb2dnaW5nIi8+CisgICAgICAgICAgICAgZm9yIGRldGFpbHMuCisg ICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgIDxs aXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxsaXRlcmFsPnRhYmxl PC9saXRlcmFsPjogVGhlIHN5c3RlbSBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYSBzdHJ1Y3R1cmVk IHRhYmxlCisgICAgICAgICAgICAgbmFtZWQgPGxpdGVyYWw+cGdfY29uZmxpY3RfbG9nX2Zvcl9z dWJpZF8mbHQ7c3ViaWQmZ3Q7PC9saXRlcmFsPgorICAgICAgICAgICAgIGluIHRoZSA8bGl0ZXJh bD5wZ19jb25mbGljdDwvbGl0ZXJhbD4gc2NoZW1hLiBUaGlzIGFsbG93cyBmb3IgZWFzeQorICAg ICAgICAgICAgIHF1ZXJ5aW5nIGFuZCBhbmFseXNpcyBvZiBjb25mbGljdHMuIFNlZQorICAgICAg ICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29uZmxpY3QtdGFibGUt YmFzZWQtbG9nZ2luZyIvPgorICAgICAgICAgICAgIGZvciBkZXRhaWxzLgorICAgICAgICAgICAg PC9wYXJhPgorICAgICAgICAgICAgPGNhdXRpb24+CisgICAgICAgICAgICAgPHBhcmE+CisgICAg ICAgICAgICAgIFRoZSBjb25mbGljdCBsb2cgdGFibGUgaXMgc3RyaWN0bHkgdGllZCB0byB0aGUg bGlmZWN5Y2xlIG9mIHRoZQorICAgICAgICAgICAgICBzdWJzY3JpcHRpb24gb3IgdGhlIDxsaXRl cmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD4gc2V0dGluZy4gSWYKKyAgICAg ICAgICAgICAgdGhlIHN1YnNjcmlwdGlvbiBpcyBkcm9wcGVkLCBvciBpZiB0aGUgZGVzdGluYXRp b24gaXMgY2hhbmdlZCB0bworICAgICAgICAgICAgICA8bGl0ZXJhbD5sb2c8L2xpdGVyYWw+LCB0 aGUgdGFibGUgYW5kIGFsbCBpdHMgcmVjb3JkZWQgY29uZmxpY3QgZGF0YSBhcmUKKyAgICAgICAg ICAgICAgPGVtcGhhc2lzPnBlcm1hbmVudGx5IGRlbGV0ZWQ8L2VtcGhhc2lzPi4KKyAgICAgICAg ICAgICA8L3BhcmE+CisgICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIElmIGNvbmZs aWN0IGhpc3RvcnkgbWF5IGJlIG5lZWRlZCBsYXRlciwgYmFjayB1cCB0aGUgY29uZmxpY3QgbG9n CisgICAgICAgICAgICAgIHRhYmxlIGJlZm9yZSBpdCBnZXRzIHJlbW92ZWQuCisgICAgICAgICAg ICAgPC9wYXJhPgorICAgICAgICAgICAgPC9jYXV0aW9uPgorICAgICAgICAgICA8L2xpc3RpdGVt PgorICAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAg ICA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+OiBSZWNvcmRzIGNvbmZsaWN0IGRldGFpbHMgdG8gYm90 aCBkZXN0aW5hdGlvbnMKKyAgICAgICAgICAgICA8bGl0ZXJhbD5sb2c8L2xpdGVyYWw+IGFuZCA8 bGl0ZXJhbD50YWJsZTwvbGl0ZXJhbD4uCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgICAgICA8L3BhcmE+ CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgICA8 dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvcHkt ZGF0YSI+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNvcHlfZGF0YTwvbGl0ZXJhbD4gKDx0eXBl PmJvb2xlYW48L3R5cGU+KTwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgotLSAKMi40OS4wCgo= --0000000000002dd2ab06537f74b3 Content-Type: application/octet-stream; name="v46-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v46-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq0t11i21 RnJvbSBlMmUxNDBkZTMyYjMzZTllMmJiZDc2MzkyYzQ4NmYxYWEwZDY5ODBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogU2F0LCAzMCBNYXkgMjAyNiAxMzozNTowNCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjQ2 IDIvNV0gSW1wbGVtZW50IHRoZSBjb25mbGljdCBpbnNlcnRpb24gaW5mcmFzdHJ1Y3R1cmUgZm9y CiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCgpUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIGNvcmUg bG9naWMgdG8gcG9wdWxhdGUgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3aGVuZXZlcgphIGxvZ2lj YWwgcmVwbGljYXRpb24gY29uZmxpY3QgaXMgZGV0ZWN0ZWQuIEl0IGNhcHR1cmVzIHRoZSByZW1v dGUgdHJhbnNhY3Rpb24KZGV0YWlscyBhbG9uZyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGxvY2Fs IHN0YXRlIGF0IHRoZSB0aW1lIG9mIHRoZSBjb25mbGljdC4KCkhhbmRsaW5nIE11bHRpLXJvdyBD b25mbGljdHM6IEEgc2luZ2xlIHJlbW90ZSB0dXBsZSBtYXkgY29uZmxpY3Qgd2l0aCBtdWx0aXBs ZQpsb2NhbCB0dXBsZXMgKGUuZy4sIGluIHRoZSBjYXNlIG9mIG11bHRpcGxlX3VuaXF1ZV9jb25m bGljdHMpLiBUbyBoYW5kbGUgdGhpcywKdGhlIGluZnJhc3RydWN0dXJlIGNyZWF0ZXMgYSBzaW5n bGUgcm93IGluIHRoZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIGVhY2gKcmVtb3RlIHR1cGxlLiBU aGUgZGV0YWlscyBvZiBhbGwgY29uZmxpY3RpbmcgbG9jYWwgcm93cyBhcmUgYWdncmVnYXRlZCBp bnRvIGEKc2luZ2xlIEpTT04gYXJyYXkgaW4gdGhlIGxvY2FsX2NvbmZsaWN0cyBjb2x1bW4uCgpU aGUgSlNPTiBhcnJheSB1c2VzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlZCBmb3JtYXQ6ClsgeyAi eGlkIjogIjEwMDEiLCAiY29tbWl0X3RzIjogIjIwMjUtMTItMjUgMTA6MDA6MDArMDU6MzAiLCAi b3JpZ2luIjogIm5vZGVfMSIsCiJrZXkiOiB7ImlkIjogMX0sICJ0dXBsZSI6IHsiaWQiOiAxLCAi dmFsIjogIm9sZF9kYXRhIn0gfSwgLi4uIF0KCkV4YW1wbGUgb2YgcXVlcnlpbmcgdGhlIHN0cnVj dHVyZWQgY29uZmxpY3QgZGF0YToKClNFTEVDVCByZW1vdGVfeGlkLCByZWxuYW1lLCByZW1vdGVf b3JpZ2luLCBsb2NhbF9jb25mbGljdHNbMV0gLT4+ICd4aWQnIEFTIGxvY2FsX3hpZCwKICAgICAg IGxvY2FsX2NvbmZsaWN0c1sxXSAtPj4gJ3R1cGxlJyBBUyBsb2NhbF90dXBsZQpGUk9NIHBnX2Nv bmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18xNjM5NjsKCiByZW1vdGVfeGlkIHwgcmVsbmFtZSAgfCBy ZW1vdGVfb3JpZ2luIHwgbG9jYWxfeGlkIHwgICAgIGxvY2FsX3R1cGxlCi0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgICAgICA3NjAgfCB0ZXN0ICAgICB8IHBnXzE2NDA2ICAgICAgfCA3NzEgICAgICAgfCB7 ImEiOjEsImIiOjEwfQogICAgICAgIDc2NSB8IGNvbmZfdGFiIHwgcGdfMTY0MDYgICAgICB8IDc3 NSAgICAgICB8IHsiYSI6MiwiYiI6MiwiYyI6Mn0KLS0tCiAuLi4vcmVwbGljYXRpb24vbG9naWNh bC9hcHBseXBhcmFsbGVsd29ya2VyLmMgfCAgMzcgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvY29uZmxpY3QuYyAgICB8IDY0NyArKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYyAgICB8ICAgMSArCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jICAgICAgfCAgMTYgKy0KIHNyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCAgICAgfCAgIDcgKwogc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDMwX29yaWdpbi5wbCAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMzVfY29uZmxpY3RzLnBsICAgICAgfCAgNDcgKy0KIDggZmlsZXMgY2hhbmdlZCwg NzEzIGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvYXBwbHlwYXJhbGxlbHdvcmtlci5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMKaW5kZXggMDEyZDU1 ZTlkM2QuLmQyNGM1MmQ0M2U2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYwpAQCAtOTg2LDcgKzk4Niw0MiBAQCBQYXJh bGxlbEFwcGx5V29ya2VyTWFpbihEYXR1bSBtYWluX2FyZykKIAogCXNldF9hcHBseV9lcnJvcl9j b250ZXh0X29yaWdpbihvcmlnaW5uYW1lKTsKIAotCUxvZ2ljYWxQYXJhbGxlbEFwcGx5TG9vcCht cWgpOworCVBHX1RSWSgpOworCXsKKwkJTG9naWNhbFBhcmFsbGVsQXBwbHlMb29wKG1xaCk7CisJ fQorCVBHX0NBVENIKCk7CisJeworCQlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisJCUVycm9y RGF0YSAqZWRhdGE7CisKKwkJLyoKKwkJICogQ29weSB0aGUgRXJyb3JEYXRhIGJlZm9yZSBkb2lu ZyBhbnkgZnVydGhlciB3b3JrLiBUaGUgZXJyb3IgbWF5CisJCSAqIGhhdmUgYmVlbiByYWlzZWQg d2hpbGUgcnVubmluZyB1bmRlciBFcnJvckNvbnRleHQsIHNvIHN3aXRjaCB0bworCQkgKiBhIHNh ZmUgY29udGV4dCAoVG9wTWVtb3J5Q29udGV4dCkgdG8gYXZvaWQgYXNzZXJ0aW9ucyBhbmQgZW5z dXJlCisJCSAqIHRoZSBlcnJvciBkYXRhIHN1cnZpdmVzIHN1YnNlcXVlbnQgY2xlYW51cC4KKwkJ ICovCisJCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oVG9wTWVtb3J5Q29udGV4 dCk7CisJCWVkYXRhID0gQ29weUVycm9yRGF0YSgpOworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY29udGV4dCk7CisKKwkJRmx1c2hFcnJvclN0YXRlKCk7CisKKwkJLyoKKwkJICogUmVzZXQg dGhlIG9yaWdpbiBzdGF0ZSB0byBwcmV2ZW50IHRoZSBhZHZhbmNlbWVudCBvZiBvcmlnaW4KKwkJ ICogcHJvZ3Jlc3MgaWYgd2UgZmFpbCB0byBhcHBseS4gT3RoZXJ3aXNlLCB0aGlzIHdpbGwgcmVz dWx0IGluCisJCSAqIHRyYW5zYWN0aW9uIGxvc3MgYXMgdGhhdCB0cmFuc2FjdGlvbiB3b24ndCBi ZSBzZW50IGFnYWluIGJ5IHRoZQorCQkgKiBzZXJ2ZXIuCisJCSAqLworCQlyZXBsb3JpZ2luX3hh Y3RfY2xlYXIodHJ1ZSk7CisKKwkJQWJvcnRPdXRPZkFueVRyYW5zYWN0aW9uKCk7CisJCVByb2Nl c3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSgpOworCisJCS8qIFJlLXRocm93IHRoZSBvcmlnaW5h bCBlcnJvci4gKi8KKwkJUmVUaHJvd0Vycm9yKGVkYXRhKTsKKwl9CisJUEdfRU5EX1RSWSgpOwog CiAJLyoKIAkgKiBUaGUgcGFyYWxsZWwgYXBwbHkgd29ya2VyIG11c3Qgbm90IGdldCBoZXJlIGJl Y2F1c2UgdGhlIHBhcmFsbGVsIGFwcGx5CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2NvbmZsaWN0LmMKaW5kZXggNGE2NDcyNzdkMWYuLjZiZjNkNmQ1YTQ0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCkBAIC0xNiwxNyArMTYsMjQgQEAKIAog I2luY2x1ZGUgImFjY2Vzcy9jb21taXRfdHMuaCIKICNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIK KyNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlYW0uaCIK KyNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvaGVhcC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj dXRvci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKICNpbmNs dWRlICJyZXBsaWNhdGlvbi9jb25mbGljdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dvcmtl cl9pbnRlcm5hbC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0aWxz L2FycmF5LmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9s c3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgorI2luY2x1ZGUgInV0aWxz L3BnX2xzbi5oIgogCiAvKgogICogU3RyaW5nIHJlcHJlc2VudGF0aW9ucyBmb3IgdGhlIHN1cHBv cnRlZCBjb25mbGljdCBsb2dnaW5nIGRlc3RpbmF0aW9ucy4KQEAgLTQwLDcgKzQ3LDYgQEAgY29u c3QgY2hhciAqY29uc3QgQ29uZmxpY3RMb2dEZXN0TmFtZXNbXSA9IHsKIFN0YXRpY0Fzc2VydERl Y2wobGVuZ3Rob2YoQ29uZmxpY3RMb2dEZXN0TmFtZXMpID09IENPTkZMSUNUX0xPR19ERVNUX0FM TCArIDEsCiAJCQkJICJDb25mbGljdExvZ0Rlc3ROYW1lcyBsZW5ndGggbWlzbWF0Y2giKTsKIAot CiAvKiBTdHJ1Y3R1cmUgdG8gaG9sZCBtZXRhZGF0YSBmb3Igb25lIGNvbHVtbiBvZiB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlICovCiB0eXBlZGVmIHN0cnVjdCBDb25mbGljdExvZ0NvbHVtbkRlZgog ewpAQCAtNzIsNiArNzgsMTggQEAgc3RhdGljIGNvbnN0IENvbmZsaWN0TG9nQ29sdW1uRGVmIENv bmZsaWN0TG9nU2NoZW1hW10gPSB7CiAKICNkZWZpbmUgTlVNX0NPTkZMSUNUX0FUVFJTIGxlbmd0 aG9mKENvbmZsaWN0TG9nU2NoZW1hKQogCisvKiBTY2hlbWEgZm9yIHRoZSBlbGVtZW50cyB3aXRo aW4gdGhlICdsb2NhbF9jb25mbGljdHMnIEpTT04gYXJyYXkgKi8KK3N0YXRpYyBjb25zdCBDb25m bGljdExvZ0NvbHVtbkRlZiBMb2NhbENvbmZsaWN0U2NoZW1hW10gPQoreworCXsgLmF0dG5hbWUg PSAieGlkIiwgICAgICAgLmF0dHR5cGlkID0gWElET0lEIH0sCisJeyAuYXR0bmFtZSA9ICJjb21t aXRfdHMiLCAuYXR0dHlwaWQgPSBUSU1FU1RBTVBUWk9JRCB9LAorCXsgLmF0dG5hbWUgPSAib3Jp Z2luIiwgICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAia2V5IiwgICAg ICAgLmF0dHR5cGlkID0gSlNPTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAidHVwbGUiLCAgICAgLmF0 dHR5cGlkID0gSlNPTk9JRCB9Cit9OworCisjZGVmaW5lIE5VTV9MT0NBTF9DT05GTElDVF9BVFRS UyBsZW5ndGhvZihMb2NhbENvbmZsaWN0U2NoZW1hKQorCiBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgQ29uZmxpY3RUeXBlTmFtZXNbXSA9IHsKIAlbQ1RfSU5TRVJUX0VYSVNUU10gPSAiaW5zZXJ0 X2V4aXN0cyIsCiAJW0NUX1VQREFURV9PUklHSU5fRElGRkVSU10gPSAidXBkYXRlX29yaWdpbl9k aWZmZXJzIiwKQEAgLTk5LDggKzExNywyNyBAQCBzdGF0aWMgdm9pZCBnZXRfdHVwbGVfZGVzYyhF U3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJCQkJCSAgIFR1cGxlVGFi bGVTbG90ICpyZW1vdGVzbG90LCBjaGFyICoqcmVtb3RlX2Rlc2MsCiAJCQkJCQkgICBUdXBsZVRh YmxlU2xvdCAqc2VhcmNoc2xvdCwgY2hhciAqKnNlYXJjaF9kZXNjLAogCQkJCQkJICAgT2lkIGlu ZGV4b2lkKTsKK3N0YXRpYyB2b2lkIGJ1aWxkX2luZGV4X2RhdHVtc19mcm9tX3Nsb3QoRVN0YXRl ICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAq c2xvdCwKKwkJCQkJCQkJCQkgUmVsYXRpb24gaW5kZXhEZXNjLCBEYXR1bSAqdmFsdWVzLAorCQkJ CQkJCQkJCSBib29sICppc251bGwpOwogc3RhdGljIGNoYXIgKmJ1aWxkX2luZGV4X3ZhbHVlX2Rl c2MoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAogCQkJCQkJCQkJVHVwbGVUYWJs ZVNsb3QgKnNsb3QsIE9pZCBpbmRleG9pZCk7CitzdGF0aWMgRGF0dW0gdHVwbGVfdGFibGVfc2xv dF90b19qc29uX2RhdHVtKFR1cGxlVGFibGVTbG90ICpzbG90KTsKK3N0YXRpYyBEYXR1bSB0dXBs ZV90YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24oRVN0YXRlICplc3RhdGUsCisJCQkJCQkJCQkJ CSAgIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQkJCQkJCQkgICBPaWQgcmVwbGljYV9pbmRleCwK KwkJCQkJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnNsb3QpOworc3RhdGljIFR1cGxlRGVzYyBi dWlsZF9jb25mbGljdF90dXBsZWRlc2Modm9pZCk7CitzdGF0aWMgRGF0dW0gYnVpbGRfbG9jYWxf Y29uZmxpY3RzX2pzb25fYXJyYXkoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIHJlbCwKKwkJCQkJ CQkJCQkJICBDb25mbGljdFR5cGUgY29uZmxpY3RfdHlwZSwKKwkJCQkJCQkJCQkJICBMaXN0ICpj b25mbGljdHR1cGxlcyk7CitzdGF0aWMgdm9pZCBwcmVwYXJlX2NvbmZsaWN0X2xvZ190dXBsZShF U3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJCQkJICAgUmVsYXRpb24gY29uZmxp Y3Rsb2dyZWwsCisJCQkJCQkJCQkgICBDb25mbGljdFR5cGUgY29uZmxpY3RfdHlwZSwKKwkJCQkJ CQkJCSAgIFR1cGxlVGFibGVTbG90ICpzZWFyY2hzbG90LAorCQkJCQkJCQkJICAgTGlzdCAqY29u ZmxpY3R0dXBsZXMsCisJCQkJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCk7CiAK IC8qCiAgKiBCdWlsZHMgdGhlIFR1cGxlRGVzYyBmb3IgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4K QEAgLTI4MSwzMCArMzE4LDE3MCBAQCBSZXBvcnRBcHBseUNvbmZsaWN0KEVTdGF0ZSAqZXN0YXRl LCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLCBpbnQgZWxldmVsLAogCQkJCQlDb25mbGljdFR5cGUg dHlwZSwgVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNsb3QsCiAJCQkJCVR1cGxlVGFibGVTbG90ICpy ZW1vdGVzbG90LCBMaXN0ICpjb25mbGljdHR1cGxlcykKIHsKLQlSZWxhdGlvbglsb2NhbHJlbCA9 IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKLQlTdHJpbmdJbmZvRGF0YSBlcnJfZGV0YWlsOwor CVJlbGF0aW9uCQlsb2NhbHJlbCA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlDb25mbGlj dExvZ0Rlc3QJZGVzdDsKKwlSZWxhdGlvbgkJY29uZmxpY3Rsb2dyZWw7CisJYm9vbAkJCWxvZ19k ZXN0X3RhYmxlOworCWJvb2wgCQkJbG9nX2Rlc3RfbG9nZmlsZTsKIAotCWluaXRTdHJpbmdJbmZv KCZlcnJfZGV0YWlsKTsKKwlwZ3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlvbl9jb25mbGljdChNeVN1 YnNjcmlwdGlvbi0+b2lkLCB0eXBlKTsKIAotCS8qIEZvcm0gZXJyZGV0YWlsIG1lc3NhZ2UgYnkg Y29tYmluaW5nIGNvbmZsaWN0aW5nIHR1cGxlcyBpbmZvcm1hdGlvbi4gKi8KLQlmb3JlYWNoX3B0 cihDb25mbGljdFR1cGxlSW5mbywgY29uZmxpY3R0dXBsZSwgY29uZmxpY3R0dXBsZXMpCi0JCWVy cmRldGFpbF9hcHBseV9jb25mbGljdChlc3RhdGUsIHJlbGluZm8sIHR5cGUsIHNlYXJjaHNsb3Qs Ci0JCQkJCQkJCSBjb25mbGljdHR1cGxlLT5zbG90LCByZW1vdGVzbG90LAotCQkJCQkJCQkgY29u ZmxpY3R0dXBsZS0+aW5kZXhvaWQsCi0JCQkJCQkJCSBjb25mbGljdHR1cGxlLT54bWluLAotCQkJ CQkJCQkgY29uZmxpY3R0dXBsZS0+b3JpZ2luLAotCQkJCQkJCQkgY29uZmxpY3R0dXBsZS0+dHMs Ci0JCQkJCQkJCSAmZXJyX2RldGFpbCk7CisJLyoKKwkgKiBHZXQgdGhlIGNvbmZsaWN0IGxvZyBk ZXN0aW5hdGlvbi4gQWxzbywgKGlmIHRoZXJlIGlzIG9uZSkgcmV0dXJuIHRoZQorCSAqIENMVCBy ZWxhdGlvbiBhbHJlYWR5IG9wZW5lZCBhbmQgcmVhZHkgZm9yIGluc2VydGlvbi4KKwkgKi8KKwlj b25mbGljdGxvZ3JlbCA9IEdldENvbmZsaWN0TG9nRGVzdEFuZFRhYmxlKCZkZXN0KTsKIAotCXBn c3RhdF9yZXBvcnRfc3Vic2NyaXB0aW9uX2NvbmZsaWN0KE15U3Vic2NyaXB0aW9uLT5vaWQsIHR5 cGUpOworCWxvZ19kZXN0X3RhYmxlID0gQ09ORkxJQ1RTX0xPR0dFRF9UT19UQUJMRShkZXN0KTsK Kwlsb2dfZGVzdF9sb2dmaWxlID0gQ09ORkxJQ1RTX0xPR0dFRF9UT19MT0coZGVzdCk7CisKKwkv KiBJbnNlcnQgdG8gdGFibGUgaWYgcmVxdWVzdGVkLiAqLworCWlmIChsb2dfZGVzdF90YWJsZSkK Kwl7CisJCUFzc2VydChjb25mbGljdGxvZ3JlbCAhPSBOVUxMKTsKKworCQkvKgorCQkgKiBQcmVw YXJlIHRoZSBjb25mbGljdCBsb2cgdHVwbGUuIElmIHRoZSBlcnJvciBsZXZlbCBpcyBiZWxvdyBF UlJPUiwKKwkJICogaW5zZXJ0IGl0IGltbWVkaWF0ZWx5LiBPdGhlcndpc2UsIGRlZmVyIHRoZSBp bnNlcnRpb24gdG8gYSBuZXcKKwkJICogdHJhbnNhY3Rpb24gYWZ0ZXIgdGhlIGN1cnJlbnQgb25l IGFib3J0cywgZW5zdXJpbmcgdGhlIGluc2VydGlvbiBvZgorCQkgKiB0aGUgbG9nIHR1cGxlIGlz IG5vdCByb2xsZWQgYmFjay4KKwkJICovCisJCXByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKGVz dGF0ZSwKKwkJCQkJCQkJICAgcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjLAorCQkJCQkJCQkgICBj b25mbGljdGxvZ3JlbCwKKwkJCQkJCQkJICAgdHlwZSwKKwkJCQkJCQkJICAgc2VhcmNoc2xvdCwK KwkJCQkJCQkJICAgY29uZmxpY3R0dXBsZXMsCisJCQkJCQkJCSAgIHJlbW90ZXNsb3QpOworCQlp ZiAoZWxldmVsIDwgRVJST1IpCisJCQlJbnNlcnRDb25mbGljdExvZ1R1cGxlKGNvbmZsaWN0bG9n cmVsKTsKKworCQlpZiAoIWxvZ19kZXN0X2xvZ2ZpbGUpCisJCXsKKwkJCS8qCisJCQkgKiBOb3Qg bG9nZ2luZyBjb25mbGljdCBkZXRhaWxzIHRvIHRoZSBzZXJ2ZXIgbG9nOyBSZXBvcnQgdGhlIGVy cm9yCisJCQkgKiBtc2cgYnV0IG9taXQgcmF3IHR1cGxlIGRhdGEgZnJvbSBzZXJ2ZXIgbG9ncyBz aW5jZSBpdCdzIGFscmVhZHkKKwkJCSAqIGNhcHR1cmVkIGluIHRoZSBjb25mbGljdCBsb2cgdGFi bGUuCisJCQkgKi8KKwkJCWVyZXBvcnQoZWxldmVsLAorCQkJCQllcnJjb2RlX2FwcGx5X2NvbmZs aWN0KHR5cGUpLAorCQkJCQllcnJtc2coImNvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwi JXNcIjogY29uZmxpY3Q9JXMiLAorCQkJCQkJUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5h bWUobG9jYWxyZWwpLAorCQkJCQkJQ29uZmxpY3RUeXBlTmFtZXNbdHlwZV0pLAorCQkJCQllcnJk ZXRhaWwoIkNvbmZsaWN0IGRldGFpbHMgYXJlIGxvZ2dlZCB0byB0aGUgY29uZmxpY3QgbG9nIHRh YmxlOiAlcyIsCisJCQkJCQkJICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShjb25mbGljdGxvZ3Jl bCkpKTsKKwkJfQorCisJCXRhYmxlX2Nsb3NlKGNvbmZsaWN0bG9ncmVsLCBSb3dFeGNsdXNpdmVM b2NrKTsKKwl9CisKKwkvKiBMb2cgaW50byB0aGUgc2VydmVyIGxvZyBpZiByZXF1ZXN0ZWQuICov CisJaWYgKGxvZ19kZXN0X2xvZ2ZpbGUpCisJeworCQlTdHJpbmdJbmZvRGF0YQllcnJfZGV0YWls OworCisJCWluaXRTdHJpbmdJbmZvKCZlcnJfZGV0YWlsKTsKKworCQkvKiBGb3JtIGVycmRldGFp bCBtZXNzYWdlIGJ5IGNvbWJpbmluZyBjb25mbGljdGluZyB0dXBsZXMgaW5mb3JtYXRpb24uICov CisJCWZvcmVhY2hfcHRyKENvbmZsaWN0VHVwbGVJbmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGlj dHR1cGxlcykKKwkJCWVycmRldGFpbF9hcHBseV9jb25mbGljdChlc3RhdGUsIHJlbGluZm8sIHR5 cGUsIHNlYXJjaHNsb3QsCisJCQkJCQkJCQljb25mbGljdHR1cGxlLT5zbG90LCByZW1vdGVzbG90 LAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+aW5kZXhvaWQsCisJCQkJCQkJCQljb25mbGljdHR1 cGxlLT54bWluLAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+b3JpZ2luLAorCQkJCQkJCQkJY29u ZmxpY3R0dXBsZS0+dHMsCisJCQkJCQkJCQkmZXJyX2RldGFpbCk7CisKKwkJLyogU3RhbmRhcmQg cmVwb3J0aW5nIHdpdGggZnVsbCBpbnRlcm5hbCBkZXRhaWxzLiAqLworCQllcmVwb3J0KGVsZXZl bCwKKwkJCQllcnJjb2RlX2FwcGx5X2NvbmZsaWN0KHR5cGUpLAorCQkJCWVycm1zZygiY29uZmxp Y3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gXCIlc1wiOiBjb25mbGljdD0lcyIsCisJCQkJCSAgIFJl bGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1lKGxvY2FscmVsKSwKKwkJCQkJICAgQ29uZmxp Y3RUeXBlTmFtZXNbdHlwZV0pLAorCQkJCWVycmRldGFpbF9pbnRlcm5hbCgiJXMiLCBlcnJfZGV0 YWlsLmRhdGEpKTsKKwl9Cit9CisKKy8qCisgKiBQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVw bGUKKyAqICAgICAgSW5zZXJ0IGFueSBkZWZlcnJlZCBjb25mbGljdCBsb2cgdHVwbGUgaW4gYSBz ZXBhcmF0ZSB0cmFuc2FjdGlvbi4KKyAqCisgKiBGb3IgY29uZmxpY3RzIHJhaXNlZCBhdCBFUlJP UiBsZXZlbCwgdGhlIGNvbmZsaWN0IGxvZyB0dXBsZSBjYW5ub3QgYmUKKyAqIGluc2VydGVkIGlt bWVkaWF0ZWx5IGJlY2F1c2UgdGhlIHN1cnJvdW5kaW5nIHRyYW5zYWN0aW9uIHdpbGwgYWJvcnQu CisgKiBUbyBlbnN1cmUgdGhhdCBjb25mbGljdCBpbmZvcm1hdGlvbiBpcyBub3QgbG9zdCwgc3Vj aCB0dXBsZXMgYXJlIHByZXBhcmVkCisgKiBkdXJpbmcgZXJyb3IgcHJvY2Vzc2luZyAoc2VlIHBy ZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKCkpIGJ1dCB0aGVpcgorICogaW5zZXJ0aW9uIGlzIGRl ZmVycmVkLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIGNvbXBsZXRp bmcgdGhhdCBkZWZlcnJlZCBpbnNlcnRpb24gYWZ0ZXIKKyAqIHRoZSBmYWlsaW5nIHRyYW5zYWN0 aW9uIGhhcyBiZWVuIGFib3J0ZWQgYW5kIHRoZSBzeXN0ZW0gaGFzIHJldHVybmVkIHRvIGFuCisg KiBpZGxlIHN0YXRlLiAgSXQgZXhlY3V0ZXMgdGhlIGluc2VydGlvbiBpbiBhIG5ldywgaW5kZXBl bmRlbnQgdHJhbnNhY3Rpb24sCisgKiBlbnN1cmluZyB0aGF0IHRoZSBjb25mbGljdCBsb2cgZW50 cnkgaXMgZHVyYWJsZSBhbmQgbm90IHJvbGxlZCBiYWNrCisgKiB0b2dldGhlciB3aXRoIHRoZSBm YWlsZWQgYXBwbHkgdHJhbnNhY3Rpb24uCisgKi8KK3ZvaWQKK1Byb2Nlc3NQZW5kaW5nQ29uZmxp Y3RMb2dUdXBsZSh2b2lkKQoreworCVJlbGF0aW9uCWNvbmZsaWN0bG9ncmVsOworCUNvbmZsaWN0 TG9nRGVzdCBkZXN0OworCisJLyogTm90aGluZyB0byBkbyAqLworCWlmIChNeUxvZ2ljYWxSZXBX b3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlQR19UUlko KTsKKwl7CisJCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7CisJCVB1c2hBY3RpdmVTbmFwc2hv dChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOworCisJCS8qIE9wZW4gY29uZmxpY3QgbG9nIHRh YmxlIGFuZCBpbnNlcnQgdGhlIHR1cGxlICovCisJCWNvbmZsaWN0bG9ncmVsID0gR2V0Q29uZmxp Y3RMb2dEZXN0QW5kVGFibGUoJmRlc3QpOworCQlBc3NlcnQoY29uZmxpY3Rsb2dyZWwpOworCisJ CUluc2VydENvbmZsaWN0TG9nVHVwbGUoY29uZmxpY3Rsb2dyZWwpOworCisJCXRhYmxlX2Nsb3Nl KGNvbmZsaWN0bG9ncmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCQlQb3BBY3RpdmVTbmFwc2hv dCgpOworCQlDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKKwl9CisJUEdfQ0FUQ0goKTsKKwl7 CisJCUVycm9yRGF0YSAgKmVkYXRhOworCQlNZW1vcnlDb250ZXh0IG9sZGN0eDsKKworCQkvKiBT YXZlIGVycm9yIGluZm8gaW4gb3VyIG1lbW9yeSBjb250ZXh0ICovCisJCW9sZGN0eCA9IE1lbW9y eUNvbnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsKKwkJZWRhdGEgPSBDb3B5RXJyb3JE YXRhKCk7CisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjdHgpOworCisJCS8qIENsZWFyIHRo ZSBlcnJvciBzdGF0ZSBzbyB3ZSBjYW4gY29udGludWUgKi8KKwkJRmx1c2hFcnJvclN0YXRlKCk7 CiAKLQllcmVwb3J0KGVsZXZlbCwKLQkJCWVycmNvZGVfYXBwbHlfY29uZmxpY3QodHlwZSksCi0J CQllcnJtc2coImNvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwiJXMuJXNcIjogY29uZmxp Y3Q9JXMiLAotCQkJCSAgIGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShs b2NhbHJlbCkpLAotCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGxvY2FscmVsKSwKLQkJ CQkgICBDb25mbGljdFR5cGVOYW1lc1t0eXBlXSksCi0JCQllcnJkZXRhaWxfaW50ZXJuYWwoIiVz IiwgZXJyX2RldGFpbC5kYXRhKSk7CisJCS8qIEFib3J0IHRoZSB0cmFuc2FjdGlvbiB3ZSBzdGFy dGVkIGFib3ZlICovCisJCUFib3J0T3V0T2ZBbnlUcmFuc2FjdGlvbigpOworCisJCS8qCisJCSAq IFJlcG9ydCB0aGUgZXJyb3IgYXMgYSB3YXJuaW5nLiBXZSB1c2UgV0FSTklORyBiZWNhdXNlIHdl IGRvbid0IHdhbnQKKwkJICogdGhpcyB0byBiZSBhIGZhdGFsIGVycm9yIGZvciB0aGUgd29ya2Vy LCBhbmQgd2Ugd2FudCB0byBhbGxvdyB0aGUKKwkJICogY2FsbGVyJ3Mgb3JpZ2luYWwgZXJyb3Ig dG8gcmVtYWluIHByaW1hcnkuCisJCSAqLworCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJKGVycm1z ZygiY291bGQgbm90IGxvZyBjb25mbGljdCB0byB0YWJsZSBmb3Igc3Vic2NyaXB0aW9uIFwiJXNc IjogJXMiLAorCQkJCQkJTXlTdWJzY3JpcHRpb24tPm5hbWUsIGVkYXRhLT5tZXNzYWdlKSkpOwor CisJCUZyZWVFcnJvckRhdGEoZWRhdGEpOworCisJCS8qCisJCSAqIEZyZWUgdGhlIGNvbmZsaWN0 IGxvZyB0dXBsZSBhbmQgc2V0IGl0IHRvIE5VTEwuIFRoaXMgZW5zdXJlcyB3ZQorCQkgKiBkb24n dCB0cnkgdG8gaW5zZXJ0IHRoZSBzYW1lIHByb2JsZW1hdGljIHR1cGxlIGFnYWluLgorCQkgKi8K KwkJaWYgKE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlICE9IE5VTEwpCisJ CXsKKwkJCWhlYXBfZnJlZXR1cGxlKE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1 cGxlKTsKKwkJCU15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID0gTlVMTDsK KwkJfQorCX0KKwlQR19FTkRfVFJZKCk7CiB9CiAKIC8qCkBAIC0zMzgsNiArNTE1LDU2IEBAIElu aXRDb25mbGljdEluZGV4ZXMoUmVzdWx0UmVsSW5mbyAqcmVsSW5mbykKIAlyZWxJbmZvLT5yaV9v bkNvbmZsaWN0QXJiaXRlckluZGV4ZXMgPSB1bmlxdWVJbmRleGVzOwogfQogCisvKgorICogR2V0 Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUKKyAqCisgKiBGZXRjaGVzIGNvbmZsaWN0IGxvZ2dpbmcg bWV0YWRhdGEgZnJvbSB0aGUgY2FjaGVkIE15U3Vic2NyaXB0aW9uIHBvaW50ZXIuCisgKiBTZXRz IHRoZSBkZXN0aW5hdGlvbiBlbnVtIGluICpsb2dfZGVzdCBhbmQsIGlmIGFwcGxpY2FibGUsIG9w ZW5zIGFuZAorICogcmV0dXJucyB0aGUgcmVsYXRpb24gaGFuZGxlIGZvciB0aGUgY29uZmxpY3Qg bG9nIHRhYmxlLgorICovCitSZWxhdGlvbgorR2V0Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUoQ29u ZmxpY3RMb2dEZXN0ICpsb2dfZGVzdCkKK3sKKwlPaWQJCQljb25mbGljdGxvZ3JlbGlkOworCisJ LyoKKwkgKiBDb252ZXJ0IHRoZSB0ZXh0IGxvZyBkZXN0aW5hdGlvbiB0byB0aGUgaW50ZXJuYWwg ZW51bS4gIE15U3Vic2NyaXB0aW9uCisJICogYWxyZWFkeSBjb250YWlucyB0aGUgZGF0YSBmcm9t IHBnX3N1YnNjcmlwdGlvbi4KKwkgKi8KKwkqbG9nX2Rlc3QgPSBHZXRDb25mbGljdExvZ0Rlc3Qo TXlTdWJzY3JpcHRpb24tPmNvbmZsaWN0bG9nZGVzdCk7CisKKwkvKiBRdWljayBleGl0IGlmIGEg Y29uZmxpY3QgbG9nIHRhYmxlIHdhcyBub3QgcmVxdWVzdGVkLiAqLworCWlmICghQ09ORkxJQ1RT X0xPR0dFRF9UT19UQUJMRSgqbG9nX2Rlc3QpKQorCQlyZXR1cm4gTlVMTDsKKworCWNvbmZsaWN0 bG9ncmVsaWQgPSBNeVN1YnNjcmlwdGlvbi0+Y29uZmxpY3Rsb2dyZWxpZDsKKworCUFzc2VydChP aWRJc1ZhbGlkKGNvbmZsaWN0bG9ncmVsaWQpKTsKKworCXJldHVybiB0YWJsZV9vcGVuKGNvbmZs aWN0bG9ncmVsaWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworfQorCisvKgorICogSW5zZXJ0Q29uZmxp Y3RMb2dUdXBsZQorICoKKyAqIEluc2VydCBjb25mbGljdCBsb2cgdHVwbGUgaW50byB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlLiBJdCB1c2VzCisgKiBIRUFQX0lOU0VSVF9OT19MT0dJQ0FMIHRvIGV4 cGxpY2l0bHkgYmxvY2sgbG9naWNhbCBkZWNvZGluZyBvZiB0aGUgdHVwbGUKKyAqIGluc2VydGVk IGludG8gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4KKyAqLwordm9pZAorSW5zZXJ0Q29uZmxpY3RM b2dUdXBsZShSZWxhdGlvbiBjb25mbGljdGxvZ3JlbCkKK3sKKwkvKiBBIHZhbGlkIHR1cGxlIG11 c3QgYmUgcHJlcGFyZWQgYW5kIHN0b3JlZCBpbiBNeUxvZ2ljYWxSZXBXb3JrZXIuICovCisJQXNz ZXJ0KE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlICE9IE5VTEwpOworCisJ aGVhcF9pbnNlcnQoY29uZmxpY3Rsb2dyZWwsIE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3Rf bG9nX3R1cGxlLAorCQkJCUdldEN1cnJlbnRDb21tYW5kSWQodHJ1ZSksIEhFQVBfSU5TRVJUX05P X0xPR0lDQUwsIE5VTEwpOworCisJLyogRnJlZSBjb25mbGljdCBsb2cgdHVwbGUuICovCisJaGVh cF9mcmVldHVwbGUoTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUpOworCU15 TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID0gTlVMTDsKK30KKwogLyoKICAq IEFkZCBTUUxTVEFURSBlcnJvciBjb2RlIHRvIHRoZSBjdXJyZW50IGNvbmZsaWN0IHJlcG9ydC4K ICAqLwpAQCAtNzcxLDYgKzk5OCw0MCBAQCBnZXRfdHVwbGVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwg UmVzdWx0UmVsSW5mbyAqcmVsaW5mbywgQ29uZmxpY3RUeXBlIHR5cGUsCiAJfQogfQogCisvKgor ICogSGVscGVyIGZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlICJyYXciIGluZGV4IGtleSBEYXR1bXMg YW5kIHRoZWlyIG51bGwgZmxhZ3MKKyAqIGZyb20gYSBUdXBsZVRhYmxlU2xvdCwgZ2l2ZW4gYW4g YWxyZWFkeSBvcGVuIGluZGV4IGRlc2NyaXB0b3IuCisgKiBUaGlzIGlzIHRoZSByZXVzYWJsZSBj b3JlIGxvZ2ljLgorICovCitzdGF0aWMgdm9pZAorYnVpbGRfaW5kZXhfZGF0dW1zX2Zyb21fc2xv dChFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gbG9jYWxyZWwsCisJCQkJCQkJIFR1cGxlVGFibGVT bG90ICpzbG90LAorCQkJCQkJCSBSZWxhdGlvbiBpbmRleERlc2MsIERhdHVtICp2YWx1ZXMsCisJ CQkJCQkJIGJvb2wgKmlzbnVsbCkKK3sKKwlUdXBsZVRhYmxlU2xvdCAqdGFibGVzbG90ID0gc2xv dDsKKworCS8qCisJICogSWYgdGhlIHNsb3QgaXMgYSB2aXJ0dWFsIHNsb3QsIGNvcHkgaXQgaW50 byBhIGhlYXAgdHVwbGUgc2xvdCBhcworCSAqIEZvcm1JbmRleERhdHVtIG9ubHkgd29ya3Mgd2l0 aCBoZWFwIHR1cGxlIHNsb3RzLgorCSAqLworCWlmIChUVFNfSVNfVklSVFVBTChzbG90KSkKKwl7 CisJCS8qIFNsb3QgaXMgY3JlYXRlZCB3aXRoaW4gdGhlIEVTdGF0ZSdzIHR1cGxlIHRhYmxlICov CisJCXRhYmxlc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKGxvY2FscmVsLCAmZXN0YXRlLT5lc190 dXBsZVRhYmxlKTsKKwkJdGFibGVzbG90ID0gRXhlY0NvcHlTbG90KHRhYmxlc2xvdCwgc2xvdCk7 CisJfQorCisJLyoKKwkgKiBJbml0aWFsaXplIGVjeHRfc2NhbnR1cGxlIGZvciBwb3RlbnRpYWwg dXNlIGluIEZvcm1JbmRleERhdHVtCisJICovCisJR2V0UGVyVHVwbGVFeHByQ29udGV4dChlc3Rh dGUpLT5lY3h0X3NjYW50dXBsZSA9IHRhYmxlc2xvdDsKKworCS8qIEZvcm0gdGhlIGluZGV4IGRh dHVtcyAqLworCUZvcm1JbmRleERhdHVtKEJ1aWxkSW5kZXhJbmZvKGluZGV4RGVzYyksIHRhYmxl c2xvdCwgZXN0YXRlLCB2YWx1ZXMsCisJCQkJICAgaXNudWxsKTsKK30KKwogLyoKICAqIEhlbHBl ciBmdW5jdGlvbnMgdG8gY29uc3RydWN0IGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIGNvbnRlbnRz IG9mIGFuIGluZGV4CiAgKiBlbnRyeS4gU2VlIEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9uIGZv ciBkZXRhaWxzLgpAQCAtNzg2LDQxICsxMDQ3LDMzOSBAQCBidWlsZF9pbmRleF92YWx1ZV9kZXNj KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwgVHVwbGVUYWJsZVNsb3QgKnNsb3Qs CiAJUmVsYXRpb24JaW5kZXhEZXNjOwogCURhdHVtCQl2YWx1ZXNbSU5ERVhfTUFYX0tFWVNdOwog CWJvb2wJCWlzbnVsbFtJTkRFWF9NQVhfS0VZU107Ci0JVHVwbGVUYWJsZVNsb3QgKnRhYmxlc2xv dCA9IHNsb3Q7CiAKLQlpZiAoIXRhYmxlc2xvdCkKKwlpZiAoIXNsb3QpCiAJCXJldHVybiBOVUxM OwogCiAJQXNzZXJ0KENoZWNrUmVsYXRpb25PaWRMb2NrZWRCeU1lKGluZGV4b2lkLCBSb3dFeGNs dXNpdmVMb2NrLCB0cnVlKSk7CiAKIAlpbmRleERlc2MgPSBpbmRleF9vcGVuKGluZGV4b2lkLCBO b0xvY2spOwogCi0JLyoKLQkgKiBJZiB0aGUgc2xvdCBpcyBhIHZpcnR1YWwgc2xvdCwgY29weSBp dCBpbnRvIGEgaGVhcCB0dXBsZSBzbG90IGFzCi0JICogRm9ybUluZGV4RGF0dW0gb25seSB3b3Jr cyB3aXRoIGhlYXAgdHVwbGUgc2xvdHMuCi0JICovCi0JaWYgKFRUU19JU19WSVJUVUFMKHNsb3Qp KQorCWJ1aWxkX2luZGV4X2RhdHVtc19mcm9tX3Nsb3QoZXN0YXRlLCBsb2NhbHJlbCwgc2xvdCwg aW5kZXhEZXNjLCB2YWx1ZXMsCisJCQkJCQkJCSBpc251bGwpOworCisJaW5kZXhfdmFsdWUgPSBC dWlsZEluZGV4VmFsdWVEZXNjcmlwdGlvbihpbmRleERlc2MsIHZhbHVlcywgaXNudWxsKTsKKwor CWluZGV4X2Nsb3NlKGluZGV4RGVzYywgTm9Mb2NrKTsKKworCXJldHVybiBpbmRleF92YWx1ZTsK K30KKworLyoKKyAqIHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bQorICoKKyAqIEhlbHBl ciBmdW5jdGlvbiB0byBjb252ZXJ0IGEgVHVwbGVUYWJsZVNsb3QgdG8gSlNPTi4KKyAqLworc3Rh dGljIERhdHVtCit0dXBsZV90YWJsZV9zbG90X3RvX2pzb25fZGF0dW0oVHVwbGVUYWJsZVNsb3Qg KnNsb3QpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCURhdHVtCQlkYXR1bTsKKwlEYXR1bQkJanNv bjsKKworCUFzc2VydChzbG90ICE9IE5VTEwpOworCisJdHVwbGUgPSBFeGVjQ29weVNsb3RIZWFw VHVwbGUoc2xvdCk7CisJZGF0dW0gPSBoZWFwX2NvcHlfdHVwbGVfYXNfZGF0dW0odHVwbGUsIHNs b3QtPnR0c190dXBsZURlc2NyaXB0b3IpOworCisJanNvbiA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEo cm93X3RvX2pzb24sIGRhdHVtKTsKKwloZWFwX2ZyZWV0dXBsZSh0dXBsZSk7CisKKwlyZXR1cm4g anNvbjsKK30KKworLyoKKyAqIHR1cGxlX3RhYmxlX3Nsb3RfdG9faW5kZXh0dXBfanNvbgorICoK KyAqIEZldGNoIHJlcGxpY2EgaWRlbnRpdHkga2V5IGZyb20gdGhlIHR1cGxlIHRhYmxlIHNsb3Qg YW5kIGNvbnZlcnQgaW50byBhCisgKiBKU09OIGRhdHVtLgorICovCitzdGF0aWMgRGF0dW0KK3R1 cGxlX3RhYmxlX3Nsb3RfdG9faW5kZXh0dXBfanNvbihFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24g bG9jYWxyZWwsCisJCQkJCQkJCSAgT2lkIGluZGV4aWQsIFR1cGxlVGFibGVTbG90ICpzbG90KQor eworCVJlbGF0aW9uCWluZGV4RGVzYzsKKwlEYXR1bQkJdmFsdWVzW0lOREVYX01BWF9LRVlTXTsK Kwlib29sCQlpc251bGxbSU5ERVhfTUFYX0tFWVNdOworCUhlYXBUdXBsZQl0dXBsZTsKKwlUdXBs ZURlc2MJdHVwZGVzYzsKKwlEYXR1bQkJZGF0dW07CisKKwlBc3NlcnQoc2xvdCAhPSBOVUxMKTsK KworCUFzc2VydChDaGVja1JlbGF0aW9uT2lkTG9ja2VkQnlNZShpbmRleGlkLCBSb3dFeGNsdXNp dmVMb2NrLCB0cnVlKSk7CisKKwlpbmRleERlc2MgPSBpbmRleF9vcGVuKGluZGV4aWQsIE5vTG9j ayk7CisKKwlidWlsZF9pbmRleF9kYXR1bXNfZnJvbV9zbG90KGVzdGF0ZSwgbG9jYWxyZWwsIHNs b3QsIGluZGV4RGVzYywgdmFsdWVzLAorCQkJCQkJCQkgaXNudWxsKTsKKwl0dXBkZXNjID0gQ3Jl YXRlVHVwbGVEZXNjQ29weShSZWxhdGlvbkdldERlc2NyKGluZGV4RGVzYykpOworCisJLyogQmxl c3MgdGhlIHR1cGRlc2Mgc28gaXQgY2FuIGJlIGxvb2tlZCB1cCBieSByb3dfdG9fanNvbi4gKi8K KwlCbGVzc1R1cGxlRGVzYyh0dXBkZXNjKTsKKworCS8qIEZvcm0gdGhlIHJlcGxpY2EgaWRlbnRp dHkgdHVwbGUuICovCisJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBp c251bGwpOworCWRhdHVtID0gaGVhcF9jb3B5X3R1cGxlX2FzX2RhdHVtKHR1cGxlLCB0dXBkZXNj KTsKKworCWhlYXBfZnJlZXR1cGxlKHR1cGxlKTsKKwlGcmVlVHVwbGVEZXNjKHR1cGRlc2MpOwor CWluZGV4X2Nsb3NlKGluZGV4RGVzYywgTm9Mb2NrKTsKKworCS8qIENvbnZlcnQgdG8gYSBKU09O IGRhdHVtLiAqLworCXJldHVybiBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBkYXR1 bSk7Cit9CisKKy8qCisgKiBidWlsZF9jb25mbGljdF90dXBsZWRlc2MKKyAqCisgKiBCdWlsZCBh bmQgYmxlc3MgYSB0dXBsZSBkZXNjcmlwdG9yIGZvciB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGJh c2VkIG9uIHRoZQorICogcHJlZGVmaW5lZCBMb2NhbENvbmZsaWN0U2NoZW1hLgorICovCitzdGF0 aWMgVHVwbGVEZXNjCitidWlsZF9jb25mbGljdF90dXBsZWRlc2Modm9pZCkKK3sKKwlzdGF0aWMg VHVwbGVEZXNjIGNhY2hlZF90dXBkZXNjID0gTlVMTDsKKworCWlmIChjYWNoZWRfdHVwZGVzYyA9 PSBOVUxMKQogCXsKLQkJdGFibGVzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUobG9jYWxyZWwsICZl c3RhdGUtPmVzX3R1cGxlVGFibGUpOwotCQl0YWJsZXNsb3QgPSBFeGVjQ29weVNsb3QodGFibGVz bG90LCBzbG90KTsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwkJb2xkY3h0ID0gTWVtb3J5 Q29udGV4dFN3aXRjaFRvKENhY2hlTWVtb3J5Q29udGV4dCk7CisKKwkJY2FjaGVkX3R1cGRlc2Mg PSBDcmVhdGVUZW1wbGF0ZVR1cGxlRGVzYyhOVU1fTE9DQUxfQ09ORkxJQ1RfQVRUUlMpOworCisJ CWZvciAoaW50IGkgPSAwOyBpIDwgTlVNX0xPQ0FMX0NPTkZMSUNUX0FUVFJTOyBpKyspCisJCQlU dXBsZURlc2NJbml0RW50cnkoY2FjaGVkX3R1cGRlc2MsCisJCQkJCQkJICAgKEF0dHJOdW1iZXIp IChpICsgMSksCisJCQkJCQkJICAgTG9jYWxDb25mbGljdFNjaGVtYVtpXS5hdHRuYW1lLAorCQkJ CQkJCSAgIExvY2FsQ29uZmxpY3RTY2hlbWFbaV0uYXR0dHlwaWQsCisJCQkJCQkJICAgLTEsIDAp OworCisJCVR1cGxlRGVzY0ZpbmFsaXplKGNhY2hlZF90dXBkZXNjKTsKKworCQkvKgorCQkgKiBC bGVzcyBvbmNlIHNvIGl0IGNhbiBiZSB1c2VkIGFzIGEgUkVDT1JEIHR5cGUgKGUuZy4gZm9yCisJ CSAqIHJvd190b19qc29uIG9yIG90aGVyIHJlY29yZC1iYXNlZCBvcGVyYXRpb25zKS4KKwkJICov CisJCUJsZXNzVHVwbGVEZXNjKGNhY2hlZF90dXBkZXNjKTsKKworCQlNZW1vcnlDb250ZXh0U3dp dGNoVG8ob2xkY3h0KTsKIAl9CiAKLQkvKgotCSAqIEluaXRpYWxpemUgZWN4dF9zY2FudHVwbGUg Zm9yIHBvdGVudGlhbCB1c2UgaW4gRm9ybUluZGV4RGF0dW0gd2hlbgotCSAqIGluZGV4IGV4cHJl c3Npb25zIGFyZSBwcmVzZW50LgotCSAqLwotCUdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRl KS0+ZWN4dF9zY2FudHVwbGUgPSB0YWJsZXNsb3Q7CisJcmV0dXJuIGNhY2hlZF90dXBkZXNjOwor fQogCi0JLyoKLQkgKiBUaGUgdmFsdWVzL251bGxzIGFycmF5cyBwYXNzZWQgdG8gQnVpbGRJbmRl eFZhbHVlRGVzY3JpcHRpb24gc2hvdWxkIGJlCi0JICogdGhlIHJlc3VsdHMgb2YgRm9ybUluZGV4 RGF0dW0sIHdoaWNoIGFyZSB0aGUgInJhdyIgaW5wdXQgdG8gdGhlIGluZGV4Ci0JICogQU0uCi0J ICovCi0JRm9ybUluZGV4RGF0dW0oQnVpbGRJbmRleEluZm8oaW5kZXhEZXNjKSwgdGFibGVzbG90 LCBlc3RhdGUsIHZhbHVlcywgaXNudWxsKTsKKy8qCisgKiBCdWlsZHMgdGhlIGxvY2FsIGNvbmZs aWN0cyBKU09OIGFycmF5IGNvbHVtbiBmcm9tIHRoZSBsaXN0IG9mCisgKiBDb25mbGljdFR1cGxl SW5mbyBvYmplY3RzLgorICoKKyAqIEV4YW1wbGUgb3V0cHV0IHN0cnVjdHVyZToKKyAqIFsgeyAi eGlkIjogIjEwMDEiLCAiY29tbWl0X3RzIjogIi4uLiIsICJvcmlnaW4iOiAiLi4uIiwgInR1cGxl Ijogey4uLn0gfSwgLi4uIF0KKyAqLworc3RhdGljIERhdHVtCitidWlsZF9sb2NhbF9jb25mbGlj dHNfanNvbl9hcnJheShFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJCQkgQ29u ZmxpY3RUeXBlIGNvbmZsaWN0X3R5cGUsCisJCQkJCQkJCSBMaXN0ICpjb25mbGljdHR1cGxlcykK K3sKKwlMaXN0Q2VsbCAgICpsYzsKKwlMaXN0CSAgICpqc29uX2RhdHVtcyA9IE5JTDsKKwlEYXR1 bQkgICAqanNvbl9kYXR1bV9hcnJheTsKKwlEYXR1bQkJanNvbl9hcnJheV9kYXR1bTsKKwlpbnQJ CQludW1fY29uZmxpY3RzOworCWludAkJCWk7CisJaW50MTYJCXR5cGxlbjsKKwlib29sCQl0eXBi eXZhbDsKKwljaGFyCQl0eXBhbGlnbjsKKwlUdXBsZURlc2MJdHVwZGVzYzsKIAotCWluZGV4X3Zh bHVlID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24oaW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVs bCk7CisJLyogQnVpbGQgbG9jYWwgY29uZmxpY3RzIHR1cGxlIGRlc2NyaXB0b3IuICovCisJdHVw ZGVzYyA9IGJ1aWxkX2NvbmZsaWN0X3R1cGxlZGVzYygpOwogCi0JaW5kZXhfY2xvc2UoaW5kZXhE ZXNjLCBOb0xvY2spOworCS8qIFByb2Nlc3MgbG9jYWwgY29uZmxpY3QgdHVwbGUgbGlzdCBhbmQg cHJlcGFyZSBhbiBhcnJheSBvZiBKU09OLiAqLworCWZvcmVhY2hfcHRyKENvbmZsaWN0VHVwbGVJ bmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGljdHR1cGxlcykKKwl7CisJCURhdHVtCQl2YWx1ZXNb TlVNX0xPQ0FMX0NPTkZMSUNUX0FUVFJTXSA9IHswfTsKKwkJYm9vbAkJbnVsbHNbTlVNX0xPQ0FM X0NPTkZMSUNUX0FUVFJTXSA9IHswfTsKKwkJY2hhcgkgICAqb3JpZ2luX25hbWUgPSBOVUxMOwor CQlIZWFwVHVwbGUJdHVwbGU7CisJCURhdHVtCQlqc29uX2RhdHVtOworCQlpbnQJCQlhdHRubzsK KworCQlhdHRubyA9IDA7CisJCXZhbHVlc1thdHRubysrXSA9IFRyYW5zYWN0aW9uSWRHZXREYXR1 bShjb25mbGljdHR1cGxlLT54bWluKTsKKworCQlpZiAoY29uZmxpY3R0dXBsZS0+dHMpCisJCQl2 YWx1ZXNbYXR0bm8rK10gPSBUaW1lc3RhbXBUekdldERhdHVtKGNvbmZsaWN0dHVwbGUtPnRzKTsK KwkJZWxzZQorCQkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOwogCi0JcmV0dXJuIGluZGV4X3ZhbHVl OworCQlpZiAoY29uZmxpY3R0dXBsZS0+b3JpZ2luICE9IEludmFsaWRSZXBsT3JpZ2luSWQpCisJ CQlyZXBsb3JpZ2luX2J5X29pZChjb25mbGljdHR1cGxlLT5vcmlnaW4sIHRydWUsICZvcmlnaW5f bmFtZSk7CisKKwkJLyogU3RvcmUgZW1wdHkgc3RyaW5nIGlmIG9yaWdpbiBuYW1lIGZvciB0aGUg dHVwbGUgaXMgTlVMTC4gKi8KKwkJaWYgKG9yaWdpbl9uYW1lICE9IE5VTEwpCisJCQl2YWx1ZXNb YXR0bm8rK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKG9yaWdpbl9uYW1lKTsKKwkJZWxzZQorCQkJ bnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJCS8qCisJCSAqIEFkZCB0aGUgY29uZmxpY3Rpbmcg a2V5IHZhbHVlcyBpbiB0aGUgY2FzZSBvZiBhIHVuaXF1ZSBjb25zdHJhaW50CisJCSAqIHZpb2xh dGlvbi4KKwkJICovCisJCWlmIChjb25mbGljdF90eXBlID09IENUX0lOU0VSVF9FWElTVFMgfHwK KwkJCWNvbmZsaWN0X3R5cGUgPT0gQ1RfVVBEQVRFX0VYSVNUUyB8fAorCQkJY29uZmxpY3RfdHlw ZSA9PSBDVF9NVUxUSVBMRV9VTklRVUVfQ09ORkxJQ1RTKQorCQl7CisJCQlPaWQJaW5kZXhvaWQg PSBjb25mbGljdHR1cGxlLT5pbmRleG9pZDsKKworCQkJQXNzZXJ0KE9pZElzVmFsaWQoaW5kZXhv aWQpICYmIGNvbmZsaWN0dHVwbGUtPnNsb3QgJiYKKwkJCQkgICBDaGVja1JlbGF0aW9uT2lkTG9j a2VkQnlNZShpbmRleG9pZCwgUm93RXhjbHVzaXZlTG9jaywKKwkJCQkJCQkJCQkJICB0cnVlKSk7 CisJCQl2YWx1ZXNbYXR0bm8rK10gPQorCQkJCQl0dXBsZV90YWJsZV9zbG90X3RvX2luZGV4dHVw X2pzb24oZXN0YXRlLCByZWwsCisJCQkJCQkJCQkJCQkJICBpbmRleG9pZCwKKwkJCQkJCQkJCQkJ CQkgIGNvbmZsaWN0dHVwbGUtPnNsb3QpOworCQl9CisJCWVsc2UKKwkJCW51bGxzW2F0dG5vKytd ID0gdHJ1ZTsKKworCQkvKiBDb252ZXJ0IGNvbmZsaWN0aW5nIHR1cGxlIHRvIEpTT04gZGF0dW0u ICovCisJCWlmIChjb25mbGljdHR1cGxlLT5zbG90KQorCQkJdmFsdWVzW2F0dG5vXSA9IHR1cGxl X3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bShjb25mbGljdHR1cGxlLT5zbG90KTsKKwkJZWxzZQor CQkJbnVsbHNbYXR0bm9dID0gdHJ1ZTsKKworCQlBc3NlcnQoYXR0bm8gKyAxID09IE5VTV9MT0NB TF9DT05GTElDVF9BVFRSUyk7CisKKwkJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywg dmFsdWVzLCBudWxscyk7CisKKwkJanNvbl9kYXR1bSA9IGhlYXBfY29weV90dXBsZV9hc19kYXR1 bSh0dXBsZSwgdHVwZGVzYyk7CisKKwkJLyoKKwkJICogQnVpbGQgdGhlIGhpZ2hlciBsZXZlbCBK U09OIGRhdHVtIGluIGZvcm1hdCBkZXNjcmliZWQgaW4gZnVuY3Rpb24KKwkJICogaGVhZGVyLgor CQkgKi8KKwkJanNvbl9kYXR1bSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEocm93X3RvX2pzb24sIGpz b25fZGF0dW0pOworCisJCS8qIERvbmUgd2l0aCB0aGUgdGVtcG9yYXJ5IHR1cGxlLiAqLworCQlo ZWFwX2ZyZWV0dXBsZSh0dXBsZSk7CisKKwkJLyogQWRkIHRvIHRoZSBhcnJheSBlbGVtZW50LiAq LworCQlqc29uX2RhdHVtcyA9IGxhcHBlbmQoanNvbl9kYXR1bXMsICh2b2lkICopIGpzb25fZGF0 dW0pOworCX0KKworCW51bV9jb25mbGljdHMgPSBsaXN0X2xlbmd0aChqc29uX2RhdHVtcyk7CisK Kwlqc29uX2RhdHVtX2FycmF5ID0gcGFsbG9jX2FycmF5KERhdHVtLCBudW1fY29uZmxpY3RzKTsK KworCWkgPSAwOworCWZvcmVhY2gobGMsIGpzb25fZGF0dW1zKQorCXsKKwkJanNvbl9kYXR1bV9h cnJheVtpXSA9IChEYXR1bSkgbGZpcnN0KGxjKTsKKwkJaSsrOworCX0KKworCS8qIENvbnN0cnVj dCB0aGUgSlNPTiBhcnJheSBEYXR1bS4gKi8KKwlnZXRfdHlwbGVuYnl2YWxhbGlnbihKU09OT0lE LCAmdHlwbGVuLCAmdHlwYnl2YWwsICZ0eXBhbGlnbik7CisJanNvbl9hcnJheV9kYXR1bSA9IFBv aW50ZXJHZXREYXR1bShjb25zdHJ1Y3RfYXJyYXkoanNvbl9kYXR1bV9hcnJheSwKKwkJCQkJCQkJ CQkJCQkgICBudW1fY29uZmxpY3RzLAorCQkJCQkJCQkJCQkJCSAgIEpTT05PSUQsCisJCQkJCQkJ CQkJCQkJICAgdHlwbGVuLAorCQkJCQkJCQkJCQkJCSAgIHR5cGJ5dmFsLAorCQkJCQkJCQkJCQkJ CSAgIHR5cGFsaWduKSk7CisJcGZyZWUoanNvbl9kYXR1bV9hcnJheSk7CisKKwlyZXR1cm4ganNv bl9hcnJheV9kYXR1bTsKK30KKworLyoKKyAqIHByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlCisg KgorICogVGhpcyByb3V0aW5lIHByZXBhcmVzIGEgdHVwbGUgZGV0YWlsaW5nIGEgY29uZmxpY3Qg ZW5jb3VudGVyZWQgZHVyaW5nCisgKiBsb2dpY2FsIHJlcGxpY2F0aW9uLiBUaGUgcHJlcGFyZWQg dHVwbGUgd2lsbCBiZSBzdG9yZWQgaW4KKyAqIE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3Rf bG9nX3R1cGxlIHdoaWNoIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIHRoZQorICogY29uZmxpY3Qg bG9nIHRhYmxlIGJ5IGNhbGxpbmcgSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZS4KKyAqLworc3RhdGlj IHZvaWQKK3ByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlv biByZWwsCisJCQkJCQkgICBSZWxhdGlvbiBjb25mbGljdGxvZ3JlbCwKKwkJCQkJCSAgIENvbmZs aWN0VHlwZSBjb25mbGljdF90eXBlLAorCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNs b3QsCisJCQkJCQkgICBMaXN0ICpjb25mbGljdHR1cGxlcywKKwkJCQkJCSAgIFR1cGxlVGFibGVT bG90ICpyZW1vdGVzbG90KQoreworCURhdHVtCQl2YWx1ZXNbTlVNX0NPTkZMSUNUX0FUVFJTXSA9 IHswfTsKKwlib29sCQludWxsc1tOVU1fQ09ORkxJQ1RfQVRUUlNdID0gezB9OworCWludAkJCWF0 dG5vOworCWNoYXIJICAgKnJlbW90ZV9vcmlnaW4gPSBOVUxMOworCU1lbW9yeUNvbnRleHQJb2xk Y3R4OworCisJQXNzZXJ0KE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID09 IE5VTEwpOworCisJLyogUG9wdWxhdGUgdGhlIHZhbHVlcyBhbmQgbnVsbHMgYXJyYXlzLiAqLwor CWF0dG5vID0gMDsKKwl2YWx1ZXNbYXR0bm8rK10gPSBPYmplY3RJZEdldERhdHVtKFJlbGF0aW9u R2V0UmVsaWQocmVsKSk7CisKKwl2YWx1ZXNbYXR0bm8rK10gPQorCQkJQ1N0cmluZ0dldFRleHRE YXR1bShnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSkpOworCisJ dmFsdWVzW2F0dG5vKytdID0gQ1N0cmluZ0dldFRleHREYXR1bShSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpKTsKKworCXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oQ29u ZmxpY3RUeXBlTmFtZXNbY29uZmxpY3RfdHlwZV0pOworCisJaWYgKFRyYW5zYWN0aW9uSWRJc1Zh bGlkKHJlbW90ZV94aWQpKQorCQl2YWx1ZXNbYXR0bm8rK10gPSBUcmFuc2FjdGlvbklkR2V0RGF0 dW0ocmVtb3RlX3hpZCk7CisJZWxzZQorCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwl2YWx1 ZXNbYXR0bm8rK10gPSBMU05HZXREYXR1bShyZW1vdGVfZmluYWxfbHNuKTsKKworCWlmIChyZW1v dGVfY29tbWl0X3RzID4gMCkKKwkJdmFsdWVzW2F0dG5vKytdID0gVGltZXN0YW1wVHpHZXREYXR1 bShyZW1vdGVfY29tbWl0X3RzKTsKKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKwor CWlmIChyZXBsb3JpZ2luX3hhY3Rfc3RhdGUub3JpZ2luICE9IEludmFsaWRSZXBsT3JpZ2luSWQp CisJCXJlcGxvcmlnaW5fYnlfb2lkKHJlcGxvcmlnaW5feGFjdF9zdGF0ZS5vcmlnaW4sIHRydWUs ICZyZW1vdGVfb3JpZ2luKTsKKworCWlmIChyZW1vdGVfb3JpZ2luICE9IE5VTEwpCisJCXZhbHVl c1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocmVtb3RlX29yaWdpbik7CisJZWxzZQor CQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwlpZiAoIVR1cElzTnVsbChyZW1vdGVzbG90KSkK KwkJdmFsdWVzW2F0dG5vKytdID0gdHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKHJlbW90 ZXNsb3QpOworCWVsc2UKKwkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJaWYgKCFUdXBJc051 bGwoc2VhcmNoc2xvdCkpCisJeworCQlPaWQJCXJlcGxpY2FfaW5kZXggPSBHZXRSZWxhdGlvbklk ZW50aXR5T3JQSyhyZWwpOworCisJCS8qCisJCSAqIElmIHRoZSB0YWJsZSBoYXMgYSB2YWxpZCBy ZXBsaWNhIGlkZW50aXR5IGluZGV4LCBidWlsZCB0aGUgaW5kZXgKKwkJICogSlNPTiBkYXR1bSBm cm9tIGtleSB2YWx1ZS4gT3RoZXJ3aXNlLCBjb25zdHJ1Y3QgaXQgZnJvbSB0aGUgY29tcGxldGUK KwkJICogdHVwbGUgaW4gUkVQTElDQSBJREVOVElUWSBGVUxMIGNhc2VzLgorCQkgKi8KKwkJaWYg KE9pZElzVmFsaWQocmVwbGljYV9pbmRleCkpCisJCQl2YWx1ZXNbYXR0bm8rK10gPSB0dXBsZV90 YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24oZXN0YXRlLCByZWwsCisJCQkJCQkJCQkJCQkJCQkJ cmVwbGljYV9pbmRleCwKKwkJCQkJCQkJCQkJCQkJCQlzZWFyY2hzbG90KTsKKwkJZWxzZQorCQkJ dmFsdWVzW2F0dG5vKytdID0gdHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKHNlYXJjaHNs b3QpOworCX0KKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCXZhbHVlc1thdHRu b10gPSBidWlsZF9sb2NhbF9jb25mbGljdHNfanNvbl9hcnJheShlc3RhdGUsIHJlbCwKKwkJCQkJ CQkJCQkJCQkgY29uZmxpY3RfdHlwZSwKKwkJCQkJCQkJCQkJCQkgY29uZmxpY3R0dXBsZXMpOwor CisJQXNzZXJ0KGF0dG5vICsgMSA9PSBOVU1fQ09ORkxJQ1RfQVRUUlMpOworCisJb2xkY3R4ID0g TWVtb3J5Q29udGV4dFN3aXRjaFRvKEFwcGx5Q29udGV4dCk7CisJTXlMb2dpY2FsUmVwV29ya2Vy LT5jb25mbGljdF9sb2dfdHVwbGUgPQorCQloZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNj cihjb25mbGljdGxvZ3JlbCksIHZhbHVlcywgbnVsbHMpOworCU1lbW9yeUNvbnRleHRTd2l0Y2hU byhvbGRjdHgpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9sYXVuY2hlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5j CmluZGV4IDMxM2UzMWZmMmUzLi4wNWEzMDM0MmY2OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYwpAQCAtNDg3LDYgKzQ4Nyw3IEBAIHJldHJ5OgogCXdvcmtl ci0+b2xkZXN0X25vbnJlbW92YWJsZV94aWQgPSByZXRhaW5fZGVhZF90dXBsZXMKIAkJPyBNeVJl cGxpY2F0aW9uU2xvdC0+ZGF0YS54bWluCiAJCTogSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJd29y a2VyLT5jb25mbGljdF9sb2dfdHVwbGUgPSBOVUxMOwogCXdvcmtlci0+bGFzdF9sc24gPSBJbnZh bGlkWExvZ1JlY1B0cjsKIAlUSU1FU1RBTVBfTk9CRUdJTih3b3JrZXItPmxhc3Rfc2VuZF90aW1l KTsKIAlUSU1FU1RBTVBfTk9CRUdJTih3b3JrZXItPmxhc3RfcmVjdl90aW1lKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IGEzZjI0MDZlZDgzLi43YjQ2Mjkw NGM5YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIu YworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC00ODcs NyArNDg3LDkgQEAgc3RhdGljIGJvb2wgTXlTdWJzY3JpcHRpb25WYWxpZCA9IGZhbHNlOwogc3Rh dGljIExpc3QgKm9uX2NvbW1pdF93YWtldXBfd29ya2Vyc19zdWJpZHMgPSBOSUw7CiAKIGJvb2wJ CWluX3JlbW90ZV90cmFuc2FjdGlvbiA9IGZhbHNlOwotc3RhdGljIFhMb2dSZWNQdHIgcmVtb3Rl X2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOworWExvZ1JlY1B0ciByZW1vdGVfZmluYWxf bHNuID0gSW52YWxpZFhMb2dSZWNQdHI7CitUcmFuc2FjdGlvbklkCXJlbW90ZV94aWQgPSBJbnZh bGlkVHJhbnNhY3Rpb25JZDsKK1RpbWVzdGFtcFR6CXJlbW90ZV9jb21taXRfdHMgPSAwOwogCiAv KiBmaWVsZHMgdmFsaWQgb25seSB3aGVuIHByb2Nlc3Npbmcgc3RyZWFtZWQgdHJhbnNhY3Rpb24g Ki8KIHN0YXRpYyBib29sIGluX3N0cmVhbWVkX3RyYW5zYWN0aW9uID0gZmFsc2U7CkBAIC0xMjM2 LDYgKzEyMzgsOCBAQCBhcHBseV9oYW5kbGVfYmVnaW4oU3RyaW5nSW5mbyBzKQogCXNldF9hcHBs eV9lcnJvcl9jb250ZXh0X3hhY3QoYmVnaW5fZGF0YS54aWQsIGJlZ2luX2RhdGEuZmluYWxfbHNu KTsKIAogCXJlbW90ZV9maW5hbF9sc24gPSBiZWdpbl9kYXRhLmZpbmFsX2xzbjsKKwlyZW1vdGVf Y29tbWl0X3RzID0gYmVnaW5fZGF0YS5jb21taXR0aW1lOworCXJlbW90ZV94aWQgPSBiZWdpbl9k YXRhLnhpZDsKIAogCW1heWJlX3N0YXJ0X3NraXBwaW5nX2NoYW5nZXMoYmVnaW5fZGF0YS5maW5h bF9sc24pOwogCkBAIC0xNzY3LDYgKzE3NzEsMTAgQEAgYXBwbHlfaGFuZGxlX3N0cmVhbV9zdGFy dChTdHJpbmdJbmZvIHMpCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9UT0NPTF9WSU9MQVRJT04p LAogCQkJCSBlcnJtc2dfaW50ZXJuYWwoImludmFsaWQgdHJhbnNhY3Rpb24gSUQgaW4gc3RyZWFt ZWQgcmVwbGljYXRpb24gdHJhbnNhY3Rpb24iKSkpOwogCisJcmVtb3RlX3hpZCA9IHN0cmVhbV94 aWQ7CisJcmVtb3RlX2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOworCXJlbW90ZV9jb21t aXRfdHMgPSAwOworCiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdChzdHJlYW1feGlkLCBJ bnZhbGlkWExvZ1JlY1B0cik7CiAKIAkvKiBUcnkgdG8gYWxsb2NhdGUgYSB3b3JrZXIgZm9yIHRo ZSBzdHJlYW1pbmcgdHJhbnNhY3Rpb24uICovCkBAIC0yNDQwLDYgKzI0NDgsOSBAQCBhcHBseV9o YW5kbGVfc3RyZWFtX2NvbW1pdChTdHJpbmdJbmZvIHMpCiAJCQkvKiBVbmxpbmsgdGhlIGZpbGVz IHdpdGggc2VyaWFsaXplZCBjaGFuZ2VzIGFuZCBzdWJ4YWN0IGluZm8uICovCiAJCQlzdHJlYW1f Y2xlYW51cF9maWxlcyhNeUxvZ2ljYWxSZXBXb3JrZXItPnN1YmlkLCB4aWQpOwogCisJCQkvKiBT ZXQgcmVtb3RlX2NvbW1pdF90cyBmb3IgY29uZmxpY3QgbG9nZ2luZy4gKi8KKwkJCXJlbW90ZV9j b21taXRfdHMgPSBjb21taXRfZGF0YS5jb21taXR0aW1lOworCiAJCQllbG9nKERFQlVHMSwgImZp bmlzaGVkIHByb2Nlc3NpbmcgdGhlIFNUUkVBTSBDT01NSVQgY29tbWFuZCIpOwogCQkJYnJlYWs7 CiAKQEAgLTU2NjYsNiArNTY3Nyw3IEBAIHN0YXJ0X2FwcGx5KFhMb2dSZWNQdHIgb3JpZ2luX3N0 YXJ0cG9zKQogCQkJICovCiAJCQlBYm9ydE91dE9mQW55VHJhbnNhY3Rpb24oKTsKIAkJCXBnc3Rh dF9yZXBvcnRfc3Vic2NyaXB0aW9uX2Vycm9yKE15U3Vic2NyaXB0aW9uLT5vaWQpOworCQkJUHJv Y2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKCk7CiAKIAkJCVBHX1JFX1RIUk9XKCk7CiAJCX0K QEAgLTYwNDAsNiArNjA1Miw4IEBAIERpc2FibGVTdWJzY3JpcHRpb25BbmRFeGl0KHZvaWQpCiAJ ICovCiAJcGdzdGF0X3JlcG9ydF9zdWJzY3JpcHRpb25fZXJyb3IoTXlMb2dpY2FsUmVwV29ya2Vy LT5zdWJpZCk7CiAKKwlQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUoKTsKKwogCS8qIERp c2FibGUgdGhlIHN1YnNjcmlwdGlvbiAqLwogCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggYi9zcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCmluZGV4IGEwMTdlMWU2Y2I1Li5iNzI3Y2MyODVl OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaAorKysgYi9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCkBAIC0xMTUsNSArMTE1LDggQEAgZXh0 ZXJuIHZvaWQgUmVwb3J0QXBwbHlDb25mbGljdChFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5m byAqcmVsaW5mbywKIAkJCQkJCQkJVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNsb3QsCiAJCQkJCQkJ CVR1cGxlVGFibGVTbG90ICpyZW1vdGVzbG90LAogCQkJCQkJCQlMaXN0ICpjb25mbGljdHR1cGxl cyk7CitleHRlcm4gdm9pZCBQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUodm9pZCk7CiBl eHRlcm4gdm9pZCBJbml0Q29uZmxpY3RJbmRleGVzKFJlc3VsdFJlbEluZm8gKnJlbEluZm8pOwor ZXh0ZXJuIFJlbGF0aW9uIEdldENvbmZsaWN0TG9nRGVzdEFuZFRhYmxlKENvbmZsaWN0TG9nRGVz dCAqbG9nX2Rlc3QpOworZXh0ZXJuIHZvaWQgSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShSZWxhdGlv biBjb25mbGljdGxvZ3JlbCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2Vy X2ludGVybmFsLmgKaW5kZXggNzQ1YjdkOWU5NjkuLjZiNjUyNWRjMmUyIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaAorKysgYi9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaApAQCAtMTAwLDYgKzEwMCw5IEBAIHR5cGVk ZWYgc3RydWN0IExvZ2ljYWxSZXBXb3JrZXIKIAkgKi8KIAlUcmFuc2FjdGlvbklkIG9sZGVzdF9u b25yZW1vdmFibGVfeGlkOwogCisJLyogQSBjb25mbGljdCBsb2cgdHVwbGUgdGhhdCBpcyBwcmVw YXJlZCBidXQgbm90IHlldCBpbnNlcnRlZC4gKi8KKwlIZWFwVHVwbGUJY29uZmxpY3RfbG9nX3R1 cGxlOworCiAJLyogU3RhdHMuICovCiAJWExvZ1JlY1B0cglsYXN0X2xzbjsKIAlUaW1lc3RhbXBU eiBsYXN0X3NlbmRfdGltZTsKQEAgLTI1NSw2ICsyNTgsMTAgQEAgZXh0ZXJuIFBHRExMSU1QT1JU IGJvb2wgSW5pdGlhbGl6aW5nQXBwbHlXb3JrZXI7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBMaXN0 ICp0YWJsZV9zdGF0ZXNfbm90X3JlYWR5OwogCitleHRlcm4gWExvZ1JlY1B0ciByZW1vdGVfZmlu YWxfbHNuOworZXh0ZXJuIFRpbWVzdGFtcFR6IHJlbW90ZV9jb21taXRfdHM7CitleHRlcm4gVHJh bnNhY3Rpb25JZCByZW1vdGVfeGlkOworCiBleHRlcm4gdm9pZCBsb2dpY2FscmVwX3dvcmtlcl9h dHRhY2goaW50IHNsb3QpOwogZXh0ZXJuIExvZ2ljYWxSZXBXb3JrZXIgKmxvZ2ljYWxyZXBfd29y a2VyX2ZpbmQoTG9naWNhbFJlcFdvcmtlclR5cGUgd3R5cGUsCiAJCQkJCQkJCQkJCQlPaWQgc3Vi aWQsIE9pZCByZWxpZCwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9v cmlnaW4ucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfb3JpZ2luLnBsCmluZGV4IDZi YzZiNzg3NGMyLi41ZjRkMDBiZGQzMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDMwX29yaWdpbi5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfb3JpZ2lu LnBsCkBAIC0xNjYsNyArMTY2LDcgQEAgaXMoJHJlc3VsdCwgcXEoMzIpLCAnVGhlIG5vZGVfQSBk YXRhIHJlcGxpY2F0ZWQgdG8gbm9kZV9CJyk7CiAkbm9kZV9DLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIlVQREFURSAkdGFiIFNFVCBhID0gMzMgV0hFUkUgYSA9IDMyOyIpOwogCiAkbm9kZV9CLT53 YWl0X2Zvcl9sb2coCi0JcXIvY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1YmxpYy4k dGFiX3VucXVvdGVkIjogY29uZmxpY3Q9dXBkYXRlX29yaWdpbl9kaWZmZXJzLipcbi4qREVUQUlM Oi4qIFVwZGF0aW5nIHRoZSByb3cgdGhhdCB3YXMgbW9kaWZpZWQgYnkgYSBkaWZmZXJlbnQgb3Jp Z2luICIuKiIgaW4gdHJhbnNhY3Rpb24gWzAtOV0rIGF0IC4qOiBsb2NhbCByb3cgXCgzMlwpLCBy ZW1vdGUgcm93IFwoMzNcKSwgcmVwbGljYSBpZGVudGl0eSBcKGFcKT1cKDMyXCkuLworCXFyL2Nv bmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWMuJHRhYiI6IGNvbmZsaWN0PXVwZGF0 ZV9vcmlnaW5fZGlmZmVycy4qXG4uKkRFVEFJTDouKiBVcGRhdGluZyB0aGUgcm93IHRoYXQgd2Fz IG1vZGlmaWVkIGJ5IGEgZGlmZmVyZW50IG9yaWdpbiAiLioiIGluIHRyYW5zYWN0aW9uIFswLTld KyBhdCAuKjogbG9jYWwgcm93IFwoMzJcKSwgcmVtb3RlIHJvdyBcKDMzXCksIHJlcGxpY2EgaWRl bnRpdHkgXChhXCk9XCgzMlwpLi8KICk7CiAKICRub2RlX0ItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiREVMRVRFIEZST00gJHRhYjsiKTsKQEAgLTE4Miw3ICsxODIsNyBAQCBpcygkcmVzdWx0LCBx cSgzMyksICdUaGUgbm9kZV9BIGRhdGEgcmVwbGljYXRlZCB0byBub2RlX0InKTsKICRub2RlX0Mt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiREVMRVRFIEZST00gJHRhYiBXSEVSRSBhID0gMzM7Iik7 CiAKICRub2RlX0ItPndhaXRfZm9yX2xvZygKLQlxci9jb25mbGljdCBkZXRlY3RlZCBvbiByZWxh dGlvbiAicHVibGljLiR0YWJfdW5xdW90ZWQiOiBjb25mbGljdD1kZWxldGVfb3JpZ2luX2RpZmZl cnMuKlxuLipERVRBSUw6LiogRGVsZXRpbmcgdGhlIHJvdyB0aGF0IHdhcyBtb2RpZmllZCBieSBh IGRpZmZlcmVudCBvcmlnaW4gIi4qIiBpbiB0cmFuc2FjdGlvbiBbMC05XSsgYXQgLio6IGxvY2Fs IHJvdyBcKDMzXCksIHJlcGxpY2EgaWRlbnRpdHkgXChhXCk9XCgzM1wpLiovCisJcXIvY29uZmxp Y3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1YmxpYy4kdGFiIjogY29uZmxpY3Q9ZGVsZXRlX29y aWdpbl9kaWZmZXJzLipcbi4qREVUQUlMOi4qIERlbGV0aW5nIHRoZSByb3cgdGhhdCB3YXMgbW9k aWZpZWQgYnkgYSBkaWZmZXJlbnQgb3JpZ2luICIuKiIgaW4gdHJhbnNhY3Rpb24gWzAtOV0rIGF0 IC4qOiBsb2NhbCByb3cgXCgzM1wpLCByZXBsaWNhIGlkZW50aXR5IFwoYVwpPVwoMzNcKS4qLwog KTsKIAogIyBUaGUgcmVtYWluaW5nIHRlc3RzIG5vIGxvbmdlciB0ZXN0IGNvbmZsaWN0IGRldGVj dGlvbi4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9jb25mbGljdHMu cGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3RzLnBsCmluZGV4IGYyM2Zl NmFmMmE1Li5kZTJkMzdjODc1NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3Qv MDM1X2NvbmZsaWN0cy5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxp Y3RzLnBsCkBAIC01MCw3ICs1MCw3IEBAICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKIAkn cG9zdGdyZXMnLAogCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHN1Yl90YWIKIAkgQ09OTkVDVElPTiAn JHB1Ymxpc2hlcl9jb25uc3RyIGFwcGxpY2F0aW9uX25hbWU9JGFwcG5hbWUnCi0JIFBVQkxJQ0FU SU9OIHB1Yl90YWI7Iik7CisJIFBVQkxJQ0FUSU9OIHB1Yl90YWIgV0lUSCAoY29uZmxpY3RfbG9n X2Rlc3RpbmF0aW9uPWFsbCkiKTsKIAogIyBXYWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmMgdG8g ZmluaXNoCiAkbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9k ZV9wdWJsaXNoZXIsICRhcHBuYW1lKTsKQEAgLTg0LDEwICs4NCwzNSBAQCAkbm9kZV9zdWJzY3Jp YmVyLT53YWl0X2Zvcl9sb2coCiAuKktleSBhbHJlYWR5IGV4aXN0cyBpbiB1bmlxdWUgaW5kZXgg XCJjb25mX3RhYl9jX2tleVwiLCBtb2RpZmllZCBpbiB0cmFuc2FjdGlvbiAuKjoga2V5IFwoY1wp PVwoNFwpLCBsb2NhbCByb3cgXCg0LCA0LCA0XCkuLywKIAkkbG9nX29mZnNldCk7CiAKKyMgVmVy aWZ5IHRoZSBjb250ZW50cyBvZiB0aGUgQ29uZmxpY3QgTG9nIFRhYmxlIChDTFQpCisjIFRoaXMg c2VjdGlvbiBlbnN1cmVzIHRoYXQgdGhlIENMVCBjb250YWlucyB0aGUgZXhwZWN0ZWQKKyMgdHlw ZSBhbmQgc3BlY2lmaWMga2V5IGRhdGEuCitteSAkc3ViaWQgPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBX SEVSRSBzdWJuYW1lID0gJ3N1Yl90YWInOyIpOworbXkgJGNsdCA9ICJwZ19jb25mbGljdC5wZ19j b25mbGljdF9sb2dfJHN1YmlkIjsKKworIyBXYWl0IGZvciB0aGUgY29uZmxpY3QgdG8gYmUgbG9n Z2VkIGluIHRoZSBDTFQKK215ICRsb2dfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1 ZXJ5X3VudGlsKAorICAgICdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+IDAgRlJP TSAkY2x0OyIKKyk7CisKK215ICRjb25mbGljdF9jaGVjayA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPj0gMSBGUk9NICRjbHQg V0hFUkUgY29uZmxpY3RfdHlwZSA9ICdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzJzsiKTsKK2lz KCRjb25mbGljdF9jaGVjaywgJ3QnLCAnVmVyaWZpZWQgbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0 cyBsb2dnZWQgaW50byBjb25mbGljdCBsb2cgdGFibGUnKTsKKworbXkgJGpzb25fcXVlcnkgPSAi U0VMRUNUIGxvY2FsX2NvbmZsaWN0cyBGUk9NICRjbHQ7IjsKK215ICRyYXdfanNvbiA9ICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkanNvbl9xdWVyeSk7CisKKyMgVmVy aWZ5IHRoYXQgJzInIGlzIHByZXNlbnQgaW5zaWRlIHRoZSBKU09OIHN0cnVjdHVyZSB1c2luZyBh IHJlZ2V4CisjIFRoaXMgbWF0Y2hlcyB0aGUga2V5L3ZhbHVlIHBhdHRlcm4gZm9yICJhIjogMgor bGlrZSgkcmF3X2pzb24sIHFyL1xcImFcXCI6Mi8sICdWZXJpZmllZCB0aGF0IGtleSAyIGV4aXN0 cyBpbiB0aGUgbG9jYWxfY29uZmxpY3RzJyk7CisKIHBhc3MoJ211bHRpcGxlX3VuaXF1ZV9jb25m bGljdHMgZGV0ZWN0ZWQgZHVyaW5nIGluc2VydCcpOwogCiAjIFRydW5jYXRlIHRhYmxlIHRvIGdl dCByaWQgb2YgdGhlIGVycm9yCiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIlRSVU5DQVRFIGNvbmZfdGFiOyIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJERUxFVEUgRlJPTSAkY2x0Iik7CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFRlc3QgbXVsdGlwbGVfdW5pcXVlX2NvbmZs aWN0cyBkdWUgdG8gVVBEQVRFCkBAIC0xMTQsNiArMTM5LDI2IEBAICRub2RlX3N1YnNjcmliZXIt PndhaXRfZm9yX2xvZygKIC4qS2V5IGFscmVhZHkgZXhpc3RzIGluIHVuaXF1ZSBpbmRleCBcImNv bmZfdGFiX2Nfa2V5XCIsIG1vZGlmaWVkIGluIHRyYW5zYWN0aW9uIC4qOiBrZXkgXChjXCk9XCg4 XCksIGxvY2FsIHJvdyBcKDgsIDgsIDhcKS4vLAogCSRsb2dfb2Zmc2V0KTsKIAorIyBWZXJpZnkg dGhlIGNvbnRlbnRzIG9mIHRoZSBDb25mbGljdCBMb2cgVGFibGUgKENMVCkKKyMgVGhpcyBzZWN0 aW9uIGVuc3VyZXMgdGhhdCB0aGUgQ0xUIGNvbnRhaW5zIHRoZSBleHBlY3RlZAorIyB0eXBlIGFu ZCBzcGVjaWZpYyBrZXkgZGF0YS4KKworIyBXYWl0IGZvciB0aGUgY29uZmxpY3QgdG8gYmUgbG9n Z2VkIGluIHRoZSBDTFQKKyRsb2dfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1ZXJ5 X3VudGlsKAorICAgICdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+IDAgRlJPTSAk Y2x0OyIKKyk7CisKKyRjb25mbGljdF9jaGVjayA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPj0gMSBGUk9NICRjbHQgV0hFUkUg Y29uZmxpY3RfdHlwZSA9ICdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzJzsiKTsKK2lzKCRjb25m bGljdF9jaGVjaywgJ3QnLCAnVmVyaWZpZWQgbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyBsb2dn ZWQgaW50byBjb25mbGljdCBsb2cgdGFibGUnKTsKKworJHJhd19qc29uID0gJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICRqc29uX3F1ZXJ5KTsKKworIyBWZXJpZnkgdGhh dCAnNicgaXMgcHJlc2VudCBpbnNpZGUgdGhlIEpTT04gc3RydWN0dXJlIHVzaW5nIGEgcmVnZXgK KyMgVGhpcyBtYXRjaGVzIHRoZSBrZXkvdmFsdWUgcGF0dGVybiBmb3IgImEiOiA2CitsaWtlKCRy YXdfanNvbiwgcXIvXFwiYVxcIjo2LywgJ1ZlcmlmaWVkIHRoYXQga2V5IDYgZXhpc3RzIGluIHRo ZSBsb2NhbF9jb25mbGljdHMnKTsKKwogcGFzcygnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyBk ZXRlY3RlZCBkdXJpbmcgdXBkYXRlJyk7CiAKICMgVHJ1bmNhdGUgdGFibGUgdG8gZ2V0IHJpZCBv ZiB0aGUgZXJyb3IKLS0gCjIuNDkuMAoK --0000000000002dd2ab06537f74b3 Content-Type: application/octet-stream; name="v46-0003-Preserve-conflict-log-destination-and-subscripti.patch" Content-Disposition: attachment; filename="v46-0003-Preserve-conflict-log-destination-and-subscripti.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq0t11i72 RnJvbSA3YTllMzU4NGU2ZWViZjVmMjE2NWJjMGQ1YWVkN2IxOTFkNDYwOTkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogRnJpLCA1IEp1biAyMDI2IDE1OjUxOjIyICswNTMwClN1YmplY3Q6IFtQQVRDSCB2NDYg My81XSBQcmVzZXJ2ZSBjb25mbGljdCBsb2cgZGVzdGluYXRpb24gYW5kIHN1YnNjcmlwdGlvbgog T0lEIGZvciBzdWJzY3JpcHRpb25zCgpTdXBwb3J0IHBnX2R1bXAgdG8gZHVtcCBhbmQgcmVzdG9y ZSB0aGUgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHNldHRpbmcgZm9yCnN1YnNjcmlwdGlvbnMu CgpEdXJpbmcgYSBub3JtYWwgQ1JFQVRFIFNVQlNDUklQVElPTiwgYSBjb25mbGljdCBsb2cgdGFi bGUgaXMgY3JlYXRlZAphdXRvbWF0aWNhbGx5IHdoZW4gcmVxdWlyZWQuIEhvd2V2ZXIsIGR1cmlu ZyBiaW5hcnkgdXBncmFkZSwgdGhlIGNvbmZsaWN0CmxvZyB0YWJsZSB3aWxsIGFscmVhZHkgZXhp c3QgYW5kIG11c3QgYmUgcmV1c2VkIHJhdGhlciB0aGFuIHJlY3JlYXRlZCwgYW5kCnRoZSBzdWJz Y3JpcHRpb24gbXVzdCByZXRhaW4gaXRzIG9yaWdpbmFsIE9JRCB0byBjb3JyZWN0bHkgcmUtZXN0 YWJsaXNoCmNhdGFsb2cgcmVsYXRpb25zaGlwcy4KClRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2aW9y LCBwZ19kdW1wIG5vdyBlbWl0cyBhbiBBTFRFUiBTVUJTQ1JJUFRJT04gY29tbWFuZAphZnRlciBz dWJzY3JpcHRpb24gY3JlYXRpb24gdG8gcmVzdG9yZSB0aGUgY29uZmxpY3RfbG9nX2Rlc3RpbmF0 aW9uIHNldHRpbmcuCi0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgICAgICAgICAgICAg ICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMg ICAgICAgfCAgNTQgKysrKysrKystCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9z dXBwb3J0LmMgICAgfCAgMTAgKysKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAg ICAgICAgICAgICB8IDExMyArKysrKysrKysrKysrKysrKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVt cF9zb3J0LmMgICAgICAgICAgICAgICAgfCAgMzEgKysrKysKIHNyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL2Jpbi9wZ191cGdyYWRlL3Bn X3VwZ3JhZGUuYyAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iaW4vcGdfdXBncmFkZS90LzAw NF9zdWJzY3JpcHRpb24ucGwgICAgICB8ICAxNCArKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvYmlu YXJ5X3VwZ3JhZGUuaCAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0ICAgICAgICAgICAgICAgfCAgIDQgKwogLi4uL2V4cGVjdGVkL3NwZ2lzdF9uYW1lX29w cy5vdXQgICAgICAgICAgICAgIHwgICA2ICstCiAxMiBmaWxlcyBjaGFuZ2VkLCAyMzMgaW5zZXJ0 aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwppbmRleCA1ZDA3ZGNjMWM1Yi4u MzYzODk3NjdhMWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC0zMTIsNiArMzEyLDggQEAgaGVhcF9jcmVh dGUoY29uc3QgY2hhciAqcmVsbmFtZSwKIAkgKiBCdXQgYWxsb3cgY3JlYXRpbmcgaW5kZXhlcyBv biByZWxhdGlvbnMgaW4gcGdfY2F0YWxvZyBldmVuIGlmCiAJICogYWxsb3dfc3lzdGVtX3RhYmxl X21vZHMgPSBvZmYsIHVwcGVyIGxheWVycyBhbHJlYWR5IGd1YXJhbnRlZSBpdCdzIG9uIGEKIAkg KiB1c2VyIGRlZmluZWQgcmVsYXRpb24sIG5vdCBhIHN5c3RlbSBvbmUuCisJICoKKwkgKiBBbGxv dyBjcmVhdGlvbiBvZiBjb25mbGljdCB0YWJsZSBpbiBiaW5hcnktdXBncmFkZSBtb2RlLgogCSAq LwogCWlmICghYWxsb3dfc3lzdGVtX3RhYmxlX21vZHMgJiYgSXNOb3JtYWxQcm9jZXNzaW5nTW9k ZSgpKQogCXsKQEAgLTMyMyw3ICszMjUsNyBAQCBoZWFwX2NyZWF0ZShjb25zdCBjaGFyICpyZWxu YW1lLAogCQkJCQkJCWdldF9xdWFsaWZpZWRfb2JqbmFtZShyZWxuYW1lc3BhY2UsIHJlbG5hbWUp KSwKIAkJCQkJIGVycmRldGFpbCgiU3lzdGVtIGNhdGFsb2cgbW9kaWZpY2F0aW9ucyBhcmUgY3Vy cmVudGx5IGRpc2FsbG93ZWQuIikpKTsKIAotCQlpZiAoSXNDb25mbGljdExvZ1RhYmxlTmFtZXNw YWNlKHJlbG5hbWVzcGFjZSkpCisJCWlmICghSXNCaW5hcnlVcGdyYWRlICYmIElzQ29uZmxpY3RM b2dUYWJsZU5hbWVzcGFjZShyZWxuYW1lc3BhY2UpKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKIAkJCQkJIGVycm1zZygi cGVybWlzc2lvbiBkZW5pZWQgdG8gY3JlYXRlIFwiJXNcIiIsCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z dWJzY3JpcHRpb25jbWRzLmMKaW5kZXggN2QwOWI4MGJhNWYuLmU5OGU5ZjI4YWU3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5j bHVkZSAiYWNjZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3R3b3BoYXNlLmgiCiAjaW5j bHVkZSAiYWNjZXNzL3hhY3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2JpbmFyeV91cGdyYWRlLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9jYXRhbG9nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRl bmN5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgpAQCAtODYsNiArODcsMTIgQEAK IC8qIGNoZWNrIGlmIHRoZSAndmFsJyBoYXMgJ2JpdHMnIHNldCAqLwogI2RlZmluZSBJc1NldCh2 YWwsIGJpdHMpICAoKCh2YWwpICYgKGJpdHMpKSA9PSAoYml0cykpCiAKKy8qCisgKiBUaGlzIHdp bGwgYmUgc2V0IGJ5IHRoZSBwZ191cGdyYWRlX3N1cHBvcnQgZnVuY3Rpb24gLS0KKyAqIGJpbmFy eV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQoKS4KKyAqLworT2lkCQkJYmlu YXJ5X3VwZ3JhZGVfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkID0gSW52YWxpZE9pZDsKKwogLyoK ICAqIFN0cnVjdHVyZSB0byBob2xkIGEgYml0bWFwIHJlcHJlc2VudGluZyB0aGUgdXNlci1wcm92 aWRlZCBDUkVBVEUvQUxURVIKICAqIFNVQlNDUklQVElPTiBjb21tYW5kIG9wdGlvbnMgYW5kIHRo ZSBwYXJzZWQvZGVmYXVsdCB2YWx1ZXMgb2YgZWFjaCBvZiB0aGVtLgpAQCAtNzk3LDggKzgwNCwy MSBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3Jp cHRpb25TdG10ICpzdG10LAogCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKIAlt ZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsKIAotCXN1YmlkID0gR2V0TmV3T2lk V2l0aEluZGV4KHJlbCwgU3Vic2NyaXB0aW9uT2JqZWN0SW5kZXhJZCwKLQkJCQkJCQkgICBBbnVt X3BnX3N1YnNjcmlwdGlvbl9vaWQpOworCS8qIFVzZSBiaW5hcnktdXBncmFkZSBvdmVycmlkZSBm b3IgcGdfc3Vic2NyaXB0aW9uLm9pZD8gKi8KKwlpZiAoSXNCaW5hcnlVcGdyYWRlKQorCXsKKwkJ aWYgKCFPaWRJc1ZhbGlkKGJpbmFyeV91cGdyYWRlX25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCkp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1F VEVSX1ZBTFVFKSwKKwkJCQkJIGVycm1zZygicGdfc3Vic2NyaXB0aW9uIE9JRCB2YWx1ZSBub3Qg c2V0IHdoZW4gaW4gYmluYXJ5IHVwZ3JhZGUgbW9kZSIpKSk7CisKKwkJc3ViaWQgPSBiaW5hcnlf dXBncmFkZV9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQ7CisJCWJpbmFyeV91cGdyYWRlX25leHRf cGdfc3Vic2NyaXB0aW9uX29pZCA9IEludmFsaWRPaWQ7CisJfQorCWVsc2UKKwkJc3ViaWQgPSBH ZXROZXdPaWRXaXRoSW5kZXgocmVsLCBTdWJzY3JpcHRpb25PYmplY3RJbmRleElkLAorCQkJCQkJ CQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9vaWQpOworCiAJdmFsdWVzW0FudW1fcGdfc3Vic2Ny aXB0aW9uX29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShzdWJpZCk7CiAJdmFsdWVzW0FudW1f cGdfc3Vic2NyaXB0aW9uX3N1YmRiaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oTXlEYXRhYmFz ZUlkKTsKIAl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vic2tpcGxzbiAtIDFdID0gTFNO R2V0RGF0dW0oSW52YWxpZFhMb2dSZWNQdHIpOwpAQCAtMTUxMCwxOCArMTUzMCw0MCBAQCBhbHRl cl9zdWJfY29uZmxpY3Rsb2dkZXN0aW5hdGlvbihTdWJzY3JpcHRpb24gKnN1YiwgQ29uZmxpY3RM b2dEZXN0IG9sZGxvZ2Rlc3QsCiAJCXsKIAkJCU9iamVjdEFkZHJlc3MgY2x0YWRkcjsKIAkJCU9i amVjdEFkZHJlc3Mgc3Vib2JqOworCQkJY2hhciAgICAgICAgICByZWxuYW1lW05BTUVEQVRBTEVO XTsKIAotCQkJcmVsaWQgPSBjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKHN1Yi0+b2lkLCBzdWIt Pm5hbWUsIHN1Yi0+b3duZXIpOwotCQkJdXBkYXRlX3JlbGlkID0gdHJ1ZTsKKwkJCXNucHJpbnRm KHJlbG5hbWUsIE5BTUVEQVRBTEVOLCAicGdfY29uZmxpY3RfbG9nXyV1Iiwgc3ViLT5vaWQpOwog CiAJCQkvKgotCQkJICogRXN0YWJsaXNoIGFuIGludGVybmFsIGRlcGVuZGVuY3kgYmV0d2VlbiB0 aGUgY29uZmxpY3QgbG9nIHRhYmxlCi0JCQkgKiBhbmQgdGhlIHN1YnNjcmlwdGlvbi4gIEZvciBk ZXRhaWxzIHJlZmVyIGNvbW1lbnRzIGluCisJCQkgKiBJbiB1cGdyYWRlIHNjZW5hcmlvcywgb2xk X2Rlc3QgcmVmbGVjdHMgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YKKwkJCSAqIGEgbmV3bHkgY3Jl YXRlZCBzdWJzY3JpcHRpb24gKGkuZS4sIG5vIGNvbmZsaWN0IGxvZ2dpbmcgdG8KKwkJCSAqIHRh YmxlKSBIb3dldmVyLCB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIHdpbGwgYWxyZWFkeSBleGlzdCBm cm9tCisJCQkgKiB0aGUgdXBncmFkZWQgY2x1c3Rlci4gIEluIHN1Y2ggY2FzZXMsIHdlIG5lZWQg dG8gZGV0ZWN0IHRoZQorCQkJICogcHJlLWV4aXN0aW5nIHRhYmxlIGFuZCB1cGRhdGUgdGhlIGNh dGFsb2cgc3RhdGUgdG8gYXNzb2NpYXRlIGl0CisJCQkgKiB3aXRoIHRoZSBzdWJzY3JpcHRpb24g aW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBvbmUuCisJCQkgKi8KKwkJCXJlbGlkID0gZ2V0X3Jl bG5hbWVfcmVsaWQocmVsbmFtZSwgUEdfQ09ORkxJQ1RfTkFNRVNQQUNFKTsKKwkJCWlmIChPaWRJ c1ZhbGlkKHJlbGlkKSkKKwkJCXsKKwkJCQkvKiBFeGlzdGluZyB0YWJsZSBmcm9tIHVwZ3JhZGUg Ki8KKwkJCQlBc3NlcnQoSXNCaW5hcnlVcGdyYWRlKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJ CQlyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFtZSwK KwkJCQkJCQkJCQkJCSAgc3ViLT5vd25lcik7CisJCQl9CisKKwkJCS8qCisJCQkgKiBFc3RhYmxp c2ggYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZSBjb25mbGljdCBsb2cKKwkJCSAq IHRhYmxlIGFuZCB0aGUgc3Vic2NyaXB0aW9uLiAgRm9yIGRldGFpbHMgcmVmZXIgY29tbWVudHMg aW4KIAkJCSAqIENyZWF0ZVN1YnNjcmlwdGlvbiBmdW5jdGlvbi4KIAkJCSAqLwogCQkJT2JqZWN0 QWRkcmVzc1NldChjbHRhZGRyLCBSZWxhdGlvblJlbGF0aW9uSWQsIHJlbGlkKTsKIAkJCU9iamVj dEFkZHJlc3NTZXQoc3Vib2JqLCBTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWItPm9pZCk7CiAJ CQlyZWNvcmREZXBlbmRlbmN5T24oJmNsdGFkZHIsICZzdWJvYmosIERFUEVOREVOQ1lfSU5URVJO QUwpOworCisJCQl1cGRhdGVfcmVsaWQgPSB0cnVlOwogCQl9CiAJfQogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMKaW5kZXggYjUwNWE2YjRmZWUuLjU5YzNlN2Yw MTQ2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0 LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCkBAIC0x ODEsNiArMTgxLDE2IEBAIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX2F1dGhpZF9vaWQoUEdf RlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fVk9JRCgpOwogfQogCitEYXR1bQorYmluYXJ5X3Vw Z3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9uX29pZChQR19GVU5DVElPTl9BUkdTKQorewor CU9pZAkJCXN1YmlkID0gUEdfR0VUQVJHX09JRCgwKTsKKworCUNIRUNLX0lTX0JJTkFSWV9VUEdS QURFOworCWJpbmFyeV91cGdyYWRlX25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCA9IHN1YmlkOwor CVBHX1JFVFVSTl9WT0lEKCk7Cit9CisKIERhdHVtCiBiaW5hcnlfdXBncmFkZV9jcmVhdGVfZW1w dHlfZXh0ZW5zaW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBkNTZkY2M3 MDFjZS4uZjI2MDAzNTg3OWQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMTk4MSw2ICsxOTgxLDggQEAgY2hl Y2tFeHRlbnNpb25NZW1iZXJzaGlwKER1bXBhYmxlT2JqZWN0ICpkb2JqLCBBcmNoaXZlICpmb3V0 KQogc3RhdGljIHZvaWQKIHNlbGVjdER1bXBhYmxlTmFtZXNwYWNlKE5hbWVzcGFjZUluZm8gKm5z aW5mbywgQXJjaGl2ZSAqZm91dCkKIHsKKwlEdW1wT3B0aW9ucyAqZG9wdCA9IGZvdXQtPmRvcHQ7 CisKIAkvKgogCSAqIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04gdHlwaWNhbGx5IGltcGxpZXMg YSBDUkVBVEUgU0NIRU1BIHN0YXRlbWVudAogCSAqIGFuZCAoZm9yIC0tY2xlYW4pIGEgRFJPUCBT Q0hFTUEgc3RhdGVtZW50LiAgKEluIHRoZSBhYnNlbmNlIG9mCkBAIC0yMDEwLDYgKzIwMTIsMzIg QEAgc2VsZWN0RHVtcGFibGVOYW1lc3BhY2UoTmFtZXNwYWNlSW5mbyAqbnNpbmZvLCBBcmNoaXZl ICpmb3V0KQogCQkgKi8KIAkJbnNpbmZvLT5kb2JqLmR1bXBfY29udGFpbnMgPSBuc2luZm8tPmRv YmouZHVtcCA9IERVTVBfQ09NUE9ORU5UX0FDTDsKIAl9CisJZWxzZSBpZiAoc3RyY21wKG5zaW5m by0+ZG9iai5uYW1lLCAicGdfY29uZmxpY3QiKSA9PSAwKQorCXsKKwkJaWYgKGRvcHQtPmJpbmFy eV91cGdyYWRlKQorCQl7CisJCQkvKgorCQkJICogVGhlIHBnX2NvbmZsaWN0IHNjaGVtYSBpcyBh IHN0cmFuZ2UgYmVhc3QgdGhhdCBzaXRzIGluIGEgc29ydAorCQkJICogb2Ygbm8tbWFucy1sYW5k IGJldHdlZW4gYmVpbmcgYSBzeXN0ZW0gb2JqZWN0IGFuZCBhIHVzZXIKKwkJCSAqIG9iamVjdC4g Q1JFQVRFIFNDSEVNQSB3b3VsZCBmYWlsLCBzbyBpdHMKKwkJCSAqIERVTVBfQ09NUE9ORU5UX0RF RklOSVRJT04gaXMganVzdCBhIGNvbW1lbnQuCisJCQkgKi8KKwkJCW5zaW5mby0+Y3JlYXRlID0g ZmFsc2U7CisJCQluc2luZm8tPmRvYmouZHVtcCA9IERVTVBfQ09NUE9ORU5UX0FMTDsKKwkJCW5z aW5mby0+ZG9iai5kdW1wICY9IH5EVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OOworCQkJbnNpbmZv LT5kb2JqLmR1bXBfY29udGFpbnMgPSBEVU1QX0NPTVBPTkVOVF9BTEw7CisKKwkJCS8qCisJCQkg KiBBbHNvLCBtYWtlIGxpa2UgaXQgaGFzIGEgY29tbWVudCBldmVuIGlmIGl0IGRvZXNuJ3Q7IHRo aXMgaXMgc28KKwkJCSAqIHRoYXQgd2UnbGwgZW1pdCBhIGNvbW1hbmQgdG8gZHJvcCB0aGUgY29t bWVudCwgaWYgYXBwcm9wcmlhdGUuCisJCQkgKiAoV2l0aG91dCB0aGlzLCB3ZSdkIG5vdCBjYWxs IGR1bXBDb21tZW50RXh0ZW5kZWQgZm9yIGl0LikKKwkJCSAqLworCQkJbnNpbmZvLT5kb2JqLmNv bXBvbmVudHMgfD0gRFVNUF9DT01QT05FTlRfQ09NTUVOVDsKKwkJfQorCQllbHNlCisJCQluc2lu Zm8tPmRvYmouZHVtcF9jb250YWlucyA9IG5zaW5mby0+ZG9iai5kdW1wID0KKwkJCQlEVU1QX0NP TVBPTkVOVF9OT05FOworCX0KIAllbHNlIGlmIChzdHJuY21wKG5zaW5mby0+ZG9iai5uYW1lLCAi cGdfIiwgMykgPT0gMCB8fAogCQkJIHN0cmNtcChuc2luZm8tPmRvYmoubmFtZSwgImluZm9ybWF0 aW9uX3NjaGVtYSIpID09IDApCiAJewpAQCAtMjA2Nyw5ICsyMDk1LDM4IEBAIHNlbGVjdER1bXBh YmxlTmFtZXNwYWNlKE5hbWVzcGFjZUluZm8gKm5zaW5mbywgQXJjaGl2ZSAqZm91dCkKIHN0YXRp YyB2b2lkCiBzZWxlY3REdW1wYWJsZVRhYmxlKFRhYmxlSW5mbyAqdGJpbmZvLCBBcmNoaXZlICpm b3V0KQogeworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKwogCWlmIChjaGVja0V4 dGVuc2lvbk1lbWJlcnNoaXAoJnRiaW5mby0+ZG9iaiwgZm91dCkpCiAJCXJldHVybjsJCQkJCS8q IGV4dGVuc2lvbiBtZW1iZXJzaGlwIG92ZXJyaWRlcyBhbGwgZWxzZSAqLwogCisJaWYgKHN0cmNt cCh0YmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsICJwZ19jb25mbGljdCIpID09IDAp CisJeworCQlpZiAoZG9wdC0+YmluYXJ5X3VwZ3JhZGUpCisJCXsKKwkJCS8qCisJCQkgKiBEdW1w IHBnX2NvbmZsaWN0IHRhYmxlcyBvbmx5IGR1cmluZyBiaW5hcnkgdXBncmFkZS4gVGhlIHNjaGVt YQorCQkJICogaXMgYXNzdW1lZCB0byBhbHJlYWR5IGV4aXN0LgorCQkJICovCisJCQl0YmluZm8t PmRvYmouZHVtcCA9IERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT047CisKKwkJCS8qCisJCQkgKiBT dXBwcmVzcyB0aGUgIkFMVEVSIFRBQkxFIC4uLiBPV05FUiBUTyAuLi4iIGNvbW1hbmQgZm9yIHRo aXMKKwkJCSAqIHRhYmxlLiBUaGlzIHByZXZlbnRzIHBnX2R1bXAgZnJvbSBvdXRwdXR0aW5nIHRo ZSBvd25lciBjaGFuZ2UuCisJCQkgKi8KKwkJCXRiaW5mby0+cm9sbmFtZSA9IE5VTEw7CisJCX0K KwkJZWxzZQorCQkJdGJpbmZvLT5kb2JqLmR1bXAgPSBEVU1QX0NPTVBPTkVOVF9OT05FOworCisJ CS8qCisJCSAqIERvIG5vdCBhcHBseSB0YWJsZSBzZWxlY3Rpb24gb3IgZXhjbHVzaW9uIHJ1bGVz IHRvIHBnX2NvbmZsaWN0CisJCSAqIHRhYmxlcy4gRHVyaW5nIGJpbmFyeSB1cGdyYWRlLCB0aGVz ZSB0YWJsZXMgYXJlIGR1bXBlZCB0byBwcmVzZXJ2ZQorCQkgKiBjYXRhbG9nIHN0YXRlOyBvdGhl cndpc2UsIHRoZXkgYXJlIG5vdCBkdW1wZWQgYXQgYWxsLgorCQkgKi8KKwkJcmV0dXJuOworCX0K KwogCS8qCiAJICogSWYgc3BlY2lmaWMgdGFibGVzIGFyZSBiZWluZyBkdW1wZWQsIGR1bXAganVz dCB0aG9zZSB0YWJsZXM7IGVsc2UsIGR1bXAKIAkgKiBhY2NvcmRpbmcgdG8gdGhlIHBhcmVudCBu YW1lc3BhY2UncyBkdW1wIGZsYWcuCkBAIC01MTg0LDYgKzUyNDEsOCBAQCBnZXRTdWJzY3JpcHRp b25zKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV9zdWJmYWlsb3ZlcjsKIAlpbnQJCQlpX3N1YnJl dGFpbmRlYWR0dXBsZXM7CiAJaW50CQkJaV9zdWJtYXhyZXRlbnRpb247CisJaW50CQkJaV9zdWJj b25mbGljdGxvZ3JlbGlkOworCWludAkJCWlfc3VibG9nZGVzdGluYXRpb247CiAJaW50CQkJaSwK IAkJCQludHVwczsKIApAQCAtNTI4Miw5ICs1MzQxLDE2IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJj aGl2ZSAqZm91dCkKIAkJCQkJCQkgIiAnLTEnIEFTIHN1YndhbHJjdnRpbWVvdXQsXG4iKTsKIAog CWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE5MDAwMCkKLQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksICIgZnMuc3J2bmFtZSBBUyBzdWJzZXJ2ZXJuYW1lXG4iKTsKKwkJYXBwZW5kUFFF eHBCdWZmZXJTdHIocXVlcnksICIgZnMuc3J2bmFtZSBBUyBzdWJzZXJ2ZXJuYW1lLFxuIik7CisJ ZWxzZQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBOVUxMIEFTIHN1YnNlcnZlcm5h bWUsXG4iKTsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE5MDAwMCkKKwkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksCisJCQkJCQkJICIgcy5zdWJjb25mbGljdGxvZ3JlbGlkLCBz LnN1YmNvbmZsaWN0bG9nZGVzdFxuIik7CiAJZWxzZQotCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwgIiBOVUxMIEFTIHN1YnNlcnZlcm5hbWVcbiIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cihxdWVyeSwKKwkJCQkJCQkgIiBOVUxMIEFTIHN1YmNvbmZsaWN0bG9ncmVsaWQsIE5VTEwgQVMg c3ViY29uZmxpY3Rsb2dkZXN0XG4iKTsKIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAog CQkJCQkJICJGUk9NIHBnX3N1YnNjcmlwdGlvbiBzXG4iKTsKQEAgLTUzMzMsNiArNTM5OSw4IEBA IGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAlpX3N1YnB1YmxpY2F0aW9ucyA9IFBR Zm51bWJlcihyZXMsICJzdWJwdWJsaWNhdGlvbnMiKTsKIAlpX3N1Ym9yaWdpbiA9IFBRZm51bWJl cihyZXMsICJzdWJvcmlnaW4iKTsKIAlpX3N1Ym9yaWdpbnJlbW90ZWxzbiA9IFBRZm51bWJlcihy ZXMsICJzdWJvcmlnaW5yZW1vdGVsc24iKTsKKwlpX3N1YmNvbmZsaWN0bG9ncmVsaWQgPSBQUWZu dW1iZXIocmVzLCAic3ViY29uZmxpY3Rsb2dyZWxpZCIpOworCWlfc3VibG9nZGVzdGluYXRpb24g PSBQUWZudW1iZXIocmVzLCAic3ViY29uZmxpY3Rsb2dkZXN0Iik7CiAKIAlzdWJpbmZvID0gcGdf bWFsbG9jX2FycmF5KFN1YnNjcmlwdGlvbkluZm8sIG50dXBzKTsKIApAQCAtNTM5MSw2ICs1NDU5 LDMyIEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAkJCXN1YmluZm9baV0uc3Vi b3JpZ2lucmVtb3RlbHNuID0KIAkJCQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3Vi b3JpZ2lucmVtb3RlbHNuKSk7CiAKKwkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV9zdWJjb25m bGljdGxvZ3JlbGlkKSkKKwkJCXN1YmluZm9baV0uc3ViY29uZmxpY3Rsb2dyZWxpZCA9IEludmFs aWRPaWQ7CisJCWVsc2UKKwkJeworCQkJVGFibGVJbmZvICAqdGFibGVJbmZvOworCisJCQlzdWJp bmZvW2ldLnN1YmNvbmZsaWN0bG9ncmVsaWQgPQorCQkJCWF0b29pZChQUWdldHZhbHVlKHJlcywg aSwgaV9zdWJjb25mbGljdGxvZ3JlbGlkKSk7CisKKwkJCWlmIChzdWJpbmZvW2ldLnN1YmNvbmZs aWN0bG9ncmVsaWQpCisJCQl7CisJCQkJdGFibGVJbmZvID0gZmluZFRhYmxlQnlPaWQoc3ViaW5m b1tpXS5zdWJjb25mbGljdGxvZ3JlbGlkKTsKKwkJCQlpZiAoIXRhYmxlSW5mbykKKwkJCQkJcGdf ZmF0YWwoImNvdWxkIG5vdCBmaW5kIGNvbmZsaWN0IGxvZyB0YWJsZSB3aXRoIE9JRCAldSIsCisJ CQkJCQkJIHN1YmluZm9baV0uc3ViY29uZmxpY3Rsb2dyZWxpZCk7CisKKwkJCQlhZGRPYmplY3RE ZXBlbmRlbmN5KCZzdWJpbmZvW2ldLmRvYmosIHRhYmxlSW5mby0+ZG9iai5kdW1wSWQpOworCQkJ fQorCQl9CisKKwkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV9zdWJsb2dkZXN0aW5hdGlvbikp CisJCQlzdWJpbmZvW2ldLnN1YmNvbmZsaWN0bG9nZGVzdCA9IE5VTEw7CisJCWVsc2UKKwkJCXN1 YmluZm9baV0uc3ViY29uZmxpY3Rsb2dkZXN0ID0KKwkJCQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShy ZXMsIGksIGlfc3VibG9nZGVzdGluYXRpb24pKTsKKwogCQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3 YW50IHRvIGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVtcGFibGVPYmplY3QoJihzdWJpbmZvW2ldLmRv YmopLCBmb3V0KTsKIAl9CkBAIC01NTgzLDYgKzU2NzcsMTQgQEAgZHVtcFN1YnNjcmlwdGlvbihB cmNoaXZlICpmb3V0LCBjb25zdCBTdWJzY3JpcHRpb25JbmZvICpzdWJpbmZvKQogCWFwcGVuZFBR RXhwQnVmZmVyKGRlbHEsICJEUk9QIFNVQlNDUklQVElPTiAlcztcbiIsCiAJCQkJCSAgcXN1Ym5h bWUpOwogCisJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIocXVlcnksICJcbi0tIEZvciBiaW5hcnkgdXBncmFkZSwgbXVzdCBwcmVzZXJ2ZSBwZ19z dWJzY3JpcHRpb24ub2lkXG4iKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCQkg ICJTRUxFQ1QgcGdfY2F0YWxvZy5iaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRp b25fb2lkKCcldSc6OnBnX2NhdGFsb2cub2lkKTtcblxuIiwKKwkJCQkJCSAgc3ViaW5mby0+ZG9i ai5jYXRJZC5vaWQpOworCX0KKwogCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFNV QlNDUklQVElPTiAlcyAiLAogCQkJCQkgIHFzdWJuYW1lKTsKIAlpZiAoc3ViaW5mby0+c3Vic2Vy dmVybmFtZSkKQEAgLTU2NTYsNiArNTc1OCwxMyBAQCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pCiAKIAlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihxdWVyeSwgIik7XG4iKTsKIAorCWlmIChzdWJpbmZvLT5zdWJjb25mbGljdGxvZ2Rl c3QgJiYKKwkJKHBnX3N0cmNhc2VjbXAoc3ViaW5mby0+c3ViY29uZmxpY3Rsb2dkZXN0LCAibG9n IikgIT0gMCkpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkJICAiXG5cbkFMVEVS IFNVQlNDUklQVElPTiAlcyBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICVzKTtcbiIs CisJCQkJCQkgIHFzdWJuYW1lLAorCQkJCQkJICBzdWJpbmZvLT5zdWJjb25mbGljdGxvZ2Rlc3Qp OworCiAJLyoKIAkgKiBJbiBiaW5hcnktdXBncmFkZSBtb2RlLCB3ZSBhbGxvdyB0aGUgcmVwbGlj YXRpb24gdG8gY29udGludWUgYWZ0ZXIgdGhlCiAJICogdXBncmFkZS4KZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4 IDVhNjcyNmQ4YjEyLi5hNDNhMzA0OTM0MyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC03MjIsNiArNzIyLDcg QEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YnNjcmlwdGlvbkluZm8KIAlib29sCQlzdWJmYWlsb3ZlcjsK IAlib29sCQlzdWJyZXRhaW5kZWFkdHVwbGVzOwogCWludAkJCXN1Ym1heHJldGVudGlvbjsKKwlP aWQJCQlzdWJjb25mbGljdGxvZ3JlbGlkOwogCWNoYXIJICAgKnN1YnNlcnZlcm5hbWU7CiAJY2hh cgkgICAqc3ViY29ubmluZm87CiAJY2hhcgkgICAqc3Vic2xvdG5hbWU7CkBAIC03MzAsNiArNzMx LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YnNjcmlwdGlvbkluZm8KIAljaGFyCSAgICpzdWJwdWJs aWNhdGlvbnM7CiAJY2hhcgkgICAqc3Vib3JpZ2luOwogCWNoYXIJICAgKnN1Ym9yaWdpbnJlbW90 ZWxzbjsKKwljaGFyCSAgICpzdWJjb25mbGljdGxvZ2Rlc3Q7CiB9IFN1YnNjcmlwdGlvbkluZm87 CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggMDNlNWMxYzExMTYuLmMyN2IyMzJlNzk5 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC0xMTMxLDYgKzExMzEsMTkgQEAgcmVwYWlyVGFi bGVBdHRyRGVmTXVsdGlMb29wKER1bXBhYmxlT2JqZWN0ICp0YWJsZW9iaiwKIAlhZGRPYmplY3RE ZXBlbmRlbmN5KGF0dHJkZWZvYmosIHRhYmxlb2JqLT5kdW1wSWQpOwogfQogCisvKgorICogQmVj YXVzZSB3ZSBtYWtlIHN1YnNjcmlwdGlvbnMgZGVwZW5kIG9uIHRoZWlyIGNvbmZsaWN0IGxvZyB0 YWJsZXMsIHdoaWxlCisgKiB0aGVyZSBpcyBhbiBhdXRvbWF0aWMgZGVwZW5kZW5jeSBpbiB0aGUg b3RoZXIgZGlyZWN0aW9uLCB3ZSBuZWVkIHRvIGJyZWFrCisgKiB0aGUgbG9vcC4gUmVtb3ZlIHRo ZSBhdXRvbWF0aWMgZGVwZW5kZW5jeSwgYWxsb3dpbmcgdGhlIHRhYmxlIHRvIGJlIGNyZWF0ZWQK KyAqIGZpcnN0LgorICovCitzdGF0aWMgdm9pZAorcmVwYWlyU3Vic2NyaXB0aW9uVGFibGVMb29w KER1bXBhYmxlT2JqZWN0ICpzdWJvYmosIER1bXBhYmxlT2JqZWN0ICp0YWJsZW9iaikKK3sKKwkv KiBSZW1vdmUgdGFibGUncyBkZXBlbmRlbmN5IG9uIHN1YnNjcmlwdGlvbiAqLworCXJlbW92ZU9i amVjdERlcGVuZGVuY3kodGFibGVvYmosIHN1Ym9iai0+ZHVtcElkKTsKK30KKwogLyoKICAqIENI RUNLLCBOT1QgTlVMTCBjb25zdHJhaW50cyBvbiBkb21haW5zIHdvcmsganVzdCBsaWtlIHRob3Nl IG9uIHRhYmxlcyAuLi4KICAqLwpAQCAtMTM2MSw2ICsxMzc0LDI0IEBAIHJlcGFpckRlcGVuZGVu Y3lMb29wKER1bXBhYmxlT2JqZWN0ICoqbG9vcCwKIAkJcmV0dXJuOwogCX0KIAorCS8qCisJICog U3Vic2NyaXB0aW9uIGFuZCBpdHMgQ29uZmxpY3QgTG9nIFRhYmxlCisJICovCisJaWYgKG5Mb29w ID09IDIgJiYKKwkJbG9vcFswXS0+b2JqVHlwZSA9PSBET19UQUJMRSAmJgorCQlsb29wWzFdLT5v YmpUeXBlID09IERPX1NVQlNDUklQVElPTikKKwl7CisJCXJlcGFpclN1YnNjcmlwdGlvblRhYmxl TG9vcChsb29wWzFdLCBsb29wWzBdKTsKKwkJcmV0dXJuOworCX0KKwlpZiAobkxvb3AgPT0gMiAm JgorCQlsb29wWzBdLT5vYmpUeXBlID09IERPX1NVQlNDUklQVElPTiAmJgorCQlsb29wWzFdLT5v YmpUeXBlID09IERPX1RBQkxFKQorCXsKKwkJcmVwYWlyU3Vic2NyaXB0aW9uVGFibGVMb29wKGxv b3BbMF0sIGxvb3BbMV0pOworCQlyZXR1cm47CisJfQorCiAJLyogaW5kZXggb24gcGFydGl0aW9u ZWQgdGFibGUgYW5kIGNvcnJlc3BvbmRpbmcgaW5kZXggb24gcGFydGl0aW9uICovCiAJaWYgKG5M b29wID09IDIgJiYKIAkJbG9vcFswXS0+b2JqVHlwZSA9PSBET19JTkRFWCAmJgpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8w MDJfcGdfZHVtcC5wbAppbmRleCAzZWU5ZmRhNTBlNC4uM2ZmNTBkZDUwZWUgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90 LzAwMl9wZ19kdW1wLnBsCkBAIC0zMjc2LDkgKzMyNzYsMTAgQEAgbXkgJXRlc3RzID0gKAogCQlj cmVhdGVfb3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBTVUJTQ1JJUFRJT04g c3ViMwogCQkJCQkJIENPTk5FQ1RJT04gXCdkYm5hbWU9ZG9lc25vdGV4aXN0XCcgUFVCTElDQVRJ T04gcHViMQotCQkJCQkJIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgb3JpZ2luID0gYW55LCBzdHJl YW1pbmcgPSBvbik7JywKKwkJCQkJCSBXSVRIIChjb25uZWN0ID0gZmFsc2UsIG9yaWdpbiA9IGFu eSwgc3RyZWFtaW5nID0gb24sIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbj0gdGFibGUpOycsCiAJ CXJlZ2V4cCA9PiBxci9eCi0JCQlcUUNSRUFURSBTVUJTQ1JJUFRJT04gc3ViMyBDT05ORUNUSU9O ICdkYm5hbWU9ZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiBwdWIxIFdJVEggKGNvbm5lY3QgPSBm YWxzZSwgc2xvdF9uYW1lID0gJ3N1YjMnLCBzdHJlYW1pbmcgPSBvbik7XEUKKwkJCVxRQ1JFQVRF IFNVQlNDUklQVElPTiBzdWIzIENPTk5FQ1RJT04gJ2RibmFtZT1kb2Vzbm90ZXhpc3QnIFBVQkxJ Q0FUSU9OIHB1YjEgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBzbG90X25hbWUgPSAnc3ViMycsIHN0 cmVhbWluZyA9IG9uKTtcRVxuXG5cbgorCQkJXFFBTFRFUiBTVUJTQ1JJUFRJT04gc3ViMyBTRVQg KGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9IHRhYmxlKTtcRQogCQkJL3htLAogCQlsaWtlID0+ IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKIAkJdW5saWtlID0+IHsK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgYi9zcmMvYmluL3Bn X3VwZ3JhZGUvcGdfdXBncmFkZS5jCmluZGV4IDIxMjdkMjk3YmZlLi4xMzVlZjY1OGMyYyAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYworKysgYi9zcmMvYmluL3Bn X3VwZ3JhZGUvcGdfdXBncmFkZS5jCkBAIC0zNSw2ICszNSwxMCBAQAogICoKICAqCVdlIGNvbnRy b2wgYWxsIGFzc2lnbm1lbnRzIG9mIHBnX2RhdGFiYXNlLm9pZCBiZWNhdXNlIHdlIHdhbnQgdGhl IGRpcmVjdG9yeQogICoJbmFtZXMgdG8gbWF0Y2ggYmV0d2VlbiB0aGUgb2xkIGFuZCBuZXcgY2x1 c3Rlci4KKyAqCisgKglXZSBjb250cm9sIGFzc2lnbm1lbnQgb2YgcGdfc3Vic2NyaXB0aW9uLm9p ZCBiZWNhdXNlIHdlIHdhbnQgdGhlIG9pZCB0bworICoJbWF0Y2ggYmV0d2VlbiB0aGUgb2xkIGFu ZCBuZXcgY2x1c3RlciB0byBtYWtlIHVzZSBvZiBzdWJzY3JpcHRpb24ncworICoJY29uZmxpY3Qg bG9nIHRhYmxlIHdoaWNoIGlzIG5hbWVkIHVzaW5nIHRoZSBzdWJzY3JpcHRpb24gb2lkLgogICov CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5w bCBiL3NyYy9iaW4vcGdfdXBncmFkZS90LzAwNF9zdWJzY3JpcHRpb24ucGwKaW5kZXggYzk0YTgy ZGVhZTAuLjczZjAwZDI0MjZjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDRf c3Vic2NyaXB0aW9uLnBsCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS90LzAwNF9zdWJzY3JpcHRp b24ucGwKQEAgLTI5MCw3ICsyOTAsNyBAQCAkcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAkb2xkX3N1 Yi0+c2FmZV9wc3FsKAogCSdwb3N0Z3JlcycsIHFxWwogCQlDUkVBVEUgVEFCTEUgdGFiX3VwZ3Jh ZGVkMihpZCBpbnQpOwotCQlDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nfc3ViNSBDT05ORUNU SU9OICckY29ubnN0cicgUFVCTElDQVRJT04gcmVncmVzc19wdWI1OworCQlDUkVBVEUgU1VCU0NS SVBUSU9OIHJlZ3Jlc3Nfc3ViNSBDT05ORUNUSU9OICckY29ubnN0cicgUFVCTElDQVRJT04gcmVn cmVzc19wdWI1IHdpdGggKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOwogXSk7 CiAKICMgVGhlIHRhYmxlIHRhYl91cGdyYWRlZDIgd2lsbCBiZSBpbiB0aGUgaW5pdCBzdGF0ZSBh cyB0aGUgc3Vic2NyaWJlcidzCkBAIC0zMTIsNyArMzEyLDEwIEBAIG15ICR0YWJfdXBncmFkZWQx X29pZCA9ICRvbGRfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiU0VMRUNUIG9pZCBGUk9N IHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAndGFiX3VwZ3JhZGVkMSciKTsKIG15ICR0YWJfdXBn cmFkZWQyX29pZCA9ICRvbGRfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiU0VMRUNUIG9p ZCBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAndGFiX3VwZ3JhZGVkMiciKTsKLQorbXkg JHN1YjVfb2lkID0gJG9sZF9zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1Qgb2lk IEZST00gcGdfc3Vic2NyaXB0aW9uIHdoZXJlIHN1Ym5hbWUgPSAncmVncmVzc19zdWI1JyIpOwor bXkgJHN1Yl9jbHRfcmVsaWQgPSAkb2xkX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNF TEVDVCBzdWJjb25mbGljdGxvZ3JlbGlkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5h bWUgPSAncmVncmVzc19zdWI1JyIpOwogJG9sZF9zdWItPnN0b3A7CiAKICMgQ2hhbmdlIGNvbmZp Z3VyYXRpb24gc28gdGhhdCBpbml0aWFsIHRhYmxlIHN5bmMgZG9lcyBub3QgZ2V0IHN0YXJ0ZWQK QEAgLTM5NCw2ICszOTcsMTMgQEAgJHJlc3VsdCA9ICRuZXdfc3ViLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKICk7CiBpcygkcmVzdWx0LCBxcSh0KSwgImNvbmZsaWN0IGRldGVjdGlvbiBzbG90IGV4 aXN0cyIpOwogCisjIFRoZSBzdWJzY3JpcHRpb24gb2lkIGFuZCB0aGUgc3Vic2NyaXB0aW9uIGNv bmZsaWN0IGxvZyB0YWJsZSByZWxpZCBzaG91bGQgYmUgcHJlc2VydmVkCiskcmVzdWx0ID0gJG5l d19zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIG9pZCBGUk9NIHBnX3N1YnNjcmlw dGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3Nfc3ViNSciKTsKK2lzKCRyZXN1bHQsIHFxKCRz dWI1X29pZCksICJzdWJzY3JpcHRpb24gb2lkIHNob3VsZCBoYXZlIGJlZW4gcHJlc2VydmVkIik7 CisKKyRyZXN1bHQgPSAkbmV3X3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qgc3Vi Y29uZmxpY3Rsb2dyZWxpZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3Jl Z3Jlc3Nfc3ViNSciKTsKK2lzKCRyZXN1bHQsIHFxKCRzdWJfY2x0X3JlbGlkKSwgInN1YnNjcmlw dGlvbiBjb25mbGljdCBsb2cgdGFibGUgcmVsaWQgc2hvdWxkIGhhdmUgYmVlbiBwcmVzZXJ2ZWQi KTsKKwogIyBSZXN1bWUgdGhlIGluaXRpYWwgc3luYyBhbmQgd2FpdCB1bnRpbCBhbGwgdGFibGVz IG9mIHN1YnNjcmlwdGlvbgogIyAncmVncmVzc19zdWI1JyBhcmUgc3luY2hyb25pemVkCiAkbmV3 X3N1Yi0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL2JpbmFyeV91cGdyYWRlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2JpbmFy eV91cGdyYWRlLmgKaW5kZXggN2JmN2FlNDQzODUuLmIxNWIxOGU3ZGM5IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL2JpbmFyeV91cGdyYWRlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9iaW5hcnlfdXBncmFkZS5oCkBAIC0zMiw2ICszMiw3IEBAIGV4dGVybiBQR0RMTElNUE9S VCBSZWxGaWxlTnVtYmVyIGJpbmFyeV91cGdyYWRlX25leHRfdG9hc3RfcGdfY2xhc3NfcmVsZmls ZW51bWJlCiAKIGV4dGVybiBQR0RMTElNUE9SVCBPaWQgYmluYXJ5X3VwZ3JhZGVfbmV4dF9wZ19l bnVtX29pZDsKIGV4dGVybiBQR0RMTElNUE9SVCBPaWQgYmluYXJ5X3VwZ3JhZGVfbmV4dF9wZ19h dXRoaWRfb2lkOworZXh0ZXJuIFBHRExMSU1QT1JUIE9pZCBiaW5hcnlfdXBncmFkZV9uZXh0X3Bn X3N1YnNjcmlwdGlvbl9vaWQ7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIGJpbmFyeV91cGdy YWRlX3JlY29yZF9pbml0X3ByaXZzOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBiZTE1 N2E1ZmJlOS4uM2I1NTU0MTVjYmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTE5Njks NiArMTE5NjksMTAgQEAKICAgcHJvaXNzdHJpY3QgPT4gJ2YnLCBwcm92b2xhdGlsZSA9PiAndics IHByb3BhcmFsbGVsID0+ICd1JywKICAgcHJvcmV0dHlwZSA9PiAndm9pZCcsIHByb2FyZ3R5cGVz ID0+ICcnLAogICBwcm9zcmMgPT4gJ2JpbmFyeV91cGdyYWRlX2NyZWF0ZV9jb25mbGljdF9kZXRl Y3Rpb25fc2xvdCcgfSwKK3sgb2lkID0+ICc4NDA3JywgZGVzY3IgPT4gJ2ZvciB1c2UgYnkgcGdf dXBncmFkZScsCisgIHByb25hbWUgPT4gJ2JpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNj cmlwdGlvbl9vaWQnLCBwcm92b2xhdGlsZSA9PiAndicsCisgIHByb3BhcmFsbGVsID0+ICdyJywg cHJvcmV0dHlwZSA9PiAndm9pZCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9zcmMgPT4g J2JpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQnIH0sCiAKICMgY29u dmVyc2lvbiBmdW5jdGlvbnMKIHsgb2lkID0+ICc0MzEwJywgZGVzY3IgPT4gJ2ludGVybmFsIGNv bnZlcnNpb24gZnVuY3Rpb24gZm9yIEtPSThSIHRvIFdJTjEyNTEnLApkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvbW9kdWxlcy9zcGdpc3RfbmFtZV9vcHMvZXhwZWN0ZWQvc3BnaXN0X25hbWVfb3BzLm91 dCBiL3NyYy90ZXN0L21vZHVsZXMvc3BnaXN0X25hbWVfb3BzL2V4cGVjdGVkL3NwZ2lzdF9uYW1l X29wcy5vdXQKaW5kZXggMWVlNjVlZGUyNDMuLjM5ZDQzMzY4YzQyIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9tb2R1bGVzL3NwZ2lzdF9uYW1lX29wcy9leHBlY3RlZC9zcGdpc3RfbmFtZV9vcHMub3V0 CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvc3BnaXN0X25hbWVfb3BzL2V4cGVjdGVkL3NwZ2lzdF9u YW1lX29wcy5vdXQKQEAgLTU5LDExICs1OSwxMiBAQCBzZWxlY3QgKiBmcm9tIHQKICBiaW5hcnlf dXBncmFkZV9zZXRfbmV4dF9tdWx0aXJhbmdlX3BnX3R5cGVfb2lkICAgICAgIHwgIDEgfCBiaW5h cnlfdXBncmFkZV9zZXRfbmV4dF9tdWx0aXJhbmdlX3BnX3R5cGVfb2lkCiAgYmluYXJ5X3VwZ3Jh ZGVfc2V0X25leHRfcGdfYXV0aGlkX29pZCAgICAgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3Vw Z3JhZGVfc2V0X25leHRfcGdfYXV0aGlkX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3Bn X2VudW1fb2lkICAgICAgICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0 X3BnX2VudW1fb2lkCisgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9uX29p ZCAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9u X29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3RhYmxlc3BhY2Vfb2lkICAgICAgICAg ICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3RhYmxlc3BhY2Vfb2lkCiAgYmlu YXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdHlwZV9vaWQgICAgICAgICAgICAgICAgICB8ICAgIHwg YmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdHlwZV9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRf bmV4dF90b2FzdF9wZ19jbGFzc19vaWQgICAgICAgICAgIHwgIDEgfCBiaW5hcnlfdXBncmFkZV9z ZXRfbmV4dF90b2FzdF9wZ19jbGFzc19vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF90b2Fz dF9yZWxmaWxlbm9kZSAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF90 b2FzdF9yZWxmaWxlbm9kZQotKDEzIHJvd3MpCisoMTQgcm93cykKIAogLS0gVmVyaWZ5IGNsZWFu IGZhaWx1cmUgd2hlbiBJTkNMVURFJ2QgY29sdW1ucyByZXN1bHQgaW4gb3Zlcmxlbmd0aCB0dXBs ZQogLS0gVGhlIGVycm9yIG1lc3NhZ2UgZGV0YWlscyBhcmUgcGxhdGZvcm0tZGVwZW5kZW50LCBz byBzaG93IG9ubHkgU1FMU1RBVEUKQEAgLTEwOCwxMSArMTA5LDEyIEBAIHNlbGVjdCAqIGZyb20g dAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X211bHRpcmFuZ2VfcGdfdHlwZV9vaWQgICAgICAg fCAgMSB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X211bHRpcmFuZ2VfcGdfdHlwZV9vaWQKICBi aW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19hdXRoaWRfb2lkICAgICAgICAgICAgICAgIHwgICAg fCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19hdXRoaWRfb2lkCiAgYmluYXJ5X3VwZ3JhZGVf c2V0X25leHRfcGdfZW51bV9vaWQgICAgICAgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3Jh ZGVfc2V0X25leHRfcGdfZW51bV9vaWQKKyBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJz Y3JpcHRpb25fb2lkICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19z dWJzY3JpcHRpb25fb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdGFibGVzcGFjZV9v aWQgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdGFibGVzcGFj ZV9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ190eXBlX29pZCAgICAgICAgICAgICAg ICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ190eXBlX29pZAogIGJpbmFyeV91 cGdyYWRlX3NldF9uZXh0X3RvYXN0X3BnX2NsYXNzX29pZCAgICAgICAgICAgfCAgMSB8IGJpbmFy eV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3BnX2NsYXNzX29pZAogIGJpbmFyeV91cGdyYWRlX3Nl dF9uZXh0X3RvYXN0X3JlbGZpbGVub2RlICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdyYWRl X3NldF9uZXh0X3RvYXN0X3JlbGZpbGVub2RlCi0oMTMgcm93cykKKygxNCByb3dzKQogCiBcc2V0 IFZFUkJPU0lUWSBzcWxzdGF0ZQogaW5zZXJ0IGludG8gdCB2YWx1ZXMocmVwZWF0KCd4eXp6eScs IDEyKSwgNDIsIHJlcGVhdCgneHl6enknLCA0MDAwKSk7Ci0tIAoyLjQ5LjAKCg== --0000000000002dd2ab06537f74b3 Content-Type: application/octet-stream; name="v46-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Disposition: attachment; filename="v46-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mq0t11hv0 RnJvbSAwM2U0NDJjNTBhZTc0YjMxMDczNTc2NzEwYjY5NWU2NDM5YzIwYWRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogRnJpLCAyOSBNYXkgMjAyNiAxNTowNToxNSArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjQ2 IDEvNV0gQWRkIGNvbmZpZ3VyYWJsZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIExvZ2ljYWwKIFJl cGxpY2F0aW9uCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGlzIHBhdGNoIGFk ZHMgYSBmZWF0dXJlIHRvIHByb3ZpZGUgYSBzdHJ1Y3R1cmVkLCBxdWVyeWFibGUgcmVjb3JkIG9m IGFsbApsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4gVGhlIGN1cnJlbnQgYXBwcm9hY2gg b2YgbG9nZ2luZyBjb25mbGljdHMgYXMKcGxhaW4gdGV4dCBpbiB0aGUgc2VydmVyIGxvZ3MgbWFr ZXMgaXQgZGlmZmljdWx0IHRvIHF1ZXJ5LCBhbmFseXplLCBhbmQKdXNlIGZvciBleHRlcm5hbCBt b25pdG9yaW5nIGFuZCBhdXRvbWF0aW9uLgoKVGhpcyBwYXRjaCBhZGRyZXNzZXMgdGhlc2UgbGlt aXRhdGlvbnMgYnkgaW50cm9kdWNpbmcgYSBjb25maWd1cmFibGUKY29uZmxpY3RfbG9nX2Rlc3Rp bmF0aW9uPSgnbG9nJy8ndGFibGUnLydhbGwnKSBvcHRpb24gaW4gdGhlIENSRUFURSBTVUJTQ1JJ UFRJT04KY29tbWFuZC4KCklmIHRoZSB1c2VyIGNob29zZXMgdG8gZW5hYmxlIGxvZ2dpbmcgdG8g YSB0YWJsZSAoYnkgc2VsZWN0aW5nICd0YWJsZScgb3IgJ2FsbCcpLAphbiBpbnRlcm5hbCBsb2dn aW5nIHRhYmxlIG5hbWVkIHBnX2NvbmZsaWN0X2xvZ188c3ViaWQ+IGlzIGF1dG9tYXRpY2FsbHkK Y3JlYXRlZCB3aXRoaW4gYSBkZWRpY2F0ZWQsIHN5c3RlbS1tYW5hZ2VkICdwZ19jb25mbGljdCcg bmFtZXNwYWNlIHRvIHByZXZlbnQKdXNlcnMgZnJvbSBtYW51YWxseSBkcm9wcGluZyBvciBhbHRl cmluZyBpdC4gVGhpcyBhbHNvIHByZXZlbnRzIGFjY2lkZW50YWwKbmFtZSBjb2xsaXNpb25zIHdp dGggdXNlci1jcmVhdGVkIHRhYmxlcy4gVGhpcyB0YWJsZSBpcyBsaW5rZWQgdG8gdGhlCnN1YnNj cmlwdGlvbiB2aWEgYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSwgZW5zdXJpbmcgaXQgaXMgYXV0b21h dGljYWxseSBkcm9wcGVkCndoZW4gdGhlIHN1YnNjcmlwdGlvbiBpcyByZW1vdmVkCgpUaGUgcGVy LXN1YnNjcmlwdGlvbiB0YWJsZSBtb2RlbCB3YXMgY2hvc2VuIG92ZXIgYSBzaW5nbGUgZ2xvYmFs IGxvZyB0byBlbnN1cmUKc3VwZXJpb3IgaXNvbGF0aW9uIGFuZCBhZG1pbmlzdHJhdGl2ZSBmbGV4 aWJpbGl0eSBieSBkaXJlY3RseSBhbGlnbmluZyB0YWJsZSBvd25lcnNoaXAKd2l0aCB0aGUgc3Vi c2NyaXB0aW9u4oCZcyBsaWZlY3ljbGUuIFRoaXMgYXBwcm9hY2ggYWxsb3dzIGZvciBncmFudWxh ciBwZXJtaXNzaW9uCm1hbmFnZW1lbnQsIGVuYWJsaW5nIHRoZSBzdWJzY3JpcHRpb24gb3duZXIg dG8gcGVyZm9ybSBuZWNlc3NhcnkgbWFpbnRlbmFuY2UKdGFza3MgbGlrZSBTRUxFQ1QsIERFTEVU RSwgYW5kIFRSVU5DQVRFIHdpdGhvdXQgdGhlIHNlY3VyaXR5IHJpc2tzIG9yIGNvbXBsZXgKUm93 LUxldmVsIFNlY3VyaXR5IHJlcXVpcmVkIGJ5IGEgc2hhcmVkIGdsb2JhbCB0YWJsZS4KClRoZSBj b25mbGljdCBkZXRhaWxzLCBpbmNsdWRpbmcgdGhlIG9yaWdpbmFsIGFuZCByZW1vdGUgdHVwbGVz LCBhcmUgc3RvcmVkIGluIEpTT04KY29sdW1ucywgcHJvdmlkaW5nIGEgZmxleGlibGUgZm9ybWF0 IHRvIGFjY29tbW9kYXRlIGRpZmZlcmVudCB0YWJsZSBzY2hlbWFzLgoKVGhlIGxvZyB0YWJsZSBj YXB0dXJlcyBlc3NlbnRpYWwgYXR0cmlidXRlcyBzdWNoIGFzIGxvY2FsIGFuZCByZW1vdGUgdHJh bnNhY3Rpb24gSURzLApMU05zLCBjb21taXQgdGltZXN0YW1wcywgYW5kIGNvbmZsaWN0IHR5cGUs IHByb3ZpZGluZyBhIGNvbXBsZXRlIHJlY29yZCBmb3IgcG9zdC1tb3J0ZW0KYW5hbHlzaXMuCgpU aGlzIGZlYXR1cmUgd2lsbCBtYWtlIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzIGVhc2ll ciB0byBtb25pdG9yIGFuZCBtYW5hZ2UsCnNpZ25pZmljYW50bHkgaW1wcm92aW5nIHRoZSBvdmVy YWxsIHJlc2lsaWVuY2UgYW5kIG9wZXJhYmlsaXR5IG9mIHJlcGxpY2F0aW9uIHNldHVwcy4KClRo ZSBjb25mbGljdCBsb2cgdGFibGVzIHdpbGwgbm90IGJlIGluY2x1ZGVkIGluIGEgcHVibGljYXRp b24sIGV2ZW4gaWYgdGhlIHB1YmxpY2F0aW9uCmlzIGNvbmZpZ3VyZWQgdG8gaW5jbHVkZSBBTEwg VEFCTEVTIG9yIEFMTCBUQUJMRVMgSU4gU0NIRU1BLgotLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cv YWNsY2hrLmMgICAgICAgICAgICAgICB8ICA1MCArKy0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL2Nh dGFsb2cuYyAgICAgICAgICAgICAgfCAgMjkgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5j ICAgICAgICAgICAgICAgICB8ICAzMiArKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMgICAgICAgICAgICB8ICAxMSArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlv bi5jICAgICAgIHwgIDE0ICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5j ICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAg IHwgICAzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgICAgfCAy MTIgKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAg ICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAg IHwgIDI4ICsrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMgfCAx NzUgKysrKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyAgICAg ICAgfCAgIDIgKy0KIHNyYy9iaW4vaW5pdGRiL2luaXRkYi5jICAgICAgICAgICAgICAgICAgICB8 ICAgNiArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgfCAgIDgg Ky0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oICAgICAgICAgICAgICB8ICAgMiArCiBz cmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24uaCAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRhdCAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oICAgICAgfCAgMTEgKwogc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vY29uZmxpY3QuaCAgICAgICAgIHwgIDI3ICsrCiBzcmMvaW5jbHVkZS91dGlscy9s c3lzY2FjaGUuaCAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc3Vic2NyaXB0aW9uLm91dCB8IDMwOCArKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwgICAgICB8IDI1NiArKysrKysrKysrKysrKysr Kwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgIHwgICAyICsKIDIz IGZpbGVzIGNoYW5nZWQsIDExNDcgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvYWNsY2hrLmMKaW5kZXggMDA3ZWRlOTk3YzUuLjY0ZTE3NjY1MmQxIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNs Y2hrLmMKQEAgLTMzMzcsMjUgKzMzMzcsMzkgQEAgcGdfY2xhc3NfYWNsbWFza19leHQoT2lkIHRh YmxlX29pZCwgT2lkIHJvbGVpZCwgQWNsTW9kZSBtYXNrLAogCiAJY2xhc3NGb3JtID0gKEZvcm1f cGdfY2xhc3MpIEdFVFNUUlVDVCh0dXBsZSk7CiAKLQkvKgotCSAqIERlbnkgYW55b25lIHBlcm1p c3Npb24gdG8gdXBkYXRlIGEgc3lzdGVtIGNhdGFsb2cgdW5sZXNzCi0JICogcGdfYXV0aGlkLnJv bHN1cGVyIGlzIHNldC4KLQkgKgotCSAqIEFzIG9mIDcuNCB3ZSBoYXZlIHNvbWUgdXBkYXRhYmxl IHN5c3RlbSB2aWV3czsgdGhvc2Ugc2hvdWxkbid0IGJlCi0JICogcHJvdGVjdGVkIGluIHRoaXMg d2F5LiAgQXNzdW1lIHRoZSB2aWV3IHJ1bGVzIGNhbiB0YWtlIGNhcmUgb2YKLQkgKiB0aGVtc2Vs dmVzLiAgQUNMX1VTQUdFIGlzIGlmIHdlIGV2ZXIgaGF2ZSBzeXN0ZW0gc2VxdWVuY2VzLgotCSAq LwotCWlmICgobWFzayAmIChBQ0xfSU5TRVJUIHwgQUNMX1VQREFURSB8IEFDTF9ERUxFVEUgfCBB Q0xfVFJVTkNBVEUgfCBBQ0xfVVNBR0UpKSAmJgotCQlJc1N5c3RlbUNsYXNzKHRhYmxlX29pZCwg Y2xhc3NGb3JtKSAmJgotCQljbGFzc0Zvcm0tPnJlbGtpbmQgIT0gUkVMS0lORF9WSUVXICYmCi0J CSFzdXBlcnVzZXJfYXJnKHJvbGVpZCkpCi0JCW1hc2sgJj0gfihBQ0xfSU5TRVJUIHwgQUNMX1VQ REFURSB8IEFDTF9ERUxFVEUgfCBBQ0xfVFJVTkNBVEUgfCBBQ0xfVVNBR0UpOwotCi0JLyoKLQkg KiBPdGhlcndpc2UsIHN1cGVydXNlcnMgYnlwYXNzIGFsbCBwZXJtaXNzaW9uLWNoZWNraW5nLgot CSAqLwotCWlmIChzdXBlcnVzZXJfYXJnKHJvbGVpZCkpCisJaWYgKCFzdXBlcnVzZXJfYXJnKHJv bGVpZCkpCisJeworCQlpZiAobWFzayAmIChBQ0xfSU5TRVJUIHwgQUNMX1VQREFURSB8IEFDTF9E RUxFVEUgfCBBQ0xfVFJVTkNBVEUgfCBBQ0xfVVNBR0UpKQorCQl7CisJCQlpZiAoSXNDb25mbGlj dExvZ1RhYmxlQ2xhc3MoY2xhc3NGb3JtKSkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIEZvciBjb25m bGljdCBsb2cgdGFibGVzLCBhbGxvdyBub24tc3VwZXJ1c2VycyB0byBwZXJmb3JtCisJCQkJICog REVMRVRFIGFuZCBUUlVOQ0FURSBmb3IgY2xlYW51cCBhbmQgbWFpbnRlbmFuY2UsIHdoaWxlIHN0 aWxsCisJCQkJICogcmVzdHJpY3RpbmcgSU5TRVJULCBVUERBVEUsIGFuZCBVU0FHRS4KKwkJCQkg Ki8KKwkJCQltYXNrICY9IH4oQUNMX0lOU0VSVCB8IEFDTF9VUERBVEUgfCBBQ0xfVVNBR0UpOwor CQkJfQorCQkJZWxzZSBpZiAoSXNTeXN0ZW1DbGFzcyh0YWJsZV9vaWQsIGNsYXNzRm9ybSkgJiYK KwkJCQljbGFzc0Zvcm0tPnJlbGtpbmQgIT0gUkVMS0lORF9WSUVXKQorCQkJeworCQkJCS8qCisJ CQkJICogRGVueSBhbnlvbmUgcGVybWlzc2lvbiB0byB1cGRhdGUgYSBzeXN0ZW0gY2F0YWxvZyB1 bmxlc3MKKwkJCQkgKiBwZ19hdXRoaWQucm9sc3VwZXIgaXMgc2V0LgorCQkJCSAqCisJCQkJICog QXMgb2YgNy40IHdlIGhhdmUgc29tZSB1cGRhdGFibGUgc3lzdGVtIHZpZXdzOyB0aG9zZQorCQkJ CSAqIHNob3VsZG4ndCBiZSBwcm90ZWN0ZWQgaW4gdGhpcyB3YXkuICBBc3N1bWUgdGhlIHZpZXcg cnVsZXMKKwkJCQkgKiBjYW4gdGFrZSBjYXJlIG9mIHRoZW1zZWx2ZXMuICBBQ0xfVVNBR0UgaXMg aWYgd2UgZXZlciBoYXZlCisJCQkJICogc3lzdGVtIHNlcXVlbmNlcy4KKwkJCQkgKi8KKwkJCQlt YXNrICY9IH4oQUNMX0lOU0VSVCB8IEFDTF9VUERBVEUgfCBBQ0xfREVMRVRFIHwgQUNMX1RSVU5D QVRFIHwKKwkJCQkJCSAgQUNMX1VTQUdFKTsKKwkJCX0KKwkJfQorCX0KKwllbHNlCiAJeworCQkv KiBTdXBlcnVzZXJzIGJ5cGFzcyBhbGwgcGVybWlzc2lvbi1jaGVja2luZy4gKi8KIAkJUmVsZWFz ZVN5c0NhY2hlKHR1cGxlKTsKIAkJcmV0dXJuIG1hc2s7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYwpp bmRleCA3YmU0OTAzMjkzNC4uYmU4NzkxYWY4NzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvY2F0YWxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCkBAIC04 Niw3ICs4Niw5IEBAIGJvb2wKIElzU3lzdGVtQ2xhc3MoT2lkIHJlbGlkLCBGb3JtX3BnX2NsYXNz IHJlbHR1cGxlKQogewogCS8qIElzQ2F0YWxvZ1JlbGF0aW9uT2lkIGlzIGEgYml0IGZhc3Rlciwg c28gdGVzdCB0aGF0IGZpcnN0ICovCi0JcmV0dXJuIChJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxp ZCkgfHwgSXNUb2FzdENsYXNzKHJlbHR1cGxlKSk7CisJcmV0dXJuIChJc0NhdGFsb2dSZWxhdGlv bk9pZChyZWxpZCkgfHwKKwkJCUlzVG9hc3RDbGFzcyhyZWx0dXBsZSkgfHwKKwkJCUlzQ29uZmxp Y3RMb2dUYWJsZUNsYXNzKHJlbHR1cGxlKSk7CiB9CiAKIC8qCkBAIC0yMzAsNiArMjMyLDIwIEBA IElzVG9hc3RDbGFzcyhGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogCXJldHVybiBJc1RvYXN0TmFt ZXNwYWNlKHJlbG5hbWVzcGFjZSk7CiB9CiAKKy8qCisgKiBJc0NvbmZsaWN0TG9nVGFibGVDbGFz cworICoJCVRydWUgaWZmIHBnX2NsYXNzIHR1cGxlIHJlcHJlc2VudHMgYSBDb25mbGljdCBMb2cg VGFibGUuCisgKgorICoJCURvZXMgbm90IHBlcmZvcm0gYW55IGNhdGFsb2cgYWNjZXNzZXMuCisg Ki8KK2Jvb2wKK0lzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUp Cit7CisJT2lkCQkJcmVsbmFtZXNwYWNlID0gcmVsdHVwbGUtPnJlbG5hbWVzcGFjZTsKKworCXJl dHVybiBJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UocmVsbmFtZXNwYWNlKTsKK30KKwogLyoK ICAqIElzQ2F0YWxvZ05hbWVzcGFjZQogICoJCVRydWUgaWZmIG5hbWVzcGFjZSBpcyBwZ19jYXRh bG9nLgpAQCAtMjY0LDYgKzI4MCwxNyBAQCBJc1RvYXN0TmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJ ZCkKIAkJaXNUZW1wVG9hc3ROYW1lc3BhY2UobmFtZXNwYWNlSWQpOwogfQogCisvKgorICogSXND b25mbGljdExvZ1RhYmxlTmFtZXNwYWNlCisgKgkJVHJ1ZSBpZmYgbmFtZXNwYWNlIGlzIHBnX2Nv bmZsaWN0LgorICoKKyAqCQlEb2VzIG5vdCBwZXJmb3JtIGFueSBjYXRhbG9nIGFjY2Vzc2VzLgor ICovCitib29sCitJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UoT2lkIG5hbWVzcGFjZUlkKQor eworCXJldHVybiBuYW1lc3BhY2VJZCA9PSBQR19DT05GTElDVF9OQU1FU1BBQ0U7Cit9CiAKIC8q CiAgKiBJc1Jlc2VydmVkTmFtZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFw LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwppbmRleCA4ODA4NzY1NGRlOS4uNWQwN2Rj YzFjNWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC0zMDUsMjMgKzMwNSwzMSBAQCBoZWFwX2NyZWF0ZShj b25zdCBjaGFyICpyZWxuYW1lLAogCUFzc2VydChPaWRJc1ZhbGlkKHJlbGlkKSk7CiAKIAkvKgot CSAqIERvbid0IGFsbG93IGNyZWF0aW5nIHJlbGF0aW9ucyBpbiBwZ19jYXRhbG9nIGRpcmVjdGx5 LCBldmVuIHRob3VnaCBpdAotCSAqIGlzIGFsbG93ZWQgdG8gbW92ZSB1c2VyIGRlZmluZWQgcmVs YXRpb25zIHRoZXJlLiBTZW1hbnRpY3Mgd2l0aCBzZWFyY2gKLQkgKiBwYXRocyBpbmNsdWRpbmcg cGdfY2F0YWxvZyBhcmUgdG9vIGNvbmZ1c2luZyBmb3Igbm93LgorCSAqIERvbid0IGFsbG93IGNy ZWF0aW5nIHJlbGF0aW9ucyBpbiBwZ19jYXRhbG9nIG9yIHBnX2NvbmZsaWN0IGRpcmVjdGx5LAor CSAqIGV2ZW4gdGhvdWdoIGl0IGlzIGFsbG93ZWQgdG8gbW92ZSB1c2VyIGRlZmluZWQgcmVsYXRp b25zIHRoZXJlLiBTZW1hbnRpY3MKKwkgKiB3aXRoIHNlYXJjaCBwYXRocyBpbmNsdWRpbmcgcGdf Y2F0YWxvZyBhcmUgdG9vIGNvbmZ1c2luZyBmb3Igbm93LgogCSAqCiAJICogQnV0IGFsbG93IGNy ZWF0aW5nIGluZGV4ZXMgb24gcmVsYXRpb25zIGluIHBnX2NhdGFsb2cgZXZlbiBpZgogCSAqIGFs bG93X3N5c3RlbV90YWJsZV9tb2RzID0gb2ZmLCB1cHBlciBsYXllcnMgYWxyZWFkeSBndWFyYW50 ZWUgaXQncyBvbiBhCiAJICogdXNlciBkZWZpbmVkIHJlbGF0aW9uLCBub3QgYSBzeXN0ZW0gb25l LgogCSAqLwotCWlmICghYWxsb3dfc3lzdGVtX3RhYmxlX21vZHMgJiYKLQkJKChJc0NhdGFsb2dO YW1lc3BhY2UocmVsbmFtZXNwYWNlKSAmJiByZWxraW5kICE9IFJFTEtJTkRfSU5ERVgpIHx8Ci0J CSBJc1RvYXN0TmFtZXNwYWNlKHJlbG5hbWVzcGFjZSkpICYmCi0JCUlzTm9ybWFsUHJvY2Vzc2lu Z01vZGUoKSkKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklD SUVOVF9QUklWSUxFR0UpLAotCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkIHRvIGNyZWF0 ZSBcIiVzLiVzXCIiLAotCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKHJlbG5hbWVzcGFjZSksIHJl bG5hbWUpLAotCQkJCSBlcnJkZXRhaWwoIlN5c3RlbSBjYXRhbG9nIG1vZGlmaWNhdGlvbnMgYXJl IGN1cnJlbnRseSBkaXNhbGxvd2VkLiIpKSk7CisJaWYgKCFhbGxvd19zeXN0ZW1fdGFibGVfbW9k cyAmJiBJc05vcm1hbFByb2Nlc3NpbmdNb2RlKCkpCisJeworCQlpZiAoKElzQ2F0YWxvZ05hbWVz cGFjZShyZWxuYW1lc3BhY2UpICYmIHJlbGtpbmQgIT0gUkVMS0lORF9JTkRFWCkgfHwKKwkJCUlz VG9hc3ROYW1lc3BhY2UocmVsbmFtZXNwYWNlKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShl cnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJCSBlcnJtc2coInBl cm1pc3Npb24gZGVuaWVkIHRvIGNyZWF0ZSBcIiVzXCIiLAorCQkJCQkJCWdldF9xdWFsaWZpZWRf b2JqbmFtZShyZWxuYW1lc3BhY2UsIHJlbG5hbWUpKSwKKwkJCQkJIGVycmRldGFpbCgiU3lzdGVt IGNhdGFsb2cgbW9kaWZpY2F0aW9ucyBhcmUgY3VycmVudGx5IGRpc2FsbG93ZWQuIikpKTsKKwor CQlpZiAoSXNDb25mbGljdExvZ1RhYmxlTmFtZXNwYWNlKHJlbG5hbWVzcGFjZSkpCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0Up LAorCQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZCB0byBjcmVhdGUgXCIlc1wiIiwKKwkJ CQkJCQlnZXRfcXVhbGlmaWVkX29iam5hbWUocmVsbmFtZXNwYWNlLCByZWxuYW1lKSksCisJCQkJ CSBlcnJkZXRhaWwoIkNvbmZsaWN0IHNjaGVtYSBtb2RpZmljYXRpb25zIGFyZSBjdXJyZW50bHkg ZGlzYWxsb3dlZC4iKSkpOworCX0KIAogCSpyZWxmcm96ZW54aWQgPSBJbnZhbGlkVHJhbnNhY3Rp b25JZDsKIAkqcmVsbWlubXhpZCA9IEludmFsaWRNdWx0aVhhY3RJZDsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVz cGFjZS5jCmluZGV4IDU2Yjg3ZDg3OGU4Li41YmQ5YmUzOTgzZSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVz cGFjZS5jCkBAIC0zNTIzLDkgKzM1MjMsOCBAQCBMb29rdXBDcmVhdGlvbk5hbWVzcGFjZShjb25z dCBjaGFyICpuc3BuYW1lKQogLyoKICAqIENvbW1vbiBjaGVja3Mgb24gc3dpdGNoaW5nIG5hbWVz cGFjZXMuCiAgKgotICogV2UgY29tcGxhaW4gaWYgZWl0aGVyIHRoZSBvbGQgb3IgbmV3IG5hbWVz cGFjZXMgaXMgYSB0ZW1wb3Jhcnkgc2NoZW1hCi0gKiAob3IgdGVtcG9yYXJ5IHRvYXN0IHNjaGVt YSksIG9yIGlmIGVpdGhlciB0aGUgb2xkIG9yIG5ldyBuYW1lc3BhY2VzIGlzIHRoZQotICogVE9B U1Qgc2NoZW1hLgorICogV2UgY29tcGxhaW4gaWYgZWl0aGVyIHRoZSBvbGQgb3IgbmV3IG5hbWVz cGFjZXMgaXMgYSB0ZW1wb3Jhcnkgc2NoZW1hLAorICogdGVtcG9yYXJ5IHRvYXN0IHNjaGVtYSwg dGhlIFRPQVNUIHNjaGVtYSwgb3IgdGhlIGNvbmZsaWN0IHNjaGVtYS4KICAqLwogdm9pZAogQ2hl Y2tTZXROYW1lc3BhY2UoT2lkIG9sZE5zcE9pZCwgT2lkIG5zcE9pZCkKQEAgLTM1NDEsNiArMzU0 MCwxMiBAQCBDaGVja1NldE5hbWVzcGFjZShPaWQgb2xkTnNwT2lkLCBPaWQgbnNwT2lkKQogCQll cmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVE KSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgbW92ZSBvYmplY3RzIGludG8gb3Igb3V0IG9mIFRPQVNU IHNjaGVtYSIpKSk7CisKKwkvKiBzaW1pbGFybHkgZm9yIGNvbmZsaWN0IHNjaGVtYSAqLworCWlm IChuc3BPaWQgPT0gUEdfQ09ORkxJQ1RfTkFNRVNQQUNFIHx8IG9sZE5zcE9pZCA9PSBQR19DT05G TElDVF9OQU1FU1BBQ0UpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coImNhbm5vdCBtb3ZlIG9iamVjdHMg aW50byBvciBvdXQgb2YgdGhlIGNvbmZsaWN0IHNjaGVtYSIpKSk7CiB9CiAKIC8qCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKaW5kZXggNWM0NTdkOWFjYTguLjFlYzk0Yzg1MWIyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCkBAIC05Miw2ICs5MiwxMyBAQCBjaGVj a19wdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oUHVibGljYXRpb25SZWxJbmZvICpwcmkpCiAJCQkJ IGVycm1zZyhlcnJvcm1zZywgcmVsbmFtZSksCiAJCQkJIGVycmRldGFpbCgiVGhpcyBvcGVyYXRp b24gaXMgbm90IHN1cHBvcnRlZCBmb3Igc3lzdGVtIHRhYmxlcy4iKSkpOwogCisJLyogQ2FuJ3Qg YmUgY29uZmxpY3QgbG9nIHRhYmxlICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFj ZShSZWxhdGlvbkdldE5hbWVzcGFjZSh0YXJnZXRyZWwpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNn KGVycm9ybXNnLCByZWxuYW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJUaGlzIG9wZXJhdGlvbiBpcyBu b3Qgc3VwcG9ydGVkIGZvciBjb25mbGljdCBsb2cgdGFibGVzLiIpKSk7CisKIAkvKiBVTkxPR0dF RCBhbmQgVEVNUCByZWxhdGlvbnMgY2Fubm90IGJlIHBhcnQgb2YgcHVibGljYXRpb24uICovCiAJ aWYgKHRhcmdldHJlbC0+cmRfcmVsLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9U RU1QKQogCQllcmVwb3J0KEVSUk9SLApAQCAtMTEzLDcgKzEyMCw4IEBAIHN0YXRpYyB2b2lkCiBj aGVja19wdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBzY2hlbWFpZCkKIHsKIAkvKiBDYW4ndCBi ZSBzeXN0ZW0gbmFtZXNwYWNlICovCi0JaWYgKElzQ2F0YWxvZ05hbWVzcGFjZShzY2hlbWFpZCkg fHwgSXNUb2FzdE5hbWVzcGFjZShzY2hlbWFpZCkpCisJaWYgKElzQ2F0YWxvZ05hbWVzcGFjZShz Y2hlbWFpZCkgfHwgSXNUb2FzdE5hbWVzcGFjZShzY2hlbWFpZCkgfHwKKwkJSXNDb25mbGljdExv Z1RhYmxlTmFtZXNwYWNlKHNjaGVtYWlkKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3Qg YWRkIHNjaGVtYSBcIiVzXCIgdG8gcHVibGljYXRpb24iLApAQCAtMTQ4LDcgKzE1Niw4IEBAIGNo ZWNrX3B1YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lkIHNjaGVtYWlkKQogICogaXMgcmVhbGx5IGlu YWRlcXVhdGUgZm9yIHRoYXQsIHNpbmNlIHRoZSBpbmZvcm1hdGlvbl9zY2hlbWEgY291bGQgYmUK ICAqIGRyb3BwZWQgYW5kIHJlbG9hZGVkIGFuZCB0aGVuIGl0J2xsIGJlIGNvbnNpZGVyZWQgcHVi bGlzaGFibGUuICBUaGUgYmVzdAogICogbG9uZy10ZXJtIHNvbHV0aW9uIG1heSBiZSB0byBhZGQg YSAicmVsaXNwdWJsaXNoYWJsZSIgYm9vbCB0byBwZ19jbGFzcywKLSAqIGFuZCBkZXBlbmQgb24g dGhhdCBpbnN0ZWFkIG9mIE9JRCBjaGVja3MuCisgKiBhbmQgZGVwZW5kIG9uIHRoYXQgaW5zdGVh ZCBvZiBPSUQgY2hlY2tzLiAgSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MoKQorICogZXhjbHVkZXMg dGFibGVzIGluIGNvbmZsaWN0IHNjaGVtYS4KICAqLwogc3RhdGljIGJvb2wKIGlzX3B1Ymxpc2hh YmxlX2NsYXNzKE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKQEAgLTE1Nyw2ICsx NjYsNyBAQCBpc19wdWJsaXNoYWJsZV9jbGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVs dHVwbGUpCiAJCQlyZWx0dXBsZS0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxF IHx8CiAJCQlyZWx0dXBsZS0+cmVsa2luZCA9PSBSRUxLSU5EX1NFUVVFTkNFKSAmJgogCQkhSXND YXRhbG9nUmVsYXRpb25PaWQocmVsaWQpICYmCisJCSFJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhy ZWx0dXBsZSkgJiYKIAkJcmVsdHVwbGUtPnJlbHBlcnNpc3RlbmNlID09IFJFTFBFUlNJU1RFTkNF X1BFUk1BTkVOVCAmJgogCQlyZWxpZCA+PSBGaXJzdE5vcm1hbE9iamVjdElkOwogfQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKaW5kZXggMWYxZmRjNzVhZjYuLjgwOTgxOGFmOWVh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKQEAgLTExOCw2ICsxMTgsNyBA QCBHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2ssIGJvb2wgYWNsY2hl Y2spCiAJc3ViLT5yZXRhaW5kZWFkdHVwbGVzID0gc3ViZm9ybS0+c3VicmV0YWluZGVhZHR1cGxl czsKIAlzdWItPm1heHJldGVudGlvbiA9IHN1YmZvcm0tPnN1Ym1heHJldGVudGlvbjsKIAlzdWIt PnJldGVudGlvbmFjdGl2ZSA9IHN1YmZvcm0tPnN1YnJldGVudGlvbmFjdGl2ZTsKKwlzdWItPmNv bmZsaWN0bG9ncmVsaWQgPSBzdWJmb3JtLT5zdWJjb25mbGljdGxvZ3JlbGlkOwogCiAJLyogR2V0 IGNvbm5pbmZvICovCiAJaWYgKE9pZElzVmFsaWQoc3ViZm9ybS0+c3Vic2VydmVyKSkKQEAgLTE4 Nyw2ICsxODgsMTIgQEAgR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29r LCBib29sIGFjbGNoZWNrKQogCQkJCQkJCQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJvcmln aW4pOwogCXN1Yi0+b3JpZ2luID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CiAKKwkvKiBH ZXQgY29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uICovCisJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJO b3ROdWxsKFNVQlNDUklQVElPTk9JRCwKKwkJCQkJCQkJICAgdHVwLAorCQkJCQkJCQkgICBBbnVt X3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QpOworCXN1Yi0+Y29uZmxpY3Rsb2dk ZXN0ID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisKIAkvKiBJcyB0aGUgc3Vic2NyaXB0 aW9uIG93bmVyIGEgc3VwZXJ1c2VyPyAqLwogCXN1Yi0+b3duZXJzdXBlcnVzZXIgPSBzdXBlcnVz ZXJfYXJnKHN1Yi0+b3duZXIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5 c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5k ZXggNzNhMWMxYzQ2NzAuLjE2NjMyOTU1MWRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRh bG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmll d3Muc3FsCkBAIC0xNTI3LDcgKzE1MjcsOCBAQCBHUkFOVCBTRUxFQ1QgKG9pZCwgc3ViZGJpZCwg c3Vic2tpcGxzbiwgc3VibmFtZSwgc3Vib3duZXIsIHN1YmVuYWJsZWQsCiAgICAgICAgICAgICAg IHN1YmJpbmFyeSwgc3Vic3RyZWFtLCBzdWJ0d29waGFzZXN0YXRlLCBzdWJkaXNhYmxlb25lcnIs CiAJCQkgIHN1YnBhc3N3b3JkcmVxdWlyZWQsIHN1YnJ1bmFzb3duZXIsIHN1YmZhaWxvdmVyLAog ICAgICAgICAgICAgICBzdWJyZXRhaW5kZWFkdHVwbGVzLCBzdWJtYXhyZXRlbnRpb24sIHN1YnJl dGVudGlvbmFjdGl2ZSwKLSAgICAgICAgICAgICAgc3Vic2VydmVyLCBzdWJzbG90bmFtZSwgc3Vi c3luY2NvbW1pdCwgc3VicHVibGljYXRpb25zLCBzdWJvcmlnaW4pCisgICAgICAgICAgICAgIHN1 YnNlcnZlciwgc3ViY29uZmxpY3Rsb2dyZWxpZCwgc3ViY29uZmxpY3Rsb2dkZXN0LAorCQkJICBz dWJzbG90bmFtZSwgc3Vic3luY2NvbW1pdCwgc3VicHVibGljYXRpb25zLCBzdWJvcmlnaW4pCiAg ICAgT04gcGdfc3Vic2NyaXB0aW9uIFRPIHB1YmxpYzsKIAogQ1JFQVRFIFZJRVcgcGdfc3RhdF9z dWJzY3JpcHRpb25fc3RhdHMgQVMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1 YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMu YwppbmRleCA1MjM5NTliYTBjZS4uN2QwOWI4MGJhNWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z dWJzY3JpcHRpb25jbWRzLmMKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2F1dGhpZF9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZV9kLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19mb3JlaWduX3NlcnZlci5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFt ZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbl9yZWwuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5 cGUuaCIKQEAgLTM1LDYgKzM2LDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNp bmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZm9yZWlnbi9mb3JlaWduLmgiCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCkBAIC03OSw2ICs4MSw3IEBACiAjZGVmaW5lIFNVQk9QVF9X QUxfUkVDRUlWRVJfVElNRU9VVAkJCTB4MDAwMTAwMDAKICNkZWZpbmUgU1VCT1BUX0xTTgkJCQkJ MHgwMDAyMDAwMAogI2RlZmluZSBTVUJPUFRfT1JJR0lOCQkJCTB4MDAwNDAwMDAKKyNkZWZpbmUg U1VCT1BUX0NPTkZMSUNUX0xPR19ERVNUCTB4MDAwODAwMDAKIAogLyogY2hlY2sgaWYgdGhlICd2 YWwnIGhhcyAnYml0cycgc2V0ICovCiAjZGVmaW5lIElzU2V0KHZhbCwgYml0cykgICgoKHZhbCkg JiAoYml0cykpID09IChiaXRzKSkKQEAgLTEwNyw2ICsxMTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBT dWJPcHRzCiAJYm9vbAkJcmV0YWluZGVhZHR1cGxlczsKIAlpbnQzMgkJbWF4cmV0ZW50aW9uOwog CWNoYXIJICAgKm9yaWdpbjsKKwlDb25mbGljdExvZ0Rlc3QgY29uZmxpY3Rsb2dkZXN0OwogCVhM b2dSZWNQdHIJbHNuOwogCWNoYXIJICAgKndhbF9yZWNlaXZlcl90aW1lb3V0OwogfSBTdWJPcHRz OwpAQCAtMTQwLDcgKzE0NCwxMiBAQCBzdGF0aWMgTGlzdCAqbWVyZ2VfcHVibGljYXRpb25zKExp c3QgKm9sZHB1Ymxpc3QsIExpc3QgKm5ld3B1Ymxpc3QsIGJvb2wgYWRkcHViLAogc3RhdGljIHZv aWQgUmVwb3J0U2xvdENvbm5lY3Rpb25FcnJvcihMaXN0ICpyc3RhdGVzLCBPaWQgc3ViaWQsIGNo YXIgKnNsb3RuYW1lLCBjaGFyICplcnIpOwogc3RhdGljIHZvaWQgQ2hlY2tBbHRlclN1Yk9wdGlv bihTdWJzY3JpcHRpb24gKnN1YiwgY29uc3QgY2hhciAqb3B0aW9uLAogCQkJCQkJCQlib29sIHNs b3RfbmVlZHNfdXBkYXRlLCBib29sIGlzVG9wTGV2ZWwpOwotCitzdGF0aWMgYm9vbCBhbHRlcl9z dWJfY29uZmxpY3Rsb2dkZXN0aW5hdGlvbihTdWJzY3JpcHRpb24gKnN1YiwKKwkJCQkJCQkJCQkJ IENvbmZsaWN0TG9nRGVzdCBvbGRsb2dkZXN0LAorCQkJCQkJCQkJCQkgQ29uZmxpY3RMb2dEZXN0 IG5ld2xvZ2Rlc3QsCisJCQkJCQkJCQkJCSBPaWQgKmNvbmZsaWN0dGFibGVyZWxpZCk7CitzdGF0 aWMgdm9pZCBkcm9wX3N1Yl9jb25mbGljdF9sb2dfdGFibGUoT2lkIHN1YmlkLCBjaGFyICpzdWJu YW1lLAorCQkJCQkJCQkJCU9pZCBzdWJjb25mbGljdGxvZ3JlbGlkKTsKIAogLyoKICAqIENvbW1v biBvcHRpb24gcGFyc2luZyBmdW5jdGlvbiBmb3IgQ1JFQVRFIGFuZCBBTFRFUiBTVUJTQ1JJUFRJ T04gY29tbWFuZHMuCkBAIC0xOTYsNiArMjA1LDggQEAgcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlv bnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpzdG10X29wdGlvbnMsCiAJCW9wdHMtPm1heHJl dGVudGlvbiA9IDA7CiAJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfT1JJR0lOKSkK IAkJb3B0cy0+b3JpZ2luID0gcHN0cmR1cChMT0dJQ0FMUkVQX09SSUdJTl9BTlkpOworCWlmIChJ c1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX0NPTkZMSUNUX0xPR19ERVNUKSkKKwkJb3B0cy0+ Y29uZmxpY3Rsb2dkZXN0ID0gQ09ORkxJQ1RfTE9HX0RFU1RfTE9HOwogCiAJLyogUGFyc2Ugb3B0 aW9ucyAqLwogCWZvcmVhY2gobGMsIHN0bXRfb3B0aW9ucykKQEAgLTQzMSw2ICs0NDIsMTggQEAg cGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpzdG10 X29wdGlvbnMsCiAJCQkJCQkJCQkJIFBHQ19CQUNLRU5ELCBQR0NfU19URVNULCBHVUNfQUNUSU9O X1NFVCwKIAkJCQkJCQkJCQkgZmFsc2UsIDAsIGZhbHNlKTsKIAkJfQorCQllbHNlIGlmIChJc1Nl dChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX0NPTkZMSUNUX0xPR19ERVNUKSAmJgorCQkJCSBzdHJj bXAoZGVmZWwtPmRlZm5hbWUsICJjb25mbGljdF9sb2dfZGVzdGluYXRpb24iKSA9PSAwKQorCQl7 CisJCQljaGFyICp2YWw7CisKKwkJCWlmIChJc1NldChvcHRzLT5zcGVjaWZpZWRfb3B0cywgU1VC T1BUX0NPTkZMSUNUX0xPR19ERVNUKSkKKwkJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWZl bCwgcHN0YXRlKTsKKworCQkJdmFsID0gZGVmR2V0U3RyaW5nKGRlZmVsKTsKKwkJCW9wdHMtPmNv bmZsaWN0bG9nZGVzdCA9IEdldENvbmZsaWN0TG9nRGVzdCh2YWwpOworCQkJb3B0cy0+c3BlY2lm aWVkX29wdHMgfD0gU1VCT1BUX0NPTkZMSUNUX0xPR19ERVNUOworCQl9CiAJCWVsc2UKIAkJCWVy ZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKQEAgLTYy OSw2ICs2NTIsNyBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVh dGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCXVpbnQzMgkJc3VwcG9ydGVkX29wdHM7CiAJU3Vi T3B0cwkJb3B0cyA9IHswfTsKIAlBY2xSZXN1bHQJYWNscmVzdWx0OworCU9pZAkJCWxvZ3JlbGlk ID0gSW52YWxpZE9pZDsKIAogCS8qCiAJICogUGFyc2UgYW5kIGNoZWNrIG9wdGlvbnMuCkBAIC02 NDMsNyArNjY3LDggQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3Jl YXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwg U1VCT1BUX0ZBSUxPVkVSIHwKIAkJCQkJICBTVUJPUFRfUkVUQUlOX0RFQURfVFVQTEVTIHwKIAkJ CQkJICBTVUJPUFRfTUFYX1JFVEVOVElPTl9EVVJBVElPTiB8Ci0JCQkJCSAgU1VCT1BUX1dBTF9S RUNFSVZFUl9USU1FT1VUIHwgU1VCT1BUX09SSUdJTik7CisJCQkJCSAgU1VCT1BUX1dBTF9SRUNF SVZFUl9USU1FT1VUIHwgU1VCT1BUX09SSUdJTiB8CisJCQkJCSAgU1VCT1BUX0NPTkZMSUNUX0xP R19ERVNUKTsKIAlwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhwc3RhdGUsIHN0bXQtPm9wdGlv bnMsIHN1cHBvcnRlZF9vcHRzLCAmb3B0cyk7CiAKIAkvKgpAQCAtODE3LDYgKzg0MiwyMCBAQCBD cmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25T dG10ICpzdG10LAogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJvcmlnaW4gLSAxXSA9 CiAJCUNTdHJpbmdHZXRUZXh0RGF0dW0ob3B0cy5vcmlnaW4pOwogCisJdmFsdWVzW0FudW1fcGdf c3Vic2NyaXB0aW9uX3N1YmNvbmZsaWN0bG9nZGVzdCAtIDFdID0KKwkJQ1N0cmluZ0dldFRleHRE YXR1bShDb25mbGljdExvZ0Rlc3ROYW1lc1tvcHRzLmNvbmZsaWN0bG9nZGVzdF0pOworCisJLyoK KwkgKiBXZSBjcmVhdGUgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBoZXJlLCBpZiByZXF1aXJlZCwg c28gdGhhdCBpdHMgcmVsYXRpb24KKwkgKiBPSUQgY2FuIGJlIHN0b3JlZCB3aGVuIGluc2VydGlu ZyB0aGUgcGdfc3Vic2NyaXB0aW9uIHR1cGxlIGJlbG93LgorCSAqLworCWlmIChDT05GTElDVFNf TE9HR0VEX1RPX1RBQkxFKG9wdHMuY29uZmxpY3Rsb2dkZXN0KSkKKwkJbG9ncmVsaWQgPSBjcmVh dGVfY29uZmxpY3RfbG9nX3RhYmxlKHN1YmlkLCBzdG10LT5zdWJuYW1lLCBvd25lcik7CisKKwkv KiBTdG9yZSB0YWJsZSBPSUQgaW4gdGhlIGNhdGFsb2cuICovCisJdmFsdWVzW0FudW1fcGdfc3Vi c2NyaXB0aW9uX3N1YmNvbmZsaWN0bG9ncmVsaWQgLSAxXSA9CisJCQkJCQlPYmplY3RJZEdldERh dHVtKGxvZ3JlbGlkKTsKKwogCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2Ny KHJlbCksIHZhbHVlcywgbnVsbHMpOwogCiAJLyogSW5zZXJ0IHR1cGxlIGludG8gY2F0YWxvZy4g Ki8KQEAgLTgzNyw2ICs4NzYsMjUgQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJcmVjb3JkRGVwZW5kZW5jeU9u KCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZX05PUk1BTCk7CiAJfQogCisJLyoKKwkg KiBFc3RhYmxpc2ggYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZSBjb25mbGljdCBs b2cgdGFibGUgYW5kCisJICogdGhlIHN1YnNjcmlwdGlvbi4KKwkgKgorCSAqIFdlIHVzZSBERVBF TkRFTkNZX0lOVEVSTkFMIHRvIHNpZ25pZnkgdGhhdCB0aGUgdGFibGUncyBsaWZlY3ljbGUgaXMK KwkgKiBzdHJpY3RseSB0aWVkIHRvIHRoZSBzdWJzY3JpcHRpb24sIHNpbWlsYXIgdG8gaG93IGEg VE9BU1QgdGFibGUgcmVsYXRlcworCSAqIHRvIGl0cyBtYWluIHRhYmxlIG9yIGEgc2VxdWVuY2Ug cmVsYXRlcyB0byBhbiBpZGVudGl0eSBjb2x1bW4uCisJICoKKwkgKiBUaGlzIGVuc3VyZXMgdGhl IGNvbmZsaWN0IGxvZyB0YWJsZSBpcyBhdXRvbWF0aWNhbGx5IHJlYXBlZCBkdXJpbmcgYQorCSAq IERST1AgU1VCU0NSSVBUSU9OIHZpYSBwZXJmb3JtRGVsZXRpb24oKS4KKwkgKi8KKwlpZiAoT2lk SXNWYWxpZChsb2dyZWxpZCkpCisJeworCQlPYmplY3RBZGRyZXNzIGNsdGFkZHI7CisKKwkJT2Jq ZWN0QWRkcmVzc1NldChjbHRhZGRyLCBSZWxhdGlvblJlbGF0aW9uSWQsIGxvZ3JlbGlkKTsKKwkJ cmVjb3JkRGVwZW5kZW5jeU9uKCZjbHRhZGRyLCAmbXlzZWxmLCBERVBFTkRFTkNZX0lOVEVSTkFM KTsKKwl9CisKIAkvKgogCSAqIEEgcmVwbGljYXRpb24gb3JpZ2luIGlzIGN1cnJlbnRseSBjcmVh dGVkIGZvciBhbGwgc3Vic2NyaXB0aW9ucywKIAkgKiBpbmNsdWRpbmcgdGhvc2UgdGhhdCBvbmx5 IGNvbnRhaW4gc2VxdWVuY2VzIG9yIGFyZSBvdGhlcndpc2UgZW1wdHkuCkBAIC0xNDA2LDYgKzE0 NjQsNzEgQEAgQ2hlY2tBbHRlclN1Yk9wdGlvbihTdWJzY3JpcHRpb24gKnN1YiwgY29uc3QgY2hh ciAqb3B0aW9uLAogCX0KIH0KIAorLyoKKyAqIGFsdGVyX3N1Yl9jb25mbGljdGxvZ2Rlc3RpbmF0 aW9uCisgKgorICogV2hlbiB0aGUgc3Vic2NyaXB0aW9uJ3MgJ2NvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbicgaXMgY2hhbmdlZCwgdXBkYXRlIHRoZQorICogY29uZmxpY3QgbG9nIHRhYmxlIGlmIHJl cXVpcmVkLgorICoKKyAqIElmIHRoZSBuZXcgZGVzdGluYXRpb24gbm8gbG9uZ2VyIHJlcXVpcmVz IGEgY29uZmxpY3QgbG9nIHRhYmxlLCB0aGUgZXhpc3RpbmcKKyAqIGNvbmZsaWN0IGxvZyB0YWJs ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHN1YnNjcmlwdGlvbiBpcyByZW1vdmVkIHZpYSBpbnRlcm5h bAorICogZGVwZW5kZW5jeSBjbGVhbnVwIHRvIHByZXZlbnQgb3JwaGFuZWQgcmVsYXRpb25zLgor ICoKKyAqIE9uIHN1Y2Nlc3MsICpjb25mbGljdHRhYmxlcmVsaWQgaXMgc2V0IHRvIHRoZSBPSUQg b2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorICogdGhhdCB3YXMgY3JlYXRlZCBvciB2YWxpZGF0 ZWQsIG9yIHRvIEludmFsaWRPaWQgaWYgbm8gdGFibGUgaXMgcmVxdWlyZWQuCisgKgorICogUmV0 dXJucyB0cnVlIGlmIHRoZSBzdWJzY3JpcHRpb24ncyBjb25mbGljdCBsb2cgdGFibGUgcmVmZXJl bmNlIG11c3QgYmUKKyAqIHVwZGF0ZWQgYXMgYSByZXN1bHQgb2YgdGhlIGRlc3RpbmF0aW9uIGNo YW5nZTsgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitzdGF0aWMgYm9vbAorYWx0ZXJfc3ViX2NvbmZs aWN0bG9nZGVzdGluYXRpb24oU3Vic2NyaXB0aW9uICpzdWIsIENvbmZsaWN0TG9nRGVzdCBvbGRs b2dkZXN0LAorCQkJCQkJCQkgQ29uZmxpY3RMb2dEZXN0IG5ld2xvZ2Rlc3QsCisJCQkJCQkJCSBP aWQgKmNvbmZsaWN0dGFibGVyZWxpZCkKK3sKKwlib29sCQl3YW50X3RhYmxlOworCWJvb2wJCWhh c19vbGR0YWJsZTsKKwlib29sCQl1cGRhdGVfcmVsaWQgPSBmYWxzZTsKKwlPaWQJCQlyZWxpZCA9 IEludmFsaWRPaWQ7CisKKwl3YW50X3RhYmxlID0gQ09ORkxJQ1RTX0xPR0dFRF9UT19UQUJMRShu ZXdsb2dkZXN0KTsKKwloYXNfb2xkdGFibGUgPSBDT05GTElDVFNfTE9HR0VEX1RPX1RBQkxFKG9s ZGxvZ2Rlc3QpOworCisJaWYgKGhhc19vbGR0YWJsZSkKKwl7CisJCS8qIFRoZXJlIGlzIGEgY29u ZmxpY3QgbG9nIHRhYmxlIGFscmVhZHkuICovCisJCWlmICghd2FudF90YWJsZSkKKwkJeworCQkJ ZHJvcF9zdWJfY29uZmxpY3RfbG9nX3RhYmxlKHN1Yi0+b2lkLCBzdWItPm5hbWUsCisJCQkJCQkJ CQkJc3ViLT5jb25mbGljdGxvZ3JlbGlkKTsKKwkJCXVwZGF0ZV9yZWxpZCA9IHRydWU7CisJCX0K Kwl9CisJZWxzZQorCXsKKwkJLyogVGhlcmUgd2FzIG5vIHByZXZpb3VzIGNvbmZsaWN0IGxvZyB0 YWJsZS4gKi8KKwkJaWYgKHdhbnRfdGFibGUpCisJCXsKKwkJCU9iamVjdEFkZHJlc3MgY2x0YWRk cjsKKwkJCU9iamVjdEFkZHJlc3Mgc3Vib2JqOworCisJCQlyZWxpZCA9IGNyZWF0ZV9jb25mbGlj dF9sb2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFtZSwgc3ViLT5vd25lcik7CisJCQl1cGRhdGVf cmVsaWQgPSB0cnVlOworCisJCQkvKgorCQkJICogRXN0YWJsaXNoIGFuIGludGVybmFsIGRlcGVu ZGVuY3kgYmV0d2VlbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCisJCQkgKiBhbmQgdGhlIHN1YnNj cmlwdGlvbi4gIEZvciBkZXRhaWxzIHJlZmVyIGNvbW1lbnRzIGluCisJCQkgKiBDcmVhdGVTdWJz Y3JpcHRpb24gZnVuY3Rpb24uCisJCQkgKi8KKwkJCU9iamVjdEFkZHJlc3NTZXQoY2x0YWRkciwg UmVsYXRpb25SZWxhdGlvbklkLCByZWxpZCk7CisJCQlPYmplY3RBZGRyZXNzU2V0KHN1Ym9iaiwg U3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViLT5vaWQpOworCQkJcmVjb3JkRGVwZW5kZW5jeU9u KCZjbHRhZGRyLCAmc3Vib2JqLCBERVBFTkRFTkNZX0lOVEVSTkFMKTsKKwkJfQorCX0KKworCSpj b25mbGljdHRhYmxlcmVsaWQgPSByZWxpZDsKKwlyZXR1cm4gdXBkYXRlX3JlbGlkOworfQorCiAv KgogICogQWx0ZXIgdGhlIGV4aXN0aW5nIHN1YnNjcmlwdGlvbi4KICAqLwpAQCAtMTUwMSw3ICsx NjI0LDggQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNj cmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCQkJCSAgU1VCT1BUX1JFVEFJTl9ERUFEX1RVUExFUyB8 CiAJCQkJCQkJCSAgU1VCT1BUX01BWF9SRVRFTlRJT05fRFVSQVRJT04gfAogCQkJCQkJCQkgIFNV Qk9QVF9XQUxfUkVDRUlWRVJfVElNRU9VVCB8Ci0JCQkJCQkJCSAgU1VCT1BUX09SSUdJTik7CisJ CQkJCQkJCSAgU1VCT1BUX09SSUdJTiB8CisJCQkJCQkJCSAgU1VCT1BUX0NPTkZMSUNUX0xPR19E RVNUKTsKIAogCQkJCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0 aW9ucywKIAkJCQkJCQkJCQkgICBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwpAQCAtMTc2Myw2ICsx ODg3LDM0IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJz Y3JpcHRpb25TdG10ICpzdG10LAogCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9z dWJ3YWxyY3Z0aW1lb3V0IC0gMV0gPSB0cnVlOwogCQkJCX0KIAorCQkJCWlmIChJc1NldChvcHRz LnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpKQorCQkJCXsKKwkJCQkJ Q29uZmxpY3RMb2dEZXN0IG9sZF9kZXN0ID0KKwkJCQkJCQlHZXRDb25mbGljdExvZ0Rlc3Qoc3Vi LT5jb25mbGljdGxvZ2Rlc3QpOworCisJCQkJCWlmIChvcHRzLmNvbmZsaWN0bG9nZGVzdCAhPSBv bGRfZGVzdCkKKwkJCQkJeworCQkJCQkJYm9vbAkJdXBkYXRlX3JlbGlkOworCQkJCQkJT2lkCQkJ cmVsaWQgPSBJbnZhbGlkT2lkOworCisJCQkJCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25f c3ViY29uZmxpY3Rsb2dkZXN0IC0gMV0gPQorCQkJCQkJCUNTdHJpbmdHZXRUZXh0RGF0dW0oQ29u ZmxpY3RMb2dEZXN0TmFtZXNbb3B0cy5jb25mbGljdGxvZ2Rlc3RdKTsKKwkJCQkJCXJlcGxhY2Vz W0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbmZsaWN0bG9nZGVzdCAtIDFdID0gdHJ1ZTsKKwor CQkJCQkJdXBkYXRlX3JlbGlkID0gYWx0ZXJfc3ViX2NvbmZsaWN0bG9nZGVzdGluYXRpb24oc3Vi LAorCQkJCQkJCQkJCQkJCQkJCQkJb2xkX2Rlc3QsCisJCQkJCQkJCQkJCQkJCQkJCQlvcHRzLmNv bmZsaWN0bG9nZGVzdCwKKwkJCQkJCQkJCQkJCQkJCQkJCSZyZWxpZCk7CisJCQkJCQlpZiAodXBk YXRlX3JlbGlkKQorCQkJCQkJeworCQkJCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9z dWJjb25mbGljdGxvZ3JlbGlkIC0gMV0gPQorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHJlbGlk KTsKKwkJCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ3Jl bGlkIC0gMV0gPQorCQkJCQkJCQl0cnVlOworCQkJCQkJfQorCQkJCQl9CisJCQkJfQorCiAJCQkJ dXBkYXRlX3R1cGxlID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTIxNzgsNiArMjMzMCw1 MSBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0 aW9uU3RtdCAqc3RtdCwKIAlyZXR1cm4gbXlzZWxmOwogfQogCisvKgorICogRHJvcCBzdWJzY3Jp cHRpb24ncyBjb25mbGljdCBsb2cgdGFibGUKKyAqCisgKiBUaGUgY29uZmxpY3QgbG9nIHRhYmxl IGlzIHJlZ2lzdGVyZWQgYXMgYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSBvZiB0aGUKKyAqIHN1YnNj cmlwdGlvbi4gVGhpcyBmdW5jdGlvbiByZW1vdmVzIHRoZSBkZXBlbmRlbmN5IGJ5IHBlcmZvcm1p bmcgYQorICogY2FzY2FkaW5nIGRlbGV0aW9uIG9uIHRoZSBzdWJzY3JpcHRpb24gb2JqZWN0LCB3 aGljaCBpbiB0dXJuIGRyb3BzIHRoZQorICogYXNzb2NpYXRlZCBjb25mbGljdCBsb2cgdGFibGUu CisgKgorICogVGhpcyBpcyB1c2VkIHRvIGNsZWFuIHVwIGNvbmZsaWN0IGxvZyB0YWJsZXMgdGhh dCBhcmUgbm8gbG9uZ2VyIHJlcXVpcmVkLAorICogcHJldmVudGluZyBhY2N1bXVsYXRpb24gb2Yg c3RhbGUgb3Igb3JwaGFuZWQgcmVsYXRpb25zLgorICoKKyAqIE5PVEU6CisgKiBPbmx5IGNvbmZs aWN0IGxvZyB0YWJsZXMgYXJlIGN1cnJlbnRseSBtYW5hZ2VkIHZpYSB0aGlzIGludGVybmFsIGRl cGVuZGVuY3kKKyAqIG1lY2hhbmlzbS4KKyAqLworc3RhdGljIHZvaWQKK2Ryb3Bfc3ViX2NvbmZs aWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1Ym5hbWUsIE9pZCBzdWJjb25mbGljdGxv Z3JlbGlkKQoreworCS8qIERyb3AgYW55IGRlcGVuZGVudCBjb25mbGljdCBsb2cgdGFibGUgKi8K KwlpZiAoT2lkSXNWYWxpZChzdWJjb25mbGljdGxvZ3JlbGlkKSkKKwl7CisJCU9iamVjdEFkZHJl c3Mgb2JqZWN0OworCQljaGFyIAkJICpjb25mbGljdHJlbG5hbWU7CisKKwkJY29uZmxpY3RyZWxu YW1lID0gZ2V0X3JlbF9uYW1lKHN1YmNvbmZsaWN0bG9ncmVsaWQpOworCQlpZiAoY29uZmxpY3Ry ZWxuYW1lID09IE5VTEwpCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig cmVsYXRpb24gJXUiLAorCQkJCSBzdWJjb25mbGljdGxvZ3JlbGlkKTsKKworCQkvKgorCQkgKiBC eSB1c2luZyBQRVJGT1JNX0RFTEVUSU9OX1NLSVBfT1JJR0lOQUwsIHdlIGVuc3VyZSB0aGF0IG9u bHkgdGhlCisJCSAqIGNvbmZsaWN0IGxvZyB0YWJsZSBpcyBkZWxldGVkIHdoaWxlIHRoZSBzdWJz Y3JpcHRpb24gcmVtYWlucy4KKwkJICovCisJCU9iamVjdEFkZHJlc3NTZXQob2JqZWN0LCBTdWJz Y3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCk7CisJCXBlcmZvcm1EZWxldGlvbigmb2JqZWN0LCBE Uk9QX0NBU0NBREUsCisJCQkJCQlQRVJGT1JNX0RFTEVUSU9OX0lOVEVSTkFMIHwKKwkJCQkJCVBF UkZPUk1fREVMRVRJT05fU0tJUF9PUklHSU5BTCk7CisKKwkJZXJlcG9ydChOT1RJQ0UsCisJCQkJ ZXJybXNnKCJkcm9wcGVkIGNvbmZsaWN0IGxvZyB0YWJsZSBcIiVzXCIgZm9yIHN1YnNjcmlwdGlv biBcIiVzXCIiLAorCQkJCQkJZ2V0X3F1YWxpZmllZF9vYmpuYW1lKFBHX0NPTkZMSUNUX05BTUVT UEFDRSwgY29uZmxpY3RyZWxuYW1lKSwKKwkJCQkJCXN1Ym5hbWUpKTsKKwl9Cit9CisKIC8qCiAg KiBEcm9wIGEgc3Vic2NyaXB0aW9uCiAgKi8KQEAgLTIxODksNiArMjM4Niw3IEBAIERyb3BTdWJz Y3JpcHRpb24oRHJvcFN1YnNjcmlwdGlvblN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAlI ZWFwVHVwbGUJdHVwOwogCU9pZAkJCXN1YmlkOwogCU9pZAkJCXN1Ym93bmVyOworCU9pZAkJCXN1 YmNvbmZsaWN0bG9ncmVsaWQ7CiAJRGF0dW0JCWRhdHVtOwogCWJvb2wJCWlzbnVsbDsKIAljaGFy CSAgICpzdWJuYW1lOwpAQCAtMjIzNCw2ICsyNDMyLDcgQEAgRHJvcFN1YnNjcmlwdGlvbihEcm9w U3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCWZvcm0gPSAoRm9ybV9w Z19zdWJzY3JpcHRpb24pIEdFVFNUUlVDVCh0dXApOwogCXN1YmlkID0gZm9ybS0+b2lkOwogCXN1 Ym93bmVyID0gZm9ybS0+c3Vib3duZXI7CisJc3ViY29uZmxpY3Rsb2dyZWxpZCA9IGZvcm0tPnN1 YmNvbmZsaWN0bG9ncmVsaWQ7CiAJbXVzdF91c2VfcGFzc3dvcmQgPSAhc3VwZXJ1c2VyX2FyZyhz dWJvd25lcikgJiYgZm9ybS0+c3VicGFzc3dvcmRyZXF1aXJlZDsKIAogCS8qIG11c3QgYmUgb3du ZXIgKi8KQEAgLTIzODgsNiArMjU4Nyw4IEBAIERyb3BTdWJzY3JpcHRpb24oRHJvcFN1YnNjcmlw dGlvblN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAlkZWxldGVEZXBlbmRlbmN5UmVjb3Jk c0ZvcihTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCwgZmFsc2UpOwogCWRlbGV0ZVNoYXJl ZERlcGVuZGVuY3lSZWNvcmRzRm9yKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkLCAwKTsK IAorCWRyb3Bfc3ViX2NvbmZsaWN0X2xvZ190YWJsZShzdWJpZCwgc3VibmFtZSwgc3ViY29uZmxp Y3Rsb2dyZWxpZCk7CisKIAkvKiBSZW1vdmUgYW55IGFzc29jaWF0ZWQgcmVsYXRpb24gc3luY2hy b25pemF0aW9uIHN0YXRlcy4gKi8KIAlSZW1vdmVTdWJzY3JpcHRpb25SZWwoc3ViaWQsIEludmFs aWRPaWQpOwogCkBAIC0yNjIxLDYgKzI4MjIsMTEgQEAgQWx0ZXJTdWJzY3JpcHRpb25Pd25lcl9p bnRlcm5hbChSZWxhdGlvbiByZWwsIEhlYXBUdXBsZSB0dXAsIE9pZCBuZXdPd25lcklkKQogCWZv cm0tPnN1Ym93bmVyID0gbmV3T3duZXJJZDsKIAlDYXRhbG9nVHVwbGVVcGRhdGUocmVsLCAmdHVw LT50X3NlbGYsIHR1cCk7CiAKKwkvKiBVcGRhdGUgb3duZXIgb2YgdGhlIGNvbmZsaWN0IGxvZyB0 YWJsZSBpZiBpdCBleGlzdHMuICovCisJaWYgKE9pZElzVmFsaWQoZm9ybS0+c3ViY29uZmxpY3Rs b2dyZWxpZCkpCisJCUFURXhlY0NoYW5nZU93bmVyKGZvcm0tPnN1YmNvbmZsaWN0bG9ncmVsaWQs IG5ld093bmVySWQsIHRydWUsCisJCQkJCQkgIEFjY2Vzc0V4Y2x1c2l2ZUxvY2spOworCiAJLyog VXBkYXRlIG93bmVyIGRlcGVuZGVuY3kgcmVmZXJlbmNlICovCiAJY2hhbmdlRGVwZW5kZW5jeU9u T3duZXIoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwKIAkJCQkJCQlmb3JtLT5vaWQsCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCmluZGV4IGExODQ1MjQwYTk4Li4wYTBjYTJiODUwZSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMKQEAgLTI0NTcsOSArMjQ1NywxMSBAQCB0cnVuY2F0ZV9jaGVja19y ZWwoT2lkIHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogCSAqIHBnX2xhcmdlb2JqZWN0 IGFuZCBwZ19sYXJnZW9iamVjdF9tZXRhZGF0YSB0byBiZSB0cnVuY2F0ZWQgYXMgcGFydCBvZgog CSAqIHBnX3VwZ3JhZGUsIGJlY2F1c2Ugd2UgbmVlZCB0byBjaGFuZ2UgaXRzIHJlbGZpbGVub2Rl IHRvIG1hdGNoIHRoZSBvbGQKIAkgKiBjbHVzdGVyLCBhbmQgYWxsb3dpbmcgYSBUUlVOQ0FURSBj b21tYW5kIHRvIGJlIGV4ZWN1dGVkIGlzIHRoZSBlYXNpZXN0Ci0JICogd2F5IG9mIGRvaW5nIHRo YXQuCisJICogd2F5IG9mIGRvaW5nIHRoYXQuIFdlIGFsc28gYWxsb3cgVFJVTkNBVEUgb24gdGhl IGNvbmZsaWN0IGxvZyB0YWJsZXMsCisJICogdG8gcGVybWl0IHVzZXJzIHRvIG1hbnVhbGx5IHBy dW5lIGNvbmZsaWN0IGRhdGEgdG8gbWFuYWdlIGRpc2sgc3BhY2UuCiAJICovCi0JaWYgKCFhbGxv d1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCByZWx0dXBsZSkKKwlpZiAo IWFsbG93U3lzdGVtVGFibGVNb2RzICYmIElzU3lzdGVtQ2xhc3MocmVsaWQsIHJlbHR1cGxlKSAm JgorCQkhSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MocmVsdHVwbGUpCiAJCSYmICghSXNCaW5hcnlV cGdyYWRlIHx8CiAJCQkocmVsaWQgIT0gTGFyZ2VPYmplY3RSZWxhdGlvbklkICYmCiAJCQkgcmVs aWQgIT0gTGFyZ2VPYmplY3RNZXRhZGF0YVJlbGF0aW9uSWQpKSkKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFp bi5jCmluZGV4IDRiMzBmNzY4NjgwLi5mODdlZjY1ZjM0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFp bi5jCkBAIC0xMTg3LDYgKzExODcsMjQgQEAgQ2hlY2tWYWxpZFJlc3VsdFJlbChSZXN1bHRSZWxJ bmZvICpyZXN1bHRSZWxJbmZvLCBDbWRUeXBlIG9wZXJhdGlvbiwKIAkJCQkJCQlSZWxhdGlvbkdl dFJlbGF0aW9uTmFtZShyZXN1bHRSZWwpKSkpOwogCQkJYnJlYWs7CiAJfQorCisJLyoKKwkgKiBD b25mbGljdCBsb2cgdGFibGVzIGFyZSBtYW5hZ2VkIGJ5IHRoZSBzeXN0ZW0gdG8gcmVjb3JkIGxv Z2ljYWwKKwkgKiByZXBsaWNhdGlvbiBjb25mbGljdHMuICBXZSBhbGxvdyBERUxFVEUgYW5kIFRS VU5DQVRFIHRvIHBlcm1pdCB1c2VycyB0bworCSAqIG1hbnVhbGx5IHBydW5lIHRoZXNlIGxvZ3Ms IGJ1dCBtYW51YWwgZGF0YSBpbnNlcnRpb24gb3IgbW9kaWZpY2F0aW9uCisJICogKElOU0VSVCwg VVBEQVRFLCBNRVJHRSkgaXMgcHJvaGliaXRlZCB0byBtYWludGFpbiB0aGUgaW50ZWdyaXR5IG9m IHRoZQorCSAqIHN5c3RlbS1nZW5lcmF0ZWQgbG9ncy4KKwkgKgorCSAqIFNpbmNlIFRSVU5DQVRF IGlzIGhhbmRsZWQgYXMgYSBzZXBhcmF0ZSB1dGlsaXR5IGNvbW1hbmQsIHdlIG9ubHkgbmVlZAor CSAqIHRvIGV4cGxpY2l0bHkgcGVybWl0IENNRF9ERUxFVEUgaGVyZS4KKwkgKi8KKwlpZiAoSXND b25mbGljdExvZ1RhYmxlTmFtZXNwYWNlKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlc3VsdFJlbCkp ICYmCisJCW9wZXJhdGlvbiAhPSBDTURfREVMRVRFKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coImNhbm5vdCBt b2RpZnkgb3IgaW5zZXJ0IGRhdGEgaW50byBjb25mbGljdCBsb2cgdGFibGUgXCIlc1wiIiwKKwkJ CQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlc3VsdFJlbCkpLAorCQkJCSBlcnJkZXRhaWwo IkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIGFuZCBvbmx5IHN1cHBvcnQg Y2xlYW51cCB2aWEgREVMRVRFIG9yIFRSVU5DQVRFLiIpKSk7CiB9CiAKIC8qCkBAIC0xMjU4LDYg KzEyNzYsMTYgQEAgQ2hlY2tWYWxpZFJvd01hcmtSZWwoUmVsYXRpb24gcmVsLCBSb3dNYXJrVHlw ZSBtYXJrVHlwZSkKIAkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwogCQkJ YnJlYWs7CiAJfQorCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBtYW5hZ2VkIGJ5 IHRoZSBzeXN0ZW0gdG8gcmVjb3JkIGxvZ2ljYWwKKwkgKiByZXBsaWNhdGlvbiBjb25mbGljdHMu CisJICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShSZWxhdGlvbkdldE5hbWVz cGFjZShyZWwpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05H X09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgbG9jayByb3dzIGluIHRoZSBjb25m bGljdCBsb2cgdGFibGUgXCIlc1wiIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJl bCkpKSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL2NvbmZsaWN0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0 LmMKaW5kZXggMWY4ZDY3ZmRkOTAuLjRhNjQ3Mjc3ZDFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9jb25mbGljdC5jCkBAIC0xNyw2ICsxNywxMCBAQAogI2luY2x1ZGUgImFj Y2Vzcy9jb21taXRfdHMuaCIKICNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKICNpbmNsdWRlICJh Y2Nlc3MvdGFibGVhbS5oIgorI2luY2x1ZGUgImNhdGFsb2cvaGVhcC5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfYW0uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgog I2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2NvbmZsaWN0LmgiCkBA IC0yNCw2ICsyOCw1MCBAQAogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUgInV0 aWxzL2xzeXNjYWNoZS5oIgogCisvKgorICogU3RyaW5nIHJlcHJlc2VudGF0aW9ucyBmb3IgdGhl IHN1cHBvcnRlZCBjb25mbGljdCBsb2dnaW5nIGRlc3RpbmF0aW9ucy4KKyAqLworY29uc3QgY2hh ciAqY29uc3QgQ29uZmxpY3RMb2dEZXN0TmFtZXNbXSA9IHsKKwlbQ09ORkxJQ1RfTE9HX0RFU1Rf TE9HXSA9ICJsb2ciLAorCVtDT05GTElDVF9MT0dfREVTVF9UQUJMRV0gPSAidGFibGUiLAorCVtD T05GTElDVF9MT0dfREVTVF9BTExdID0gImFsbCIKK307CisKK1N0YXRpY0Fzc2VydERlY2wobGVu Z3Rob2YoQ29uZmxpY3RMb2dEZXN0TmFtZXMpID09IENPTkZMSUNUX0xPR19ERVNUX0FMTCArIDEs CisJCQkJICJDb25mbGljdExvZ0Rlc3ROYW1lcyBsZW5ndGggbWlzbWF0Y2giKTsKKworCisvKiBT dHJ1Y3R1cmUgdG8gaG9sZCBtZXRhZGF0YSBmb3Igb25lIGNvbHVtbiBvZiB0aGUgY29uZmxpY3Qg bG9nIHRhYmxlICovCit0eXBlZGVmIHN0cnVjdCBDb25mbGljdExvZ0NvbHVtbkRlZgoreworCWNv bnN0IGNoYXIgKmF0dG5hbWU7ICAgIC8qIENvbHVtbiBuYW1lICovCisJT2lkICAgICAgICAgYXR0 dHlwaWQ7ICAgLyogRGF0YSB0eXBlIE9JRCAqLworfSBDb25mbGljdExvZ0NvbHVtbkRlZjsKKwor LyoKKyAqIFNjaGVtYSBkZWZpbml0aW9uIGZvciBjb25mbGljdCBsb2cgdGFibGVzLgorICoKKyAq IERlZmluZXMgdGhlIGZpeGVkIHNjaGVtYSBvZiB0aGUgcGVyLXN1YnNjcmlwdGlvbiBjb25mbGlj dCBsb2cgdGFibGUgY3JlYXRlZAorICogaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZS4gRWFj aCBlbnRyeSBzcGVjaWZpZXMgdGhlIGNvbHVtbiBuYW1lIGFuZCBpdHMKKyAqIHR5cGUgT0lEOyB0 aGUgdGFibGUgaXMgY3JlYXRlZCBpbiB0aGlzIGNvbHVtbiBvcmRlciBieQorICogY3JlYXRlX2Nv bmZsaWN0X2xvZ190YWJsZSgpLgorICovCitzdGF0aWMgY29uc3QgQ29uZmxpY3RMb2dDb2x1bW5E ZWYgQ29uZmxpY3RMb2dTY2hlbWFbXSA9IHsKKwl7IC5hdHRuYW1lID0gInJlbGlkIiwgICAgICAg ICAgICAuYXR0dHlwaWQgPSBPSURPSUQgfSwKKwl7IC5hdHRuYW1lID0gInNjaGVtYW5hbWUiLCAg ICAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZWxuYW1lIiwgICAg ICAgICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAiY29uZmxpY3RfdHlw ZSIsICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV94aWQi LCAgICAgICAuYXR0dHlwaWQgPSBYSURPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV9jb21t aXRfbHNuIiwuYXR0dHlwaWQgPSBMU05PSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV9jb21t aXRfdHMiLCAuYXR0dHlwaWQgPSBUSU1FU1RBTVBUWk9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVt b3RlX29yaWdpbiIsICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJl bW90ZV90dXBsZSIsICAgICAuYXR0dHlwaWQgPSBKU09OT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJy ZXBsaWNhX2lkZW50aXR5IiwgLmF0dHR5cGlkID0gSlNPTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAi bG9jYWxfY29uZmxpY3RzIiwgIC5hdHR0eXBpZCA9IEpTT05BUlJBWU9JRCB9Cit9OworCisjZGVm aW5lIE5VTV9DT05GTElDVF9BVFRSUyBsZW5ndGhvZihDb25mbGljdExvZ1NjaGVtYSkKKwogc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IENvbmZsaWN0VHlwZU5hbWVzW10gPSB7CiAJW0NUX0lOU0VS VF9FWElTVFNdID0gImluc2VydF9leGlzdHMiLAogCVtDVF9VUERBVEVfT1JJR0lOX0RJRkZFUlNd ID0gInVwZGF0ZV9vcmlnaW5fZGlmZmVycyIsCkBAIC01NCw2ICsxMDIsMTMzIEBAIHN0YXRpYyB2 b2lkIGdldF90dXBsZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZv LAogc3RhdGljIGNoYXIgKmJ1aWxkX2luZGV4X3ZhbHVlX2Rlc2MoRVN0YXRlICplc3RhdGUsIFJl bGF0aW9uIGxvY2FscmVsLAogCQkJCQkJCQkJVHVwbGVUYWJsZVNsb3QgKnNsb3QsIE9pZCBpbmRl eG9pZCk7CiAKKy8qCisgKiBCdWlsZHMgdGhlIFR1cGxlRGVzYyBmb3IgdGhlIGNvbmZsaWN0IGxv ZyB0YWJsZS4KKyAqLworc3RhdGljIFR1cGxlRGVzYworY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJs ZV90dXBkZXNjKHZvaWQpCit7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisKKwl0dXBkZXNjID0gQ3Jl YXRlVGVtcGxhdGVUdXBsZURlc2MoTlVNX0NPTkZMSUNUX0FUVFJTKTsKKworCWZvciAoaW50IGkg PSAwOyBpIDwgTlVNX0NPTkZMSUNUX0FUVFJTOyBpKyspCisJCVR1cGxlRGVzY0luaXRFbnRyeSh0 dXBkZXNjLCBpICsgMSwKKwkJCQkJCSAgIENvbmZsaWN0TG9nU2NoZW1hW2ldLmF0dG5hbWUsCisJ CQkJCQkgICBDb25mbGljdExvZ1NjaGVtYVtpXS5hdHR0eXBpZCwKKwkJCQkJCSAgIC0xLCAwKTsK KworCVR1cGxlRGVzY0ZpbmFsaXplKHR1cGRlc2MpOworCisJcmV0dXJuIHR1cGRlc2M7Cit9CisK Ky8qCisgKiBDcmVhdGUgYSBzdHJ1Y3R1cmVkIGNvbmZsaWN0IGxvZyB0YWJsZSBmb3IgYSBzdWJz Y3JpcHRpb24uCisgKgorICogVGhlIHRhYmxlIGlzIGNyZWF0ZWQgd2l0aGluIHRoZSBzeXN0ZW0t bWFuYWdlZCAncGdfY29uZmxpY3QnIG5hbWVzcGFjZSB0bworICogcHJldmVudCB1c2VycyBmcm9t IG1hbnVhbGx5IGRyb3BwaW5nIG9yIGFsdGVyaW5nIGl0LiAgVGhpcyBhbHNvIHByZXZlbnRzCisg KiBhY2NpZGVudGFsIG5hbWUgY29sbGlzaW9ucyB3aXRoIHVzZXItY3JlYXRlZCB0YWJsZXMgd2l0 aCB0aGUgc2FtZSBuYW1lLgorICoKKyAqIFRoZSB0YWJsZSBuYW1lIGlzIGdlbmVyYXRlZCBhdXRv bWF0aWNhbGx5IHVzaW5nIHRoZSBzdWJzY3JpcHRpb24ncyBPSUQKKyAqIChlLmcuLCAicGdfY29u ZmxpY3RfbG9nXzxzdWJpZD4iKSB0byBlbnN1cmUgdW5pcXVlbmVzcyB3aXRoaW4gdGhlCisgKiBj bHVzdGVyIGFuZCB0byBhdm9pZCBjb2xsaXNpb25zIGR1cmluZyBzdWJzY3JpcHRpb24gcmVuYW1l cy4KKyAqLworT2lkCitjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKE9pZCBzdWJpZCwgY2hhciAq c3VibmFtZSwgT2lkIHN1Ym93bmVyKQoreworCVR1cGxlRGVzYwl0dXBkZXNjOworCU9pZAkJCXJl bGlkOworCWNoYXIgICAgCXJlbG5hbWVbTkFNRURBVEFMRU5dOworCisJc25wcmludGYocmVsbmFt ZSwgTkFNRURBVEFMRU4sICJwZ19jb25mbGljdF9sb2dfJXUiLCBzdWJpZCk7CisKKwkvKgorCSAq IENoZWNrIGZvciBhbiBleGlzdGluZyB0YWJsZSB3aXRoIHRoZSBzYW1lIG5hbWUgaW4gdGhlIHBn X2NvbmZsaWN0IG5hbWVzcGFjZS4KKwkgKiBBIGNvbGxpc2lvbiBzaG91bGQgbm90IG9jY3VyIHVu ZGVyIG5vcm1hbCBvcGVyYXRpb24sIGJ1dCB3ZSBtdXN0IGhhbmRsZSBjYXNlcworCSAqIHdoZXJl IGEgdGFibGUgaGFzIGJlZW4gY3JlYXRlZCBtYW51YWxseSB3aGVuIGFsbG93X3N5c3RlbV90YWJs ZXNfbW9kcyBpcworCSAqIE9OLgorCSAqLworCWlmIChPaWRJc1ZhbGlkKGdldF9yZWxuYW1lX3Jl bGlkKHJlbG5hbWUsIFBHX0NPTkZMSUNUX05BTUVTUEFDRSkpKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX1RBQkxFKSwKKwkJCQkgZXJybXNnKCJjb25m bGljdCBsb2cgdGFibGUgcGdfY29uZmxpY3QuXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwgcmVsbmFt ZSksCisJCQkJIGVycmhpbnQoIlRvIHByb2NlZWQsIGRyb3AgdGhlIGV4aXN0aW5nIHRhYmxlIGFu ZCByZXRyeS4iKSkpOworCisJLyogQnVpbGQgdGhlIHR1cGxlIGRlc2NyaXB0b3IgZm9yIHRoZSBu ZXcgdGFibGUuICovCisJdHVwZGVzYyA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGVfdHVwZGVz YygpOworCisJLyogQ3JlYXRlIGNvbmZsaWN0IGxvZyB0YWJsZS4gKi8KKwlyZWxpZCA9IGhlYXBf Y3JlYXRlX3dpdGhfY2F0YWxvZyhyZWxuYW1lLAorCQkJCQkJCQkJIFBHX0NPTkZMSUNUX05BTUVT UEFDRSwKKwkJCQkJCQkJCSAwLAkvKiB0YWJsZXNwYWNlICovCisJCQkJCQkJCQkgSW52YWxpZE9p ZCwgLyogcmVsaWQgKi8KKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiByZWx0eXBlaWQgKi8KKwkJ CQkJCQkJCSBJbnZhbGlkT2lkLCAvKiByZWxvZnR5cGVpZCAqLworCQkJCQkJCQkJIHN1Ym93bmVy LAorCQkJCQkJCQkJIEhFQVBfVEFCTEVfQU1fT0lELAorCQkJCQkJCQkJIHR1cGRlc2MsCisJCQkJ CQkJCQkgTklMLAorCQkJCQkJCQkJIFJFTEtJTkRfUkVMQVRJT04sCisJCQkJCQkJCQkgUkVMUEVS U0lTVEVOQ0VfUEVSTUFORU5ULAorCQkJCQkJCQkJIGZhbHNlLCAvKiBzaGFyZWRfcmVsYXRpb24g Ki8KKwkJCQkJCQkJCSBmYWxzZSwgLyogbWFwcGVkX3JlbGF0aW9uICovCisJCQkJCQkJCQkgT05D T01NSVRfTk9PUCwKKwkJCQkJCQkJCSAoRGF0dW0pIDAsIC8qIHJlbG9wdGlvbnMgKi8KKwkJCQkJ CQkJCSBmYWxzZSwgLyogdXNlX3VzZXJfYWNsICovCisJCQkJCQkJCQkgdHJ1ZSwgLyogYWxsb3df c3lzdGVtX3RhYmxlX21vZHMgKi8KKwkJCQkJCQkJCSB0cnVlLCAvKiBpc19pbnRlcm5hbCAqLwor CQkJCQkJCQkJIEludmFsaWRPaWQsIC8qIHJlbHJld3JpdGUgKi8KKwkJCQkJCQkJCSBOVUxMKTsg LyogdHlwYWRkcmVzcyAqLworCUFzc2VydChPaWRJc1ZhbGlkKHJlbGlkKSk7CisKKwkvKiBSZWxl YXNlIHR1cGxlIGRlc2NyaXB0b3IgbWVtb3J5LiAqLworCUZyZWVUdXBsZURlc2ModHVwZGVzYyk7 CisKKwkvKgorCSAqIFdlIG11c3QgYnVtcCB0aGUgY29tbWFuZCBjb3VudGVyIHRvIG1ha2UgdGhl IG5ld2x5LWNyZWF0ZWQgcmVsYXRpb24KKwkgKiB0dXBsZSB2aXNpYmxlIGZvciBvcGVuaW5nLgor CSAqLworCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisKKwkvKgorCSAqIENyZWF0ZSBhIFRP QVNUIHRhYmxlIGZvciB0aGUgY29uZmxpY3QgbG9nIHRvIHN1cHBvcnQgb3V0LW9mLWxpbmUgc3Rv cmFnZQorCSAqIG9mIGxhcmdlIEpTT04gZGF0YS4KKwkgKi8KKwlOZXdSZWxhdGlvbkNyZWF0ZVRv YXN0VGFibGUocmVsaWQsIChEYXR1bSkgMCk7CisKKwllcmVwb3J0KE5PVElDRSwKKwkJCShlcnJt c2coImNyZWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiBmb3Igc3Vic2NyaXB0aW9uIFwi JXNcIiIsCisJCQkJCWdldF9xdWFsaWZpZWRfb2JqbmFtZShQR19DT05GTElDVF9OQU1FU1BBQ0Us IHJlbG5hbWUpLAorCQkJCQlzdWJuYW1lKSkpOworCisJcmV0dXJuIHJlbGlkOworfQorCisvKgor ICogQ29udmVydCB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgY29uZmxpY3QgbG9nZ2lu ZyBkZXN0aW5hdGlvbiB0byBpdHMKKyAqIGNvcnJlc3BvbmRpbmcgZW51bSB2YWx1ZS4KKyAqLwor Q29uZmxpY3RMb2dEZXN0CitHZXRDb25mbGljdExvZ0Rlc3QoY29uc3QgY2hhciAqZGVzdCkKK3sK KwkvKiBFbXB0eSBzdHJpbmcgb3IgTlVMTCBkZWZhdWx0cyB0byBMT0cuICovCisJaWYgKGRlc3Qg PT0gTlVMTCB8fCBkZXN0WzBdID09ICdcMCcgfHwgcGdfc3RyY2FzZWNtcChkZXN0LCAibG9nIikg PT0gMCkKKwkJcmV0dXJuIENPTkZMSUNUX0xPR19ERVNUX0xPRzsKKworCWlmIChwZ19zdHJjYXNl Y21wKGRlc3QsICJ0YWJsZSIpID09IDApCisJCXJldHVybiBDT05GTElDVF9MT0dfREVTVF9UQUJM RTsKKworCWlmIChwZ19zdHJjYXNlY21wKGRlc3QsICJhbGwiKSA9PSAwKQorCQlyZXR1cm4gQ09O RkxJQ1RfTE9HX0RFU1RfQUxMOworCisJLyogVW5yZWNvZ25pemVkIHN0cmluZy4gKi8KKwllcmVw b3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSks CisJCQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHZhbHVl OiBcIiVzXCIiLCBkZXN0KSwKKwkJCSBlcnJoaW50KCJWYWxpZCB2YWx1ZXMgYXJlIFwibG9nXCIs IFwidGFibGVcIiwgYW5kIFwiYWxsXCIuIikpKTsKK30KKwogLyoKICAqIEdldCB0aGUgeG1pbiBh bmQgY29tbWl0IHRpbWVzdGFtcCBkYXRhIChvcmlnaW4gYW5kIHRpbWVzdGFtcCkgYXNzb2NpYXRl ZAogICogd2l0aCB0aGUgcHJvdmlkZWQgbG9jYWwgcm93LgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lz Y2FjaGUuYwppbmRleCAwMzYwODYwNTdkNy4uYjYwYmQ4ZjZjMGUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL2xzeXNjYWNoZS5jCkBAIC0zNjM0LDcgKzM2MzQsNyBAQCBnZXRfbmFtZXNwYWNlX25hbWVf b3JfdGVtcChPaWQgbnNwaWQpCiAgKgkJb2JqZWN0IGZvciB0aGUgZ2l2ZW4gbmFtZXNwYWNlIElE IGFuZCBvYmplY3QgbmFtZS4KICAqLwogY2hhciAqCi1nZXRfcXVhbGlmaWVkX29iam5hbWUoT2lk IG5zcGlkLCBjaGFyICpvYmpuYW1lKQorZ2V0X3F1YWxpZmllZF9vYmpuYW1lKE9pZCBuc3BpZCwg Y29uc3QgY2hhciAqb2JqbmFtZSkKIHsKIAljaGFyCSAgICpuc3BuYW1lOwogCWNoYXIJICAgKnJl c3VsdDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jIGIvc3JjL2Jpbi9pbml0 ZGIvaW5pdGRiLmMKaW5kZXggMTRjYjc5YzI2YmUuLjgwM2NhNDExMmQ0IDEwMDY0NAotLS0gYS9z cmMvYmluL2luaXRkYi9pbml0ZGIuYworKysgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwpAQCAt MTgzOSw2ICsxODM5LDEyIEBAIHNldHVwX3ByaXZpbGVnZXMoRklMRSAqY21kZmQpCiAJCQkJICAi ICBBTkQgcmVsYWNsIElTIE5VTEw7XG5cbiIsCiAJCQkJICBlc2NhcGVfcXVvdGVzKHVzZXJuYW1l KSk7CiAJUEdfQ01EX1BVVFMoIkdSQU5UIFVTQUdFIE9OIFNDSEVNQSBwZ19jYXRhbG9nLCBwdWJs aWMgVE8gUFVCTElDO1xuXG4iKTsKKworCS8qCisJICogQWxsb3cgbm9uLXN1cGVydXNlciBzdWJz Y3JpcHRpb24gb3duZXJzIHRvIGFjY2VzcyB0aGVpciBhc3NvY2lhdGVkCisJICogY29uZmxpY3Qg bG9nIHRhYmxlcyBpbiB0aGUgcGdfY29uZmxpY3Qgc2NoZW1hLgorCSAqLworCVBHX0NNRF9QVVRT KCJHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgcGdfY29uZmxpY3QgVE8gUFVCTElDO1xuXG4iKTsKIAlQ R19DTURfUFVUUygiUkVWT0tFIEFMTCBPTiBwZ19sYXJnZW9iamVjdCBGUk9NIFBVQkxJQztcblxu Iik7CiAJUEdfQ01EX1BVVFMoIklOU0VSVCBJTlRPIHBnX2luaXRfcHJpdnMgIgogCQkJCSIgIChv YmpvaWQsIGNsYXNzb2lkLCBvYmpzdWJpZCwgaW5pdHByaXZzLCBwcml2dHlwZSkiCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMKaW5kZXggZGU1NDdhOGNiMzcuLjY2ZWUxYjZjMmE0IDEwMDY0NAotLS0gYS9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCkBAIC0yMzc2LDggKzIzNzYsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQg cGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiKCIsICJQVUJMSUNBVElPTiIpOwogCS8qIEFM VEVSIFNVQlNDUklQVElPTiA8bmFtZT4gU0VUICggKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRF UiIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSwgTWF0Y2hBbnlOLCAiU0VUIiwgIigiKSkKLQkJ Q09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImRpc2FibGVfb25fZXJyb3IiLCAiZmFpbG92ZXIiLAot CQkJCQkgICJtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIiwgIm9yaWdpbiIsCisJCUNPTVBMRVRFX1dJ VEgoImJpbmFyeSIsICJjb25mbGljdF9sb2dfZGVzdGluYXRpb24iLCAiZGlzYWJsZV9vbl9lcnJv ciIsCisJCQkJCSAgImZhaWxvdmVyIiwgIm1heF9yZXRlbnRpb25fZHVyYXRpb24iLCAib3JpZ2lu IiwKIAkJCQkJICAicGFzc3dvcmRfcmVxdWlyZWQiLCAicmV0YWluX2RlYWRfdHVwbGVzIiwKIAkJ CQkJICAicnVuX2FzX293bmVyIiwgInNsb3RfbmFtZSIsICJzdHJlYW1pbmciLAogCQkJCQkgICJz eW5jaHJvbm91c19jb21taXQiLCAidHdvX3BoYXNlIik7CkBAIC0zOTYwLDggKzM5NjAsOCBAQCBt YXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiV0lU SCAoIik7CiAJLyogQ29tcGxldGUgIkNSRUFURSBTVUJTQ1JJUFRJT04gPG5hbWU+IC4uLiAgV0lU SCAoIDxvcHQ+IiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04i LCBNYXRjaEFueU4sICJXSVRIIiwgIigiKSkKLQkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNv bm5lY3QiLCAiY29weV9kYXRhIiwgImNyZWF0ZV9zbG90IiwKLQkJCQkJICAiZGlzYWJsZV9vbl9l cnJvciIsICJlbmFibGVkIiwgImZhaWxvdmVyIiwKKwkJQ09NUExFVEVfV0lUSCgiYmluYXJ5Iiwg ImNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiIsICJjb25uZWN0IiwgImNvcHlfZGF0YSIsCisJCQkJ CSAgImNyZWF0ZV9zbG90IiwgImRpc2FibGVfb25fZXJyb3IiLCAiZW5hYmxlZCIsICJmYWlsb3Zl ciIsCiAJCQkJCSAgIm1heF9yZXRlbnRpb25fZHVyYXRpb24iLCAib3JpZ2luIiwKIAkJCQkJICAi cGFzc3dvcmRfcmVxdWlyZWQiLCAicmV0YWluX2RlYWRfdHVwbGVzIiwKIAkJCQkJICAicnVuX2Fz X293bmVyIiwgInNsb3RfbmFtZSIsICJzdHJlYW1pbmciLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9jYXRhbG9nLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdGFsb2cuaAppbmRl eCBhOWQ2ZThlYTk4Ni4uZmVhYjM5ODJjZjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvY2F0YWxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oCkBAIC0yNSw2 ICsyNSw3IEBAIGV4dGVybiBib29sIElzSW5wbGFjZVVwZGF0ZVJlbGF0aW9uKFJlbGF0aW9uIHJl bGF0aW9uKTsKIAogZXh0ZXJuIGJvb2wgSXNTeXN0ZW1DbGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdf Y2xhc3MgcmVsdHVwbGUpOwogZXh0ZXJuIGJvb2wgSXNUb2FzdENsYXNzKEZvcm1fcGdfY2xhc3Mg cmVsdHVwbGUpOworZXh0ZXJuIGJvb2wgSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MoRm9ybV9wZ19j bGFzcyByZWx0dXBsZSk7CiAKIGV4dGVybiBib29sIElzQ2F0YWxvZ1JlbGF0aW9uT2lkKE9pZCBy ZWxpZCk7CiBleHRlcm4gYm9vbCBJc0NhdGFsb2dUZXh0VW5pcXVlSW5kZXhPaWQoT2lkIHJlbGlk KTsKQEAgLTMyLDYgKzMzLDcgQEAgZXh0ZXJuIGJvb2wgSXNJbnBsYWNlVXBkYXRlT2lkKE9pZCBy ZWxpZCk7CiAKIGV4dGVybiBib29sIElzQ2F0YWxvZ05hbWVzcGFjZShPaWQgbmFtZXNwYWNlSWQp OwogZXh0ZXJuIGJvb2wgSXNUb2FzdE5hbWVzcGFjZShPaWQgbmFtZXNwYWNlSWQpOworZXh0ZXJu IGJvb2wgSXNDb25mbGljdExvZ1RhYmxlTmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCk7CiAKIGV4 dGVybiBib29sIElzUmVzZXJ2ZWROYW1lKGNvbnN0IGNoYXIgKm5hbWUpOwogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv Y2F0dmVyc2lvbi5oCmluZGV4IGExNDE2MjYwYWJjLi5lYmM0ZDNiNzIzZSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9jYXR2ZXJzaW9uLmgKQEAgLTU3LDYgKzU3LDYgQEAKICAqLwogCiAvKgkJCQkJCQl5eXl5bW1k ZE4gKi8KLSNkZWZpbmUgQ0FUQUxPR19WRVJTSU9OX05PCTIwMjYwNTEzMQorI2RlZmluZSBDQVRB TE9HX1ZFUlNJT05fTk8JMjAyNjA2MDQxCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19uYW1lc3BhY2UuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1l c3BhY2UuZGF0CmluZGV4IDMwNzVlMTQyYzczLi5iNDVjYjkzODNhOCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1lc3BhY2UuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfbmFtZXNwYWNlLmRhdApAQCAtMTgsNiArMTgsOSBAQAogeyBvaWQgPT4gJzk5Jywgb2lk X3N5bWJvbCA9PiAnUEdfVE9BU1RfTkFNRVNQQUNFJywKICAgZGVzY3IgPT4gJ3Jlc2VydmVkIHNj aGVtYSBmb3IgVE9BU1QgdGFibGVzJywKICAgbnNwbmFtZSA9PiAncGdfdG9hc3QnLCBuc3BhY2wg PT4gJ19udWxsXycgfSwKK3sgb2lkID0+ICcxMzgyJywgb2lkX3N5bWJvbCA9PiAnUEdfQ09ORkxJ Q1RfTkFNRVNQQUNFJywKKyAgZGVzY3IgPT4gJ3Jlc2VydmVkIHNjaGVtYSBmb3Igc3Vic2NyaXB0 aW9uLXNwZWNpZmljIGNvbmZsaWN0IGxvZyB0YWJsZXMnLAorICBuc3BuYW1lID0+ICdwZ19jb25m bGljdCcsIG5zcGFjbCA9PiAnX251bGxfJyB9LAogIyB1cGRhdGUgZHVtcE5hbWVzcGFjZSgpIGlm IGNoYW5naW5nIHRoaXMgZGVzY3IKIHsgb2lkID0+ICcyMjAwJywgb2lkX3N5bWJvbCA9PiAnUEdf UFVCTElDX05BTUVTUEFDRScsCiAgIGRlc2NyID0+ICdzdGFuZGFyZCBwdWJsaWMgc2NoZW1hJywK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCmluZGV4IGE2YTJhZDFlNDljLi44OWQy MzAwYWJlMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24u aAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCkBAIC05NSw3ICs5 NSwxNiBAQCBDQVRBTE9HKHBnX3N1YnNjcmlwdGlvbiw2MTAwLFN1YnNjcmlwdGlvblJlbGF0aW9u SWQpIEJLSV9TSEFSRURfUkVMQVRJT04gQktJX1JPVwogCU9pZAkJCXN1YnNlcnZlciBCS0lfTE9P S1VQX09QVChwZ19mb3JlaWduX3NlcnZlcik7CS8qIElmIGNvbm5lY3Rpb24gdXNlcwogCQkJCQkJ CQkJCQkJCQkJCSAqIHNlcnZlciAqLwogCisJT2lkCQkJc3ViY29uZmxpY3Rsb2dyZWxpZDsgLyog UmVsaWQgb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4gKi8KICNpZmRlZiBDQVRBTE9HX1ZBUkxF TgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLworCS8qCisJICogU3Ry YXRlZ3kgZm9yIGxvZ2dpbmcgcmVwbGljYXRpb24gY29uZmxpY3RzOgorCSAqICdsb2cnIC0gc2Vy dmVyIGxvZyBvbmx5LAorCSAqICd0YWJsZScgLSBjb25mbGljdCBsb2cgdGFibGUgb25seSwKKwkg KiAnYWxsJyAtIGJvdGggbG9nIGFuZCB0YWJsZS4KKwkgKi8KKwl0ZXh0CQlzdWJjb25mbGljdGxv Z2Rlc3QgQktJX0ZPUkNFX05PVF9OVUxMOworCiAJLyogQ29ubmVjdGlvbiBzdHJpbmcgdG8gdGhl IHB1Ymxpc2hlciAqLwogCXRleHQJCXN1YmNvbm5pbmZvOwkvKiBTZXQgaWYgY29ubmVjdGluZyB3 aXRoIGNvbm5lY3Rpb24gc3RyaW5nICovCiAKQEAgLTE2NCw2ICsxNzMsNyBAQCB0eXBlZGVmIHN0 cnVjdCBTdWJzY3JpcHRpb24KIAkJCQkJCQkJCSAqIGFuZCB0aGUgcmV0ZW50aW9uIGR1cmF0aW9u IGhhcyBub3QKIAkJCQkJCQkJCSAqIGV4Y2VlZGVkIG1heF9yZXRlbnRpb25fZHVyYXRpb24sIHdo ZW4KIAkJCQkJCQkJCSAqIGRlZmluZWQgKi8KKwlPaWQJCQljb25mbGljdGxvZ3JlbGlkOwkvKiBj b25mbGljdCBsb2cgdGFibGUgT2lkICovCiAJY2hhcgkgICAqY29ubmluZm87CQkvKiBDb25uZWN0 aW9uIHN0cmluZyB0byB0aGUgcHVibGlzaGVyICovCiAJY2hhcgkgICAqc2xvdG5hbWU7CQkvKiBO YW1lIG9mIHRoZSByZXBsaWNhdGlvbiBzbG90ICovCiAJY2hhcgkgICAqc3luY2NvbW1pdDsJCS8q IFN5bmNocm9ub3VzIGNvbW1pdCBzZXR0aW5nIGZvciB3b3JrZXIgKi8KQEAgLTE3MSw2ICsxODEs NyBAQCB0eXBlZGVmIHN0cnVjdCBTdWJzY3JpcHRpb24KIAlMaXN0CSAgICpwdWJsaWNhdGlvbnM7 CS8qIExpc3Qgb2YgcHVibGljYXRpb24gbmFtZXMgdG8gc3Vic2NyaWJlIHRvICovCiAJY2hhcgkg ICAqb3JpZ2luOwkJCS8qIE9ubHkgcHVibGlzaCBkYXRhIG9yaWdpbmF0aW5nIGZyb20gdGhlCiAJ CQkJCQkJCSAqIHNwZWNpZmllZCBvcmlnaW4gKi8KKwljaGFyCSAgICpjb25mbGljdGxvZ2Rlc3Q7 CS8qIENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAqLwogfSBTdWJzY3JpcHRpb247CiAKICNpZmRl ZiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL2NvbmZsaWN0LmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCmluZGV4 IDJkOWRiY2Y0ZDBkLi5hMDE3ZTFlNmNiNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vY29uZmxpY3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5o CkBAIC0xMCw2ICsxMCw3IEBACiAjZGVmaW5lIENPTkZMSUNUX0gKIAogI2luY2x1ZGUgImFjY2Vz cy94bG9nZGVmcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImRh dGF0eXBlL3RpbWVzdGFtcC5oIgogI2luY2x1ZGUgIm5vZGVzL3BnX2xpc3QuaCIKIApAQCAtNzks NiArODAsMzIgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29uZmxpY3RUdXBsZUluZm8KIAkJCQkJCQkJICog Y29uZmxpY3RpbmcgbG9jYWwgcm93IG9jY3VycmVkICovCiB9IENvbmZsaWN0VHVwbGVJbmZvOwog CisvKgorICogRGVmaW5lcyB3aGVyZSBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0IGRldGFp bHMgYXJlIHJlY29yZGVkLgorICoKKyAqIFdoaWxlIHN0b3JlZCBhcyBhIHRleHQtYmFzZWQgYXJy YXkvc3RyaW5nIGluCisgKiBwZ19zdWJzY3JpcHRpb24uc3ViY29uZmxpY3Rsb2dkZXN0IGZvciB1 c2VyIHJlYWRhYmlsaXR5IGFuZCBleHRlbnNpYmlsaXR5LAorICogd2UgbWFwIHRoZXNlIHRvIGFu IGludGVybmFsIGVudW0gdG8gYWxsb3cgZm9yIGVmZmljaWVudCBjaGVja3MuCisgKi8KK3R5cGVk ZWYgZW51bSBDb25mbGljdExvZ0Rlc3QKK3sKKwlDT05GTElDVF9MT0dfREVTVF9MT0cgPSAwLAkv KiBFbWl0IHRvIHNlcnZlciBsb2dzICovCisJQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEUsCS8qIElu c2VydCBpbnRvIHRoZSBjb25mbGljdCBsb2cgdGFibGUgKi8KKwlDT05GTElDVF9MT0dfREVTVF9B TEwJCS8qIEJvdGggbG9nIGFuZCB0YWJsZSAqLworfSBDb25mbGljdExvZ0Rlc3Q7CisKKyNkZWZp bmUgQ09ORkxJQ1RTX0xPR0dFRF9UT19UQUJMRShkZXN0KSBcCisJKChkZXN0ID09IENPTkZMSUNU X0xPR19ERVNUX1RBQkxFKSB8fCAoZGVzdCA9PSBDT05GTElDVF9MT0dfREVTVF9BTEwpKQorI2Rl ZmluZSBDT05GTElDVFNfTE9HR0VEX1RPX0xPRyhkZXN0KSBcCisJKChkZXN0ID09IENPTkZMSUNU X0xPR19ERVNUX0xPRykgfHwgKGRlc3QgPT0gQ09ORkxJQ1RfTE9HX0RFU1RfQUxMKSkKKworLyoK KyAqIEFycmF5IG1hcHBpbmcgZm9yIGNvbnZlcnRpbmcgaW50ZXJuYWwgZW51bSB0byBzdHJpbmcu CisgKi8KK2V4dGVybiBQR0RMTElNUE9SVCBjb25zdCBjaGFyICpjb25zdCBDb25mbGljdExvZ0Rl c3ROYW1lc1tdOworCitleHRlcm4gT2lkIGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoT2lkIHN1 YmlkLCBjaGFyICpzdWJuYW1lLCBPaWQgc3Vib3duZXIpOworZXh0ZXJuIENvbmZsaWN0TG9nRGVz dCBHZXRDb25mbGljdExvZ0Rlc3QoY29uc3QgY2hhciAqZGVzdCk7CiBleHRlcm4gYm9vbCBHZXRU dXBsZVRyYW5zYWN0aW9uSW5mbyhUdXBsZVRhYmxlU2xvdCAqbG9jYWxzbG90LAogCQkJCQkJCQkJ VHJhbnNhY3Rpb25JZCAqeG1pbiwKIAkJCQkJCQkJCVJlcGxPcmlnaW5JZCAqbG9jYWxvcmlnaW4s CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4IDg1NDVlNjdhNjMyLi42MGIyZDViNmUzZSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRp bHMvbHN5c2NhY2hlLmgKQEAgLTIwMCw3ICsyMDAsNyBAQCBleHRlcm4gYm9vbCBnZXRfYXR0c3Rh dHNzbG90KEF0dFN0YXRzU2xvdCAqc3Nsb3QsIEhlYXBUdXBsZSBzdGF0c3R1cGxlLAogZXh0ZXJu IHZvaWQgZnJlZV9hdHRzdGF0c3Nsb3QoQXR0U3RhdHNTbG90ICpzc2xvdCk7CiBleHRlcm4gY2hh ciAqZ2V0X25hbWVzcGFjZV9uYW1lKE9pZCBuc3BpZCk7CiBleHRlcm4gY2hhciAqZ2V0X25hbWVz cGFjZV9uYW1lX29yX3RlbXAoT2lkIG5zcGlkKTsKLWV4dGVybiBjaGFyICpnZXRfcXVhbGlmaWVk X29iam5hbWUoT2lkIG5zcGlkLCBjaGFyICpvYmpuYW1lKTsKK2V4dGVybiBjaGFyICpnZXRfcXVh bGlmaWVkX29iam5hbWUoT2lkIG5zcGlkLCBjb25zdCBjaGFyICpvYmpuYW1lKTsKIGV4dGVybiBP aWQJZ2V0X3JhbmdlX3N1YnR5cGUoT2lkIHJhbmdlT2lkKTsKIGV4dGVybiBPaWQJZ2V0X3Jhbmdl X2NvbGxhdGlvbihPaWQgcmFuZ2VPaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmFuZ2VfY29uc3RydWN0 b3IyKE9pZCByYW5nZU9pZCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlv bi5vdXQKaW5kZXggN2UzY2FiZGI5M2YuLjg2MWJjY2I1ZjM3IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CkBAIC01NzYsNiArNTc2LDMxNCBAQCBDT01NSVQ7 CiAtLSBvaywgb3duaW5nIGl0IGlzIGVub3VnaCBmb3IgdGhpcyBzdHVmZgogQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogRFJPUCBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViOworLS0KKy0tIENPTkZMSUNUIExPRyBERVNUSU5BVElP TiBURVNUUworLS0KK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXInOworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5HOworLS0gZmFpbCAt IHVucmVjb2duaXplZCBwYXJhbWV0ZXIgdmFsdWUKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVz c19jb25mbGljdF9mYWlsIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcg UFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19k ZXN0aW5hdGlvbiA9ICdpbnZhbGlkJyk7CitFUlJPUjogIHVucmVjb2duaXplZCBjb25mbGljdF9s b2dfZGVzdGluYXRpb24gdmFsdWU6ICJpbnZhbGlkIgorSElOVDogIFZhbGlkIHZhbHVlcyBhcmUg ImxvZyIsICJ0YWJsZSIsIGFuZCAiYWxsIi4KKy0tIHZlcmlmeSBzdWJjb25mbGljdGxvZ2Rlc3Qg aXMgJ2xvZycgYW5kIHN1YmNvbmZsaWN0bG9ncmVsaWQgaXMgMCAoSW52YWxpZE9pZCkgZm9yIGRl ZmF1bHQgY2FzZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZh dWx0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04g dGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3 YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBs aWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBl bmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVm cmVzaCBwdWJsaWNhdGlvbnMuCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBz dWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0g J3JlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQnOworICAgICAgICAgICBzdWJuYW1lICAgICAg ICAgICAgfCBzdWJjb25mbGljdGxvZ2Rlc3QgfCBzdWJjb25mbGljdGxvZ3JlbGlkIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgfCBsb2cgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAwCisoMSByb3cpCisKKy0tIHZlcmlmeSBlbXB0eSBz dHJpbmcgZGVmYXVsdHMgdG8gJ2xvZycKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF9lbXB0eV9zdHIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQ VUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rl c3RpbmF0aW9uID0gJycpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0 IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11 c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNj cmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlv bnMuCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3Jl bGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxp Y3RfZW1wdHlfc3RyJzsKKyAgICAgICAgICBzdWJuYW1lICAgICAgICAgICB8IHN1YmNvbmZsaWN0 bG9nZGVzdCB8IHN1YmNvbmZsaWN0bG9ncmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf Y29uZmxpY3RfZW1wdHlfc3RyIHwgbG9nICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgMAorKDEgcm93KQorCistLSB0aGlzIHNob3VsZCBnZW5lcmF0ZSBhbiBjb25mbGljdCBsb2cg dGFibGUgbmFtZWQgcGdfY29uZmxpY3RfbG9nXyRzdWJpZCQKK0NSRUFURSBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF90ZXN0MSBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGlj dF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2Fz IGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGlj YXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5h YmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJl c2ggcHVibGljYXRpb25zLgorLS0gY2hlY2sgbWV0YWRhdGEgaW4gcGdfc3Vic2NyaXB0aW9uOiBk ZXN0aW5hdGlvbiBzaG91bGQgYmUgJ3RhYmxlJyBhbmQgc3ViY29uZmxpY3Rsb2dyZWxpZCB2YWxp ZAorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxp ZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0g J3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworICAgICAgICBzdWJuYW1lICAgICAgICAgfCBzdWJj b25mbGljdGxvZ2Rlc3QgfCBoYXNfcmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIHwg dGFibGUgICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCistLSB2ZXJpZnkgdGhlIHBoeXNpY2Fs IHRhYmxlIGV4aXN0cywgaXRzIE9JRCBtYXRjaGVzIHN1YmNvbmZsaWN0bG9ncmVsaWQsCistLSBh bmQgaXQgaXMgbG9jYXRlZCBpbiB0aGUgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2UKK1NFTEVDVCBu Lm5zcG5hbWUsIChjLm9pZCA9IHMuc3ViY29uZmxpY3Rsb2dyZWxpZCkgQVMgIm9pZF9tYXRjaGVz IgorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9 ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJl bG5hbWVzcGFjZSA9IG4ub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90 ZXN0MSc7CisgICBuc3BuYW1lICAgfCBvaWRfbWF0Y2hlcyAKKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLQorIHBnX2NvbmZsaWN0IHwgdAorKDEgcm93KQorCistLSBjaGVjayBpZiB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlIGhhcyB0aGUgY29ycmVjdCBzY2hlbWEKK1NFTEVDVCBhLmF0dG51bSwg YS5hdHRuYW1lCitGUk9NIHBnX2F0dHJpYnV0ZSBhCitKT0lOIHBnX2NsYXNzIGMgT04gYS5hdHRy ZWxpZCA9IGMub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19j b25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxp Y3RfdGVzdDEnIEFORCBhLmF0dG51bSA+IDAKKyAgICBPUkRFUiBCWSBhLmF0dG51bTsKKyBhdHRu dW0gfCAgICAgIGF0dG5hbWUgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgIDEgfCByZWxpZAorICAgICAgMiB8IHNjaGVtYW5hbWUKKyAgICAgIDMgfCByZWxuYW1lCisg ICAgICA0IHwgY29uZmxpY3RfdHlwZQorICAgICAgNSB8IHJlbW90ZV94aWQKKyAgICAgIDYgfCBy ZW1vdGVfY29tbWl0X2xzbgorICAgICAgNyB8IHJlbW90ZV9jb21taXRfdHMKKyAgICAgIDggfCBy ZW1vdGVfb3JpZ2luCisgICAgICA5IHwgcmVtb3RlX3R1cGxlCisgICAgIDEwIHwgcmVwbGljYV9p ZGVudGl0eQorICAgICAxMSB8IGxvY2FsX2NvbmZsaWN0cworKDExIHJvd3MpCisKKy0tIENoYW5n aW5nIHRoZSBzdWJzY3JpcHRpb24gb3duZXIgc2hvdWxkIGFsc28gdXBkYXRlIHRoZSBvd25lcgor LS0gb2YgdGhlIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlLgorQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgT1dORVIgVE8gcmVncmVzc19zdWJzY3JpcHRpb25f dXNlcjI7CitTRUxFQ1QgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQoYy5yZWxvd25lcikgQVMg b3duZXIKK0ZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjCitKT0lOIHBnX2NhdGFsb2cucGdfc3Vi c2NyaXB0aW9uIHMKKyAgICAgICAgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8 IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisgICAg ICAgICAgIG93bmVyICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjIKKygxIHJvdykKKworLS0gVmVyaWZ5IHRoYXQgYSBu b24tc3VwZXJ1c2VyIHN1YnNjcmlwdGlvbiBvd25lciBjYW4gdHJ1bmNhdGUsCistLSBkZWxldGUg ZnJvbSwgYW5kIHNlbGVjdCBmcm9tIHRoZSBhc3NvY2lhdGVkIGNvbmZsaWN0IGxvZyB0YWJsZS4K K1NFVCBST0xFICdyZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMic7CitTRUxFQ1QgZm9ybWF0KCcl SS4lSScsIG4ubnNwbmFtZSwgYy5yZWxuYW1lKSBBUyBjb25mbGljdF9sb2dfdGFibGUKK0ZST00g cGdfY2F0YWxvZy5wZ19jbGFzcyBjCitKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4KKwlP TiBuLm9pZCA9IGMucmVsbmFtZXNwYWNlCitKT0lOIHBnX2NhdGFsb2cucGdfc3Vic2NyaXB0aW9u IHMKKwlPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJFIHMu c3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJworXGdzZXQKK1RSVU5DQVRFIFRBQkxF IDpjb25mbGljdF9sb2dfdGFibGU7CitERUxFVEUgRlJPTSA6Y29uZmxpY3RfbG9nX3RhYmxlOwor U0VMRUNUIENPVU5UKCopIEZST00gOmNvbmZsaWN0X2xvZ190YWJsZTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCitSRVNFVCBST0xFOworLS0gUmVzdG9yZSB0aGUgb3JpZ2lu YWwgc3Vic2NyaXB0aW9uIG93bmVyLgorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxp Y3RfdGVzdDEgT1dORVIgVE8gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsKKy0tCistLSBBTFRF UiBTVUJTQ1JJUFRJT04gLSBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gc3RhdGUgdHJhbnNpdGlv bnMKKy0tCistLSBUaGVzZSB0ZXN0cyB2ZXJpZnkgdGhlIHRyYW5zaXRpb24gbG9naWMgYmV0d2Vl biBkaWZmZXJlbnQgbG9nZ2luZworLS0gZGVzdGluYXRpb25zLCBlbnN1cmluZyBjb25mbGljdCBs b2cgdGFibGVzIGFyZSBjcmVhdGVkIG9yIGRyb3BwZWQgYXMKKy0tIGV4cGVjdGVkCistLQorLS0g dHJhbnNpdGlvbiBmcm9tICdsb2cnIHRvICdhbGwnCistLSBhIG5ldyBjb25mbGljdCBsb2cgdGFi bGUgc2hvdWxkIGJlIGNyZWF0ZWQKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGlj dF90ZXN0MiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FU SU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRp b24gPSAnbG9nJyk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMg bm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBt YW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0 aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4K K0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3Rf bG9nX2Rlc3RpbmF0aW9uID0gJ2FsbCcpOworLS0gdmVyaWZ5IG1ldGFkYXRhIGFmdGVyIEFMVEVS IChkZXN0aW5hdGlvbiBzaG91bGQgYmUgJ2FsbCcpCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxp Y3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZST00gcGdf c3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7Cisg ICAgICAgIHN1Ym5hbWUgICAgICAgICB8IHN1YmNvbmZsaWN0bG9nZGVzdCB8IGhhc19yZWxpZCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgfCBhbGwgICAgICAgICAgICAgICAgfCB0CisoMSBy b3cpCisKKy0tIHRyYW5zaXRpb24gZnJvbSAnYWxsJyB0byAndGFibGUnCistLSBzaG91bGQgTk9U IGRyb3AgdGhlIHRhYmxlLCBvbmx5IGNoYW5nZSBkZXN0aW5hdGlvbiBzdHJpbmcKK1NFTEVDVCBz dWJjb25mbGljdGxvZ3JlbGlkIEFTIG9sZF9yZWxpZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVS RSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInIFxnc2V0CitBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlv biA9ICd0YWJsZScpOworU0VMRUNUIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dy ZWxpZCA9IDpvbGRfcmVsaWQgQVMgcmVsaWRfdW5jaGFuZ2VkCitGUk9NIHBnX3N1YnNjcmlwdGlv biBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworIHN1YmNvbmZsaWN0 bG9nZGVzdCB8IHJlbGlkX3VuY2hhbmdlZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tCisgdGFibGUgICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCistLSB0cmFuc2l0 aW9uIGZyb20gJ3RhYmxlJyB0byAnbG9nJworLS0gc2hvdWxkIGRyb3AgdGhlIHRhYmxlIGFuZCBj bGVhciBzdWJjb25mbGljdGxvZ3JlbGlkCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsKK1NFTEVD VCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2Ny aXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7Cisgc3ViY29u ZmxpY3Rsb2dkZXN0IHwgc3ViY29uZmxpY3Rsb2dyZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGxvZyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIDAKKygxIHJvdykKKworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0YWJsZSBpcyBnb25l CitTRUxFQ1QgY291bnQoKikKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24g cyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJFIHMuc3Vi bmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAg MAorKDEgcm93KQorCistLQorLS0gUFVCTElDQVRJT046IFZlcmlmeSBjb25mbGljdCBsb2cgdGFi bGVzIGFyZSBub3QgcHVibGlzaGFibGUKKy0tCistLSBwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJs ZSBzaG91bGQgcmV0dXJuIGZhbHNlIGZvciBjb25mbGljdCBsb2cgdGFibGVzIHRvCistLSBwcmV2 ZW50IHRoZW0gZnJvbSBiZWluZyBhY2NpZGVudGFsbHkgaW5jbHVkZWQgaW4gcHVibGljYXRpb25z CistLQorU0VMRUNUIG4ubnNwbmFtZSwgcGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoYy5vaWQp CitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfbmFtZXNwYWNlIG4gT04gYy5yZWxuYW1lc3BhY2Ug PSBuLm9pZAorSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBzLnN1YmNvbmZsaWN0bG9ncmVsaWQg PSBjLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworICAg bnNwbmFtZSAgIHwgcGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUgCistLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBwZ19jb25mbGljdCB8IGYKKygxIHJvdykKKwor LS0KKy0tIFRhYmxlIFByb3RlY3Rpb24gYW5kIExpZmVjeWNsZSBNYW5hZ2VtZW50CistLQorLS0g VGhlc2UgdGVzdHMgdmVyaWZ5IHRoYXQ6CistLSBNYW51YWwgRFJPUCBUQUJMRSBpcyBkaXNhbGxv d2VkCistLSBEUk9QIFNVQlNDUklQVElPTiBhdXRvbWF0aWNhbGx5IHJlYXBzIHRoZSB0YWJsZQor LS0KKy0tIHJlLWVuYWJsZSB0YWJsZSBsb2dnaW5nIGZvciB2ZXJpZmljYXRpb24KK0FMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3Rp bmF0aW9uID0gJ3RhYmxlJyk7CistLSBXZSB1c2UgYSBETyBibG9jayB3aXRoIGR5bmFtaWMgU1FM IGJlY2F1c2UgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gbmFtZSBjb250YWlucyB0aGUgc3Vi c2NyaXB0aW9uIE9JRCwgd2hpY2ggaXMgbm9uLWRldGVybWluaXN0aWMuIFRoaXMKKy0tIGFwcHJv YWNoIGFsbG93cyB1cyB0byBhdHRlbXB0IHRoZSBEUk9QIGFuZCBjYXB0dXJlIHRoZSBleHBlY3Rl ZCBlcnJvcgorLS0gd2l0aG91dCBoYXJkLWNvZGluZyBhIHNwZWNpZmljIE9JRCBpbiB0aGUgZXhw ZWN0ZWQgb3V0cHV0CistLSBmYWlsIC0gZHJvcCB0YWJsZSBub3QgYWxsb3dlZCBkdWUgdG8gaW50 ZXJuYWwgZGVwZW5kZW5jeQorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBOT1RJQ0U7CitETyAk JAorQkVHSU4KKyAgICBFWEVDVVRFICdEUk9QIFRBQkxFICcgfHwgKFNFTEVDVCAncGdfY29uZmxp Y3QucGdfY29uZmxpY3RfbG9nXycgfHwgb2lkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScpOworRVhDRVBUSU9OIFdIRU4gaW5zdWZm aWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3Rl ZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSc7CitFTkQgJCQ7CitOT1RJQ0U6ICBjYXB0 dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZQorLS0gQ0xFQU5VUDog RFJPUCBTVUJTQ1JJUFRJT04gcmVhcHMgdGhlIHRhYmxlCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc19jb25mbGljdF90ZXN0MSBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfdGVzdDEgU0VUIChzbG90X25hbWUgPSBOT05FKTsKKy0tIFZlcmlmeSB0aGUgdGFi bGUgT0lEIGZvciByZWFwIGNoZWNrCitTRUxFQ1QgJ3BnX2NvbmZsaWN0LnBnX2NvbmZsaWN0X2xv Z18nIHx8IG9pZCBBUyBpbnRlcm5hbF90YWJsZW5hbWUgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hF UkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyBcZ3NldAorU0VUIGNsaWVudF9t aW5fbWVzc2FnZXMgPSBXQVJOSU5HOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGlj dF90ZXN0MTsKKy0tIHNob3VsZCByZXR1cm4gTlVMTCwgbWVhbmluZyB0aGUgY29uZmxpY3QgbG9n IHRhYmxlIHdhcyByZWFwZWQgdmlhIGRlcGVuZGVuY3kKK1NFTEVDVCB0b19yZWdjbGFzcyg6J2lu dGVybmFsX3RhYmxlbmFtZScpOworIHRvX3JlZ2NsYXNzIAorLS0tLS0tLS0tLS0tLQorIAorKDEg cm93KQorCistLQorLS0gQWRkaXRpb25hbCBOYW1lc3BhY2UgYW5kIFRhYmxlIFByb3RlY3Rpb24g VGVzdHMKKy0tCistLSBTZXR1cDogRW5zdXJlIHdlIGhhdmUgYSBzdWJzY3JpcHRpb24gd2l0aCBh IGNvbmZsaWN0IGxvZyB0YWJsZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Byb3RlY3Rpb25fdGVzdCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qn CisgICAgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0 X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMg Y3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNh dGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFi bGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVz aCBwdWJsaWNhdGlvbnMuCistLSBUcnlpbmcgdG8gQUxURVIgdGhlIGNvbmZsaWN0IGxvZyB0YWJs ZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdl ZAorLS0gQXMgbWVudGlvbmVkIGluIHByZXZpb3VzIHRlc3QgY2FzZXMsIHdlIHVzZSBhIERPIGJs b2NrIHRvIGhpZGUgZHluYW1pYyBPSURzCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IE5PVElD RTsKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNU ICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xh c3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9s b2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3By b3RlY3Rpb25fdGVzdCc7CisKKyAgICBSQUlTRSBOT1RJQ0UgJ0F0dGVtcHRpbmcgQUxURVIgVEFC TEUgb24gY29uZmxpY3QgbG9nIHRhYmxlJzsKKyAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8 IHRhYl9uYW1lIHx8ICcgQUREIENPTFVNTiBleHRyYV9pbmZvIHRleHQnOworRVhDRVBUSU9OIFdI RU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJl ZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgQUxURVInOwor RU5EICQkOworTk9USUNFOiAgQXR0ZW1wdGluZyBBTFRFUiBUQUJMRSBvbiBjb25mbGljdCBsb2cg dGFibGUKK05PVElDRTogIGNhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJp dmlsZWdlIGR1cmluZyBBTFRFUgorLS0gVGVzdCBNYW51YWwgSU5TRVJUIG9uIGNvbmZsaWN0IGxv ZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0t bWFuYWdlZAorLS0gSGlkaW5nIHRoZSBPSUQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hp bmcgdGhlIGV4Y2VwdGlvbgorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVH SU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisg ICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0g J3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jl c3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKworICAgIEVYRUNVVEUgJ0lOU0VSVCBJTlRP ICcgfHwgdGFiX25hbWUgfHwgJyAocmVsbmFtZSkgVkFMVUVTICgnJ215dGVzdCcnKSc7CitFWENF UFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0 dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIElOU0VSVCc7CitF TkQgJCQ7CitOT1RJQ0U6ICBjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5 cGUgZHVyaW5nIElOU0VSVAorLS0gVGVzdCBNYW51YWwgVVBEQVRFIG9uIGNvbmZsaWN0IGxvZyB0 YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFu YWdlZAorLS0gSGlkaW5nIHRoZSBPSUQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hpbmcg dGhlIGV4Y2VwdGlvbgorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4K KyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAg RlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3Bn X2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3Nf Y29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKworICAgIEVYRUNVVEUgJ1VQREFURSAnIHx8IHRh Yl9uYW1lIHx8ICcgU0VUIHJlbG5hbWUgPSAnJ215dGVzdCcnICc7CitFWENFUFRJT04gV0hFTiB3 cm9uZ19vYmplY3RfdHlwZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3Rl ZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIFVQREFURSc7CitFTkQgJCQ7CitOT1RJ Q0U6ICBjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIFVQ REFURQorLS0gVHJ5aW5nIHRvIHBlcmZvcm0gVFJVTkNBVEUvREVMRVRFIG9uIHRoZSBjb25mbGlj dCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGJlIGFsbG93ZWQgc28gdGhhdCB1c2VyIGNhbiBw ZXJmb3JtIGNsZWFudXAKK1NFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIEFTIGNvbmZs aWN0X3RhYgorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVs bmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3Jl Z3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JyBcZ3NldAorVFJVTkNBVEUgOmNvbmZsaWN0 X3RhYjsKK0RFTEVURSBGUk9NIDpjb25mbGljdF90YWI7CistLSBUcnlpbmcgdG8gY3JlYXRlIGEg bmV3IHRhYmxlIG1hbnVhbGx5IGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UKKy0tIFRoaXMg c2hvdWxkIGZhaWwgYXMgdGhlIG5hbWVzcGFjZSBpcyByZXNlcnZlZCBmb3IgY29uZmxpY3QgbG9n cyB0YWJsZXMKK0NSRUFURSBUQUJMRSBwZ19jb25mbGljdC5tYW51YWxfdGFibGUgKGlkIGludCk7 CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIHRvIGNyZWF0ZSAicGdfY29uZmxpY3QubWFudWFs X3RhYmxlIgorREVUQUlMOiAgQ29uZmxpY3Qgc2NoZW1hIG1vZGlmaWNhdGlvbnMgYXJlIGN1cnJl bnRseSBkaXNhbGxvd2VkLgorLS0gTW92aW5nIGFuIGV4aXN0aW5nIHRhYmxlIGludG8gdGhlIHBn X2NvbmZsaWN0IG5hbWVzcGFjZQorLS0gVXNlcnMgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIG1vdmUg dGhlaXIgb3duIHRhYmxlcyB3aXRoaW4gdGhpcyBuYW1lc3BhY2UKK0NSRUFURSBUQUJMRSBwdWJs aWMudGVzdF9tb3ZlIChpZCBpbnQpOworQUxURVIgVEFCTEUgcHVibGljLnRlc3RfbW92ZSBTRVQg U0NIRU1BIHBnX2NvbmZsaWN0OworRVJST1I6ICBjYW5ub3QgbW92ZSBvYmplY3RzIGludG8gb3Ig b3V0IG9mIHRoZSBjb25mbGljdCBzY2hlbWEKK0RST1AgVEFCTEUgcHVibGljLnRlc3RfbW92ZTsK K1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsKKy0tIENsZWFuIHVwIHJlbWFpbmlu ZyB0ZXN0IHN1YnNjcmlwdGlvbgorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf bG9nX2RlZmF1bHQgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X2xvZ19kZWZhdWx0IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiBy ZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0OworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfZW1wdHlfc3RyIERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF9lbXB0eV9zdHIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfY29uZmxpY3RfdGVzdDIgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2Nv bmZsaWN0X3Rlc3QyIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiBy ZWdyZXNzX2NvbmZsaWN0X3Rlc3QyOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxp Y3RfcHJvdGVjdGlvbl90ZXN0IERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0OwogUkVTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7CiBE Uk9QIFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjI7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vi c2NyaXB0aW9uLnNxbAppbmRleCA2YzNkOTYzMmU4YS4uZjVmZmQwMGFkYzMgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbApAQCAtNDMxLDYgKzQzMSwyNjIgQEAgQ09NTUlUOwog QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUp OwogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwogCistLQorLS0gQ09ORkxJQ1Qg TE9HIERFU1RJTkFUSU9OIFRFU1RTCistLQorCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyJzsKKworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBX QVJOSU5HOworCistLSBmYWlsIC0gdW5yZWNvZ25pemVkIHBhcmFtZXRlciB2YWx1ZQorQ1JFQVRF IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2ZhaWwgQ09OTkVDVElPTiAnZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBm YWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2ludmFsaWQnKTsKKworLS0gdmVyaWZ5 IHN1YmNvbmZsaWN0bG9nZGVzdCBpcyAnbG9nJyBhbmQgc3ViY29uZmxpY3Rsb2dyZWxpZCBpcyAw IChJbnZhbGlkT2lkKSBmb3IgZGVmYXVsdCBjYXNlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSk7CitTRUxF Q1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9N IHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfbG9nX2Rl ZmF1bHQnOworCistLSB2ZXJpZnkgZW1wdHkgc3RyaW5nIGRlZmF1bHRzIHRvICdsb2cnCitDUkVB VEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIENPTk5FQ1RJT04gJ2Ri bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25u ZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICcnKTsKK1NFTEVDVCBzdWJu YW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vi c2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9lbXB0eV9zdHInOwor CistLSB0aGlzIHNob3VsZCBnZW5lcmF0ZSBhbiBjb25mbGljdCBsb2cgdGFibGUgbmFtZWQgcGdf Y29uZmxpY3RfbG9nXyRzdWJpZCQKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGlj dF90ZXN0MSBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FU SU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRp b24gPSAndGFibGUnKTsKKworLS0gY2hlY2sgbWV0YWRhdGEgaW4gcGdfc3Vic2NyaXB0aW9uOiBk ZXN0aW5hdGlvbiBzaG91bGQgYmUgJ3RhYmxlJyBhbmQgc3ViY29uZmxpY3Rsb2dyZWxpZCB2YWxp ZAorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxp ZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0g J3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLSB2ZXJpZnkgdGhlIHBoeXNpY2FsIHRhYmxl IGV4aXN0cywgaXRzIE9JRCBtYXRjaGVzIHN1YmNvbmZsaWN0bG9ncmVsaWQsCistLSBhbmQgaXQg aXMgbG9jYXRlZCBpbiB0aGUgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2UKK1NFTEVDVCBuLm5zcG5h bWUsIChjLm9pZCA9IHMuc3ViY29uZmxpY3Rsb2dyZWxpZCkgQVMgIm9pZF9tYXRjaGVzIgorRlJP TSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19j b25mbGljdF9sb2dfJyB8fCBzLm9pZAorSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVz cGFjZSA9IG4ub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7 CisKKy0tIGNoZWNrIGlmIHRoZSBjb25mbGljdCBsb2cgdGFibGUgaGFzIHRoZSBjb3JyZWN0IHNj aGVtYQorU0VMRUNUIGEuYXR0bnVtLCBhLmF0dG5hbWUKK0ZST00gcGdfYXR0cmlidXRlIGEKK0pP SU4gcGdfY2xhc3MgYyBPTiBhLmF0dHJlbGlkID0gYy5vaWQKK0pPSU4gcGdfc3Vic2NyaXB0aW9u IHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgQU5EIGEuYXR0bnVtID4gMAorICAgIE9S REVSIEJZIGEuYXR0bnVtOworCistLSBDaGFuZ2luZyB0aGUgc3Vic2NyaXB0aW9uIG93bmVyIHNo b3VsZCBhbHNvIHVwZGF0ZSB0aGUgb3duZXIKKy0tIG9mIHRoZSBhc3NvY2lhdGVkIGNvbmZsaWN0 IGxvZyB0YWJsZS4KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIE9X TkVSIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyOworU0VMRUNUIHBnX2NhdGFsb2cucGdf Z2V0X3VzZXJieWlkKGMucmVsb3duZXIpIEFTIG93bmVyCitGUk9NIHBnX2NhdGFsb2cucGdfY2xh c3MgYworSk9JTiBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvbiBzCisgICAgICAgIE9OIGMucmVs bmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3Jl Z3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLSBWZXJpZnkgdGhhdCBhIG5vbi1zdXBlcnVzZXIg c3Vic2NyaXB0aW9uIG93bmVyIGNhbiB0cnVuY2F0ZSwKKy0tIGRlbGV0ZSBmcm9tLCBhbmQgc2Vs ZWN0IGZyb20gdGhlIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlLgorU0VUIFJPTEUgJ3Jl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyJzsKKworU0VMRUNUIGZvcm1hdCgnJUkuJUknLCBuLm5z cG5hbWUsIGMucmVsbmFtZSkgQVMgY29uZmxpY3RfbG9nX3RhYmxlCitGUk9NIHBnX2NhdGFsb2cu cGdfY2xhc3MgYworSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuCisJT04gbi5vaWQgPSBj LnJlbG5hbWVzcGFjZQorSk9JTiBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvbiBzCisJT04gYy5y ZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAn cmVncmVzc19jb25mbGljdF90ZXN0MScKK1xnc2V0CisKK1RSVU5DQVRFIFRBQkxFIDpjb25mbGlj dF9sb2dfdGFibGU7CitERUxFVEUgRlJPTSA6Y29uZmxpY3RfbG9nX3RhYmxlOworU0VMRUNUIENP VU5UKCopIEZST00gOmNvbmZsaWN0X2xvZ190YWJsZTsKKworUkVTRVQgUk9MRTsKKworLS0gUmVz dG9yZSB0aGUgb3JpZ2luYWwgc3Vic2NyaXB0aW9uIG93bmVyLgorQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgT1dORVIgVE8gcmVncmVzc19zdWJzY3JpcHRpb25fdXNl cjsKKworLS0KKy0tIEFMVEVSIFNVQlNDUklQVElPTiAtIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlv biBzdGF0ZSB0cmFuc2l0aW9ucworLS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGUgdHJhbnNp dGlvbiBsb2dpYyBiZXR3ZWVuIGRpZmZlcmVudCBsb2dnaW5nCistLSBkZXN0aW5hdGlvbnMsIGVu c3VyaW5nIGNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIGNyZWF0ZWQgb3IgZHJvcHBlZCBhcworLS0g ZXhwZWN0ZWQKKy0tCistLSB0cmFuc2l0aW9uIGZyb20gJ2xvZycgdG8gJ2FsbCcKKy0tIGEgbmV3 IGNvbmZsaWN0IGxvZyB0YWJsZSBzaG91bGQgYmUgY3JlYXRlZAorQ1JFQVRFIFNVQlNDUklQVElP TiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZs aWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2FsbCcpOwor CistLSB2ZXJpZnkgbWV0YWRhdGEgYWZ0ZXIgQUxURVIgKGRlc3RpbmF0aW9uIHNob3VsZCBiZSAn YWxsJykKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9n cmVsaWQgPiAwIEFTIGhhc19yZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFt ZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKworLS0gdHJhbnNpdGlvbiBmcm9tICdhbGwn IHRvICd0YWJsZScKKy0tIHNob3VsZCBOT1QgZHJvcCB0aGUgdGFibGUsIG9ubHkgY2hhbmdlIGRl c3RpbmF0aW9uIHN0cmluZworU0VMRUNUIHN1YmNvbmZsaWN0bG9ncmVsaWQgQVMgb2xkX3JlbGlk IEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90 ZXN0MicgXGdzZXQKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNF VCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CitTRUxFQ1Qgc3ViY29uZmxp Y3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID0gOm9sZF9yZWxpZCBBUyByZWxpZF91bmNo YW5nZWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25m bGljdF90ZXN0Mic7CisKKy0tIHRyYW5zaXRpb24gZnJvbSAndGFibGUnIHRvICdsb2cnCistLSBz aG91bGQgZHJvcCB0aGUgdGFibGUgYW5kIGNsZWFyIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0FMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rl c3RpbmF0aW9uID0gJ2xvZycpOworU0VMRUNUIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxp Y3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Rlc3QyJzsKKworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0YWJsZSBpcyBnb25l CitTRUxFQ1QgY291bnQoKikKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24g cyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJFIHMuc3Vi bmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKworLS0KKy0tIFBVQkxJQ0FUSU9OOiBW ZXJpZnkgY29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbm90IHB1Ymxpc2hhYmxlCistLQorLS0gcGdf cmVsYXRpb25faXNfcHVibGlzaGFibGUgc2hvdWxkIHJldHVybiBmYWxzZSBmb3IgY29uZmxpY3Qg bG9nIHRhYmxlcyB0bworLS0gcHJldmVudCB0aGVtIGZyb20gYmVpbmcgYWNjaWRlbnRhbGx5IGlu Y2x1ZGVkIGluIHB1YmxpY2F0aW9ucworLS0KK1NFTEVDVCBuLm5zcG5hbWUsIHBnX3JlbGF0aW9u X2lzX3B1Ymxpc2hhYmxlKGMub2lkKQorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX25hbWVzcGFj ZSBuIE9OIGMucmVsbmFtZXNwYWNlID0gbi5vaWQKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04g cy5zdWJjb25mbGljdGxvZ3JlbGlkID0gYy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Rlc3QxJzsKKworLS0KKy0tIFRhYmxlIFByb3RlY3Rpb24gYW5kIExpZmVjeWNs ZSBNYW5hZ2VtZW50CistLQorLS0gVGhlc2UgdGVzdHMgdmVyaWZ5IHRoYXQ6CistLSBNYW51YWwg RFJPUCBUQUJMRSBpcyBkaXNhbGxvd2VkCistLSBEUk9QIFNVQlNDUklQVElPTiBhdXRvbWF0aWNh bGx5IHJlYXBzIHRoZSB0YWJsZQorLS0KKy0tIHJlLWVuYWJsZSB0YWJsZSBsb2dnaW5nIGZvciB2 ZXJpZmljYXRpb24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIFNF VCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisKKy0tIFdlIHVzZSBhIERP IGJsb2NrIHdpdGggZHluYW1pYyBTUUwgYmVjYXVzZSB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCist LSBuYW1lIGNvbnRhaW5zIHRoZSBzdWJzY3JpcHRpb24gT0lELCB3aGljaCBpcyBub24tZGV0ZXJt aW5pc3RpYy4gVGhpcworLS0gYXBwcm9hY2ggYWxsb3dzIHVzIHRvIGF0dGVtcHQgdGhlIERST1Ag YW5kIGNhcHR1cmUgdGhlIGV4cGVjdGVkIGVycm9yCistLSB3aXRob3V0IGhhcmQtY29kaW5nIGEg c3BlY2lmaWMgT0lEIGluIHRoZSBleHBlY3RlZCBvdXRwdXQKKworLS0gZmFpbCAtIGRyb3AgdGFi bGUgbm90IGFsbG93ZWQgZHVlIHRvIGludGVybmFsIGRlcGVuZGVuY3kKK1NFVCBjbGllbnRfbWlu X21lc3NhZ2VzID0gTk9USUNFOworRE8gJCQKK0JFR0lOCisgICAgRVhFQ1VURSAnRFJPUCBUQUJM RSAnIHx8IChTRUxFQ1QgJ3BnX2NvbmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18nIHx8IG9pZCBGUk9N IHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEn KTsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNF IE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2Un OworRU5EICQkOworCistLSBDTEVBTlVQOiBEUk9QIFNVQlNDUklQVElPTiByZWFwcyB0aGUgdGFi bGUKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIERJU0FCTEU7CitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQgKHNsb3RfbmFtZSA9 IE5PTkUpOworCistLSBWZXJpZnkgdGhlIHRhYmxlIE9JRCBmb3IgcmVhcCBjaGVjaworU0VMRUNU ICdwZ19jb25mbGljdC5wZ19jb25mbGljdF9sb2dfJyB8fCBvaWQgQVMgaW50ZXJuYWxfdGFibGVu YW1lIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGlj dF90ZXN0MScgXGdzZXQKKworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5HOworRFJP UCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MTsKKworLS0gc2hvdWxkIHJldHVy biBOVUxMLCBtZWFuaW5nIHRoZSBjb25mbGljdCBsb2cgdGFibGUgd2FzIHJlYXBlZCB2aWEgZGVw ZW5kZW5jeQorU0VMRUNUIHRvX3JlZ2NsYXNzKDonaW50ZXJuYWxfdGFibGVuYW1lJyk7CisKKy0t CistLSBBZGRpdGlvbmFsIE5hbWVzcGFjZSBhbmQgVGFibGUgUHJvdGVjdGlvbiBUZXN0cworLS0K KworLS0gU2V0dXA6IEVuc3VyZSB3ZSBoYXZlIGEgc3Vic2NyaXB0aW9uIHdpdGggYSBjb25mbGlj dCBsb2cgdGFibGUKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0 aW9uX3Rlc3QgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JworICAgIFBV QkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVz dGluYXRpb24gPSAndGFibGUnKTsKKworLS0gVHJ5aW5nIHRvIEFMVEVSIHRoZSBjb25mbGljdCBs b2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUgdGFibGUgaXMgc3lzdGVt LW1hbmFnZWQKKy0tIEFzIG1lbnRpb25lZCBpbiBwcmV2aW91cyB0ZXN0IGNhc2VzLCB3ZSB1c2Ug YSBETyBibG9jayB0byBoaWRlIGR5bmFtaWMgT0lEcworCitTRVQgY2xpZW50X21pbl9tZXNzYWdl cyA9IE5PVElDRTsKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lOCisg ICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZS T00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19j b25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2Nv bmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBSQUlTRSBOT1RJQ0UgJ0F0dGVtcHRpbmcg QUxURVIgVEFCTEUgb24gY29uZmxpY3QgbG9nIHRhYmxlJzsKKyAgICBFWEVDVVRFICdBTFRFUiBU QUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgQUREIENPTFVNTiBleHRyYV9pbmZvIHRleHQnOworRVhD RVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNF ICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBkdXJpbmcg QUxURVInOworRU5EICQkOworCistLSBUZXN0IE1hbnVhbCBJTlNFUlQgb24gY29uZmxpY3QgbG9n IHRhYmxlCistLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1t YW5hZ2VkCistLSBIaWRpbmcgdGhlIE9JRCBpbiB0aGUgZXJyb3IgbWVzc2FnZSBieSBjYXRjaGlu ZyB0aGUgZXhjZXB0aW9uCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJ TgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAg ICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAn cGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworCisgICAgRVhFQ1VURSAnSU5TRVJUIElOVE8g JyB8fCB0YWJfbmFtZSB8fCAnIChyZWxuYW1lKSBWQUxVRVMgKCcnbXl0ZXN0JycpJzsKK0VYQ0VQ VElPTiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1 cmVkIGV4cGVjdGVkIGVycm9yOiB3cm9uZ19vYmplY3RfdHlwZSBkdXJpbmcgSU5TRVJUJzsKK0VO RCAkJDsKKworLS0gVGVzdCBNYW51YWwgVVBEQVRFIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0g VGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0g SGlkaW5nIHRoZSBPSUQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2Vw dGlvbgorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxF Q1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19j bGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0 X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3Rf cHJvdGVjdGlvbl90ZXN0JzsKKworICAgIEVYRUNVVEUgJ1VQREFURSAnIHx8IHRhYl9uYW1lIHx8 ICcgU0VUIHJlbG5hbWUgPSAnJ215dGVzdCcnICc7CitFWENFUFRJT04gV0hFTiB3cm9uZ19vYmpl Y3RfdHlwZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjog d3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIFVQREFURSc7CitFTkQgJCQ7CisKKy0tIFRyeWluZyB0 byBwZXJmb3JtIFRSVU5DQVRFL0RFTEVURSBvbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCistLSBU aGlzIHNob3VsZCBiZSBhbGxvd2VkIHNvIHRoYXQgdXNlciBjYW4gcGVyZm9ybSBjbGVhbnVwCitT RUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBBUyBjb25mbGljdF90YWIKK0ZST00gcGdf Y2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxp Y3RfbG9nXycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3By b3RlY3Rpb25fdGVzdCcgXGdzZXQKK1RSVU5DQVRFIDpjb25mbGljdF90YWI7CitERUxFVEUgRlJP TSA6Y29uZmxpY3RfdGFiOworCistLSBUcnlpbmcgdG8gY3JlYXRlIGEgbmV3IHRhYmxlIG1hbnVh bGx5IGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYXMg dGhlIG5hbWVzcGFjZSBpcyByZXNlcnZlZCBmb3IgY29uZmxpY3QgbG9ncyB0YWJsZXMKK0NSRUFU RSBUQUJMRSBwZ19jb25mbGljdC5tYW51YWxfdGFibGUgKGlkIGludCk7CisKKy0tIE1vdmluZyBh biBleGlzdGluZyB0YWJsZSBpbnRvIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UKKy0tIFVzZXJz IHNob3VsZCBub3QgYmUgYWJsZSB0byBtb3ZlIHRoZWlyIG93biB0YWJsZXMgd2l0aGluIHRoaXMg bmFtZXNwYWNlCitDUkVBVEUgVEFCTEUgcHVibGljLnRlc3RfbW92ZSAoaWQgaW50KTsKK0FMVEVS IFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgU0VUIFNDSEVNQSBwZ19jb25mbGljdDsKK0RST1AgVEFC TEUgcHVibGljLnRlc3RfbW92ZTsKKworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5H OworCistLSBDbGVhbiB1cCByZW1haW5pbmcgdGVzdCBzdWJzY3JpcHRpb24KK0FMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IERJU0FCTEU7CitBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBTRVQgKHNsb3RfbmFtZSA9IE5P TkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdDsKKwor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIERJU0FCTEU7CitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgU0VUIChzbG90X25h bWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3Ry OworCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBESVNBQkxFOwor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChzbG90X25hbWUg PSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDI7CisKK0FM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBESVNBQkxF OworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IFNF VCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Byb3RlY3Rpb25fdGVzdDsKKwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogRFJPUCBS T0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7CiBEUk9QIFJPTEUgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlcjI7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDhjZjQwYzg3MDQzLi4y MDM5NTllNTAxOCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK KysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTUxNSw2ICs1MTUsOCBA QCBDb25kaXRpb25hbFN0YWNrCiBDb25kaXRpb25hbFN0YWNrRGF0YQogQ29uZmlnRGF0YQogQ29u ZmlnVmFyaWFibGUKK0NvbmZsaWN0TG9nQ29sdW1uRGVmCitDb25mbGljdExvZ0Rlc3QKIENvbmZs aWN0VHVwbGVJbmZvCiBDb25mbGljdFR5cGUKIENvbm5DYWNoZUVudHJ5Ci0tIAoyLjQ5LjAKCg== --0000000000002dd2ab06537f74b3--