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 1wZptN-001JaL-0T for pgsql-hackers@arkaria.postgresql.org; Wed, 17 Jun 2026 13:01:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wZptL-005zYG-1L for pgsql-hackers@arkaria.postgresql.org; Wed, 17 Jun 2026 13:01:15 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wZptK-005zY5-2a for pgsql-hackers@lists.postgresql.org; Wed, 17 Jun 2026 13:01:15 +0000 Received: from mail-yw1-x112f.google.com ([2607:f8b0:4864:20::112f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wZptH-00000000uaR-1i4n for pgsql-hackers@lists.postgresql.org; Wed, 17 Jun 2026 13:01:14 +0000 Received: by mail-yw1-x112f.google.com with SMTP id 00721157ae682-7ff3362e35dso1233097b3.0 for ; Wed, 17 Jun 2026 06:01:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1781701269; cv=none; d=google.com; s=arc-20240605; b=Y67MwxPSPzla+5U+s2pesgDV+9Z7iluZwCS1blTf+jhe3TGzUTOfGnICIABlop9jfs VTZTX3B1wqPQAlPl6noVHAuFLgXEkfYZtAUgKqECocjLP5M7+hXyXra9UBsn17+czsxT aVEAMU0g7mtw3kiIdxFk7vbudEWr2IMCyxGfASqSbdlXkdEqvZGYjKWOzgOEZOshyBoC cxvXVl3/26G8xhIOFR6Vf1tA5id9o2OKUZS9bjMPikjapAtKRCYKrZhn8pueXlDp8B3P I3PllUfKYAdGSqJpp1HbAB7p5XMJsJfE0u677b3bsK/FiKxZy7kTopP5J4E1M2nFt4xY rbHg== 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=vgNK2ExJafKIz0P4BV0x1SRMooWrJmk51IoDHkWAp8k=; fh=jMn+bRx789LpiK4UxdX7+s9i6wNPsir+GDeRyXBN6JY=; b=AJVLcYgHCgtPmhxWxC2HxeOWdeCofOCUtz6jnHIAPcI3coMQy2Del2v0+c7Wk3sK+v 79ouflptOvWGEXMX4KeP/TFSMcCroeoWleJxR7FF59NYoIErpZ9CDBmgb7F4rRMRQ/7x 4VVDFhaugKqf75/r0645eceggS9SNZ9RFjFXbAi8taBv74B0dTUq7deD+fMBzSKWUMx8 kbmHijv+hZdZwHkSsIxNuFb6z2rsQ/XRzV+8d0zRr/jWsxtAYIUsvaIXmnhfJwHBBLY+ cYRrIbXEhNXV3w+1SGbYU19rwtre5whqPjA/I2UyIZPhtNs9LfiR3gIJ9cLdRXW2Vunp bxqQ==; 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=1781701269; x=1782306069; 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=vgNK2ExJafKIz0P4BV0x1SRMooWrJmk51IoDHkWAp8k=; b=HMDeB2VgSRaDKW9oWjgpe71Mmhp4QDPb4XAR2Vk+Nk7d4GywDfoVXWZJSOA0esfPPH sjtfxLeyW6T/FtA/cvC3IZWqBEVyN46Uk9PpzD9BamEKkCifO1SMXzza2kukuqJbyMun zPdnawd2C0/A8bhcTR+iq0LRHyj9nwuhR52FkFoc+C1hURlS/BnfJ0y03w0zthWn/IaQ ujvXtb3R5o2a2ZURn6fDpgXWpvy81frFZUQpB1vzNWsN9mjwQ9MDPXQnBG0KtODHbvB/ C+lYHdzS3n4+zIaIJPrjra1ewta7ATVCJ3IAcEduqsAnkp5+5xXEdLIikFQI40YwL9Y3 HYFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781701269; x=1782306069; 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=vgNK2ExJafKIz0P4BV0x1SRMooWrJmk51IoDHkWAp8k=; b=DWe00d3EZ+UN7b7S5ld7b88lINUv5+qWz0GXdLzhH0rhzVCaremTLPVb1kzBQjU2+y pF3Y0fElTfbI3VzVV/yhR09Y4akaygnmpPPWRfcWJgo1mGR7z9baGiUvVGZT3spFhqzw s+DDmtIiMfF6Svb3baOBPgBj3GluD+H1ggBnFRFjwZfqKRCD+825a8K4xX1kAf8NgRER /Zj+wMGqOJJXdkc3/aZNtJHSu7eKneWbGYQZ752zq8HlnBCPZMXVKsSmInWIAxw+ymhz cpoAK6AVd+e/5EGujgblPvtNDrhUTXGXmH47A/gOZ9Rbwv7n+kvVqH/eLUTthvGcFJET 3udg== X-Forwarded-Encrypted: i=1; AFNElJ92xYvd662js+kkGacQC1qn1VrvP1YWsoXxI9rpZbonvE1tPmvyUH33Bn8/vuUCNhx9m5JHUOKjSxDI3UJc@lists.postgresql.org X-Gm-Message-State: AOJu0Ywq06eyZpP7ATn3wbEHw2TJoUeHdaUilxTvlPDyKehRwCWLSiUW D/E4t2c6J6AyVyo1vR5KEvI3sJZFpYrtq+sC02EYqEpUmPfFno8E4WzUieucO42Z1R9qHKfNc41 3ghHr2LKuRuJWXVJDVViqeQX15aF44Qk= X-Gm-Gg: AfdE7ckmHM3tuOVMwb8LontdDVE9S0tP4xswTtsID2oh0M+0pCUpgXOGMH+gzFhF8fB UyZOic8Uvncx0TTX/2t787pBv5fXQqY5AL+c5Gh2e6sW02KHlXR72H+VYO69NIV2oYao4JMpviZ KN3zONfRuI+ywdAv8K34/fBtULMmt/pK0nuT+enQgimLii7s7AVbGRMacyEuYpzD2tdpl7fXFHh mVy6xzybQLfgOWg9RZIl4MZX14D6n2cn1icO+mYuwRy/x6K32sjOA7T0wR2n8Z4dMf3cBh7VieO vjRxOZvSYBrFByLF9kV9sR2CXnVRJ/g= X-Received: by 2002:a05:690c:2506:b0:7ba:ded4:df53 with SMTP id 00721157ae682-7fe5fd80086mr34140007b3.32.1781701268908; Wed, 17 Jun 2026 06:01:08 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: vignesh C Date: Wed, 17 Jun 2026 18:30:55 +0530 X-Gm-Features: AVVi8CdoNPpmJ4nfh98JDPF0WtH8Mp6ka9Q6WcBEP3vNRDy9WBcJ8M6CRCoKqS8 Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Peter Smith Cc: Dilip Kumar , Nisha Moond , Amit Kapila , shveta malik , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers , shveta malik Content-Type: multipart/mixed; boundary="0000000000003b2574065472a7d4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003b2574065472a7d4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 16 Jun 2026 at 05:19, Peter Smith wrote: > > On Mon, Jun 8, 2026 at 9:39=E2=80=AFPM vignesh C wr= ote: > > > > On Fri, 5 Jun 2026 at 07:59, Peter Smith wrote: > > > > > > Hi Vignesh. > > > > > > Some review comments for the patch v45-0004. > > > > > > 4c. > > > IMO there should be a separate function for handling the subscription > > > footer/s, same as there is already a function > > > addFooterToPublicationDesc. > > > > It is not required in this case as we don't have multiple footers from > > different places to be added here. > > > > Sure, it's not "required", but I think: > A) Separating the footer code from the non-footer code makes it easier to= read > B) The 'describeSubscriptions' function is too long. This would make > it 20 lines shorter. > C) Consistent footer handling for pub/sub describes. Ok, Let's keep it consistent > ////// > > More review comments for v50-0005 > > =3D=3D=3D=3D=3D=3D > src/bin/psql/describe.c > > 1. > + /* Conflict log destination is supported in v19 and higher */ > + if (pset.sversion >=3D 190000) > > The CLT is targeting PG20, right? So, that comment ought to say "is > supported in v20 and higher". > > Ideally, there should be some "TODO" reminder comments here to ensure > the appropriate 190000's get replaced by 200000 as soon as the version > number is bumped. Better to flag/comment all those places now, so that > nothing gets missed later. > > (A similar review comment probably applies also to the pg_dump changes > in the previous v50-0004 patch). I felt it is better to mention it in the commit message of the patch instead of mentioning it in the code. The attached v51 version patch has the changes for the same. The patch also addresses the comment from [1]. [1] - https://www.postgresql.org/message-id/CANhcyEUjc9TCcW1YAQVMTs6-huWBZo= y%2BsVkz5C8b72os5p-f%2Bg%40mail.gmail.com Regards, Vignesh --0000000000003b2574065472a7d4 Content-Type: application/octet-stream; name="v51-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Disposition: attachment; filename="v51-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqi2oasl0 RnJvbSA5NGVjOThmODZkZGMwMmU4MzU0NWY0MzNlM2ViMTE3MTdiNGZlYTFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogVGh1LCAxMSBKdW4gMjAyNiAxMDoxNjoyNiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjUx IDEvNl0gQWRkIGNvbmZpZ3VyYWJsZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIExvZ2ljYWwKIFJl 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 VEFCTEVTIG9yIEFMTCBUQUJMRVMgSU4gU0NIRU1BLgoKTm90ZTogQnVtcCBjYXRhbG9nIHZlcnNp b24gYXMgdGhpcyBhZGQgbmV3IGNvbHVtbiB0byBwZ19zdWJzY3JpcHRpb24gY2F0YWxvZwotLS0K IHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICB8ICA1MCArKy0tCiBz cmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYyAgICAgICAgICAgICAgfCAgMjkgKy0KIHNyYy9i YWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAgICAgICAgICAgICB8ICAzMiArKy0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICB8ICAxMSArLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgIHwgIDE0ICstCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3N1YnNjcmlwdGlvbi5jICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fdmlld3Muc3FsICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJz Y3JpcHRpb25jbWRzLmMgICAgfCAyMTIgKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jICAgICAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY01haW4uYyAgICAgICAgICAgIHwgIDI4ICsrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL2NvbmZsaWN0LmMgfCAxNzUgKysrKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYyAgICAgICAgfCAgIDIgKy0KIHNyYy9iaW4vaW5pdGRiL2luaXRkYi5j ICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMgICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oICAg ICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQg ICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCAgICAg IHwgIDExICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggICAgICAgICB8ICAy NyArKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAgICAgIHwgICAyICst CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgfCAzMDggKysrKysr KysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsICAg ICAgfCAyNTYgKysrKysrKysrKysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0ICAgICAgICAgICB8ICAgMiArCiAyMiBmaWxlcyBjaGFuZ2VkLCAxMTQ2IGluc2VydGlvbnMo KyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNs Y2hrLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IDAwN2VkZTk5N2M1Li42 NGUxNzY2NTJkMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCkBAIC0zMzM3LDI1ICszMzM3LDM5IEBAIHBn X2NsYXNzX2FjbG1hc2tfZXh0KE9pZCB0YWJsZV9vaWQsIE9pZCByb2xlaWQsIEFjbE1vZGUgbWFz aywKIAogCWNsYXNzRm9ybSA9IChGb3JtX3BnX2NsYXNzKSBHRVRTVFJVQ1QodHVwbGUpOwogCi0J LyoKLQkgKiBEZW55IGFueW9uZSBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhIHN5c3RlbSBjYXRhbG9n IHVubGVzcwotCSAqIHBnX2F1dGhpZC5yb2xzdXBlciBpcyBzZXQuCi0JICoKLQkgKiBBcyBvZiA3 LjQgd2UgaGF2ZSBzb21lIHVwZGF0YWJsZSBzeXN0ZW0gdmlld3M7IHRob3NlIHNob3VsZG4ndCBi ZQotCSAqIHByb3RlY3RlZCBpbiB0aGlzIHdheS4gIEFzc3VtZSB0aGUgdmlldyBydWxlcyBjYW4g dGFrZSBjYXJlIG9mCi0JICogdGhlbXNlbHZlcy4gIEFDTF9VU0FHRSBpcyBpZiB3ZSBldmVyIGhh dmUgc3lzdGVtIHNlcXVlbmNlcy4KLQkgKi8KLQlpZiAoKG1hc2sgJiAoQUNMX0lOU0VSVCB8IEFD TF9VUERBVEUgfCBBQ0xfREVMRVRFIHwgQUNMX1RSVU5DQVRFIHwgQUNMX1VTQUdFKSkgJiYKLQkJ SXNTeXN0ZW1DbGFzcyh0YWJsZV9vaWQsIGNsYXNzRm9ybSkgJiYKLQkJY2xhc3NGb3JtLT5yZWxr aW5kICE9IFJFTEtJTkRfVklFVyAmJgotCQkhc3VwZXJ1c2VyX2FyZyhyb2xlaWQpKQotCQltYXNr ICY9IH4oQUNMX0lOU0VSVCB8IEFDTF9VUERBVEUgfCBBQ0xfREVMRVRFIHwgQUNMX1RSVU5DQVRF IHwgQUNMX1VTQUdFKTsKLQotCS8qCi0JICogT3RoZXJ3aXNlLCBzdXBlcnVzZXJzIGJ5cGFzcyBh bGwgcGVybWlzc2lvbi1jaGVja2luZy4KLQkgKi8KLQlpZiAoc3VwZXJ1c2VyX2FyZyhyb2xlaWQp KQorCWlmICghc3VwZXJ1c2VyX2FyZyhyb2xlaWQpKQorCXsKKwkJaWYgKG1hc2sgJiAoQUNMX0lO U0VSVCB8IEFDTF9VUERBVEUgfCBBQ0xfREVMRVRFIHwgQUNMX1RSVU5DQVRFIHwgQUNMX1VTQUdF KSkKKwkJeworCQkJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKGNsYXNzRm9ybSkpCisJCQl7 CisJCQkJLyoKKwkJCQkgKiBGb3IgY29uZmxpY3QgbG9nIHRhYmxlcywgYWxsb3cgbm9uLXN1cGVy dXNlcnMgdG8gcGVyZm9ybQorCQkJCSAqIERFTEVURSBhbmQgVFJVTkNBVEUgZm9yIGNsZWFudXAg YW5kIG1haW50ZW5hbmNlLCB3aGlsZSBzdGlsbAorCQkJCSAqIHJlc3RyaWN0aW5nIElOU0VSVCwg VVBEQVRFLCBhbmQgVVNBR0UuCisJCQkJICovCisJCQkJbWFzayAmPSB+KEFDTF9JTlNFUlQgfCBB Q0xfVVBEQVRFIHwgQUNMX1VTQUdFKTsKKwkJCX0KKwkJCWVsc2UgaWYgKElzU3lzdGVtQ2xhc3Mo dGFibGVfb2lkLCBjbGFzc0Zvcm0pICYmCisJCQkJY2xhc3NGb3JtLT5yZWxraW5kICE9IFJFTEtJ TkRfVklFVykKKwkJCXsKKwkJCQkvKgorCQkJCSAqIERlbnkgYW55b25lIHBlcm1pc3Npb24gdG8g dXBkYXRlIGEgc3lzdGVtIGNhdGFsb2cgdW5sZXNzCisJCQkJICogcGdfYXV0aGlkLnJvbHN1cGVy IGlzIHNldC4KKwkJCQkgKgorCQkJCSAqIEFzIG9mIDcuNCB3ZSBoYXZlIHNvbWUgdXBkYXRhYmxl IHN5c3RlbSB2aWV3czsgdGhvc2UKKwkJCQkgKiBzaG91bGRuJ3QgYmUgcHJvdGVjdGVkIGluIHRo aXMgd2F5LiAgQXNzdW1lIHRoZSB2aWV3IHJ1bGVzCisJCQkJICogY2FuIHRha2UgY2FyZSBvZiB0 aGVtc2VsdmVzLiAgQUNMX1VTQUdFIGlzIGlmIHdlIGV2ZXIgaGF2ZQorCQkJCSAqIHN5c3RlbSBz ZXF1ZW5jZXMuCisJCQkJICovCisJCQkJbWFzayAmPSB+KEFDTF9JTlNFUlQgfCBBQ0xfVVBEQVRF IHwgQUNMX0RFTEVURSB8IEFDTF9UUlVOQ0FURSB8CisJCQkJCQkgIEFDTF9VU0FHRSk7CisJCQl9 CisJCX0KKwl9CisJZWxzZQogCXsKKwkJLyogU3VwZXJ1c2VycyBieXBhc3MgYWxsIHBlcm1pc3Np b24tY2hlY2tpbmcuICovCiAJCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CiAJCXJldHVybiBtYXNr OwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMKaW5kZXggN2JlNDkwMzI5MzQuLmJlODc5MWFmODc1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL2NhdGFsb2cuYwpAQCAtODYsNyArODYsOSBAQCBib29sCiBJc1N5c3RlbUNsYXNz KE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKIHsKIAkvKiBJc0NhdGFsb2dSZWxh dGlvbk9pZCBpcyBhIGJpdCBmYXN0ZXIsIHNvIHRlc3QgdGhhdCBmaXJzdCAqLwotCXJldHVybiAo SXNDYXRhbG9nUmVsYXRpb25PaWQocmVsaWQpIHx8IElzVG9hc3RDbGFzcyhyZWx0dXBsZSkpOwor CXJldHVybiAoSXNDYXRhbG9nUmVsYXRpb25PaWQocmVsaWQpIHx8CisJCQlJc1RvYXN0Q2xhc3Mo cmVsdHVwbGUpIHx8CisJCQlJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhyZWx0dXBsZSkpOwogfQog CiAvKgpAQCAtMjMwLDYgKzIzMiwyMCBAQCBJc1RvYXN0Q2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0 dXBsZSkKIAlyZXR1cm4gSXNUb2FzdE5hbWVzcGFjZShyZWxuYW1lc3BhY2UpOwogfQogCisvKgor ICogSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MKKyAqCQlUcnVlIGlmZiBwZ19jbGFzcyB0dXBsZSBy ZXByZXNlbnRzIGEgQ29uZmxpY3QgTG9nIFRhYmxlLgorICoKKyAqCQlEb2VzIG5vdCBwZXJmb3Jt IGFueSBjYXRhbG9nIGFjY2Vzc2VzLgorICovCitib29sCitJc0NvbmZsaWN0TG9nVGFibGVDbGFz cyhGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQoreworCU9pZAkJCXJlbG5hbWVzcGFjZSA9IHJlbHR1 cGxlLT5yZWxuYW1lc3BhY2U7CisKKwlyZXR1cm4gSXNDb25mbGljdExvZ1RhYmxlTmFtZXNwYWNl KHJlbG5hbWVzcGFjZSk7Cit9CisKIC8qCiAgKiBJc0NhdGFsb2dOYW1lc3BhY2UKICAqCQlUcnVl IGlmZiBuYW1lc3BhY2UgaXMgcGdfY2F0YWxvZy4KQEAgLTI2NCw2ICsyODAsMTcgQEAgSXNUb2Fz dE5hbWVzcGFjZShPaWQgbmFtZXNwYWNlSWQpCiAJCWlzVGVtcFRvYXN0TmFtZXNwYWNlKG5hbWVz cGFjZUlkKTsKIH0KIAorLyoKKyAqIElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZQorICoJCVRy dWUgaWZmIG5hbWVzcGFjZSBpcyBwZ19jb25mbGljdC4KKyAqCisgKgkJRG9lcyBub3QgcGVyZm9y bSBhbnkgY2F0YWxvZyBhY2Nlc3Nlcy4KKyAqLworYm9vbAorSXNDb25mbGljdExvZ1RhYmxlTmFt ZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCkKK3sKKwlyZXR1cm4gbmFtZXNwYWNlSWQgPT0gUEdfQ09O RkxJQ1RfTkFNRVNQQUNFOworfQogCiAvKgogICogSXNSZXNlcnZlZE5hbWUKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMK aW5kZXggODgwODc2NTRkZTkuLjVkMDdkY2MxYzViIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL2hlYXAuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAtMzA1LDIz ICszMDUsMzEgQEAgaGVhcF9jcmVhdGUoY29uc3QgY2hhciAqcmVsbmFtZSwKIAlBc3NlcnQoT2lk SXNWYWxpZChyZWxpZCkpOwogCiAJLyoKLQkgKiBEb24ndCBhbGxvdyBjcmVhdGluZyByZWxhdGlv bnMgaW4gcGdfY2F0YWxvZyBkaXJlY3RseSwgZXZlbiB0aG91Z2ggaXQKLQkgKiBpcyBhbGxvd2Vk IHRvIG1vdmUgdXNlciBkZWZpbmVkIHJlbGF0aW9ucyB0aGVyZS4gU2VtYW50aWNzIHdpdGggc2Vh cmNoCi0JICogcGF0aHMgaW5jbHVkaW5nIHBnX2NhdGFsb2cgYXJlIHRvbyBjb25mdXNpbmcgZm9y IG5vdy4KKwkgKiBEb24ndCBhbGxvdyBjcmVhdGluZyByZWxhdGlvbnMgaW4gcGdfY2F0YWxvZyBv ciBwZ19jb25mbGljdCBkaXJlY3RseSwKKwkgKiBldmVuIHRob3VnaCBpdCBpcyBhbGxvd2VkIHRv IG1vdmUgdXNlciBkZWZpbmVkIHJlbGF0aW9ucyB0aGVyZS4gU2VtYW50aWNzCisJICogd2l0aCBz ZWFyY2ggcGF0aHMgaW5jbHVkaW5nIHBnX2NhdGFsb2cgYXJlIHRvbyBjb25mdXNpbmcgZm9yIG5v dy4KIAkgKgogCSAqIEJ1dCBhbGxvdyBjcmVhdGluZyBpbmRleGVzIG9uIHJlbGF0aW9ucyBpbiBw Z19jYXRhbG9nIGV2ZW4gaWYKIAkgKiBhbGxvd19zeXN0ZW1fdGFibGVfbW9kcyA9IG9mZiwgdXBw ZXIgbGF5ZXJzIGFscmVhZHkgZ3VhcmFudGVlIGl0J3Mgb24gYQogCSAqIHVzZXIgZGVmaW5lZCBy ZWxhdGlvbiwgbm90IGEgc3lzdGVtIG9uZS4KIAkgKi8KLQlpZiAoIWFsbG93X3N5c3RlbV90YWJs ZV9tb2RzICYmCi0JCSgoSXNDYXRhbG9nTmFtZXNwYWNlKHJlbG5hbWVzcGFjZSkgJiYgcmVsa2lu ZCAhPSBSRUxLSU5EX0lOREVYKSB8fAotCQkgSXNUb2FzdE5hbWVzcGFjZShyZWxuYW1lc3BhY2Up KSAmJgotCQlJc05vcm1hbFByb2Nlc3NpbmdNb2RlKCkpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKLQkJCQkgZXJybXNnKCJw ZXJtaXNzaW9uIGRlbmllZCB0byBjcmVhdGUgXCIlcy4lc1wiIiwKLQkJCQkJCWdldF9uYW1lc3Bh Y2VfbmFtZShyZWxuYW1lc3BhY2UpLCByZWxuYW1lKSwKLQkJCQkgZXJyZGV0YWlsKCJTeXN0ZW0g Y2F0YWxvZyBtb2RpZmljYXRpb25zIGFyZSBjdXJyZW50bHkgZGlzYWxsb3dlZC4iKSkpOworCWlm ICghYWxsb3dfc3lzdGVtX3RhYmxlX21vZHMgJiYgSXNOb3JtYWxQcm9jZXNzaW5nTW9kZSgpKQor CXsKKwkJaWYgKChJc0NhdGFsb2dOYW1lc3BhY2UocmVsbmFtZXNwYWNlKSAmJiByZWxraW5kICE9 IFJFTEtJTkRfSU5ERVgpIHx8CisJCQlJc1RvYXN0TmFtZXNwYWNlKHJlbG5hbWVzcGFjZSkpCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklW SUxFR0UpLAorCQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZCB0byBjcmVhdGUgXCIlc1wi IiwKKwkJCQkJCQlnZXRfcXVhbGlmaWVkX29iam5hbWUocmVsbmFtZXNwYWNlLCByZWxuYW1lKSks CisJCQkJCSBlcnJkZXRhaWwoIlN5c3RlbSBjYXRhbG9nIG1vZGlmaWNhdGlvbnMgYXJlIGN1cnJl bnRseSBkaXNhbGxvd2VkLiIpKSk7CisKKwkJaWYgKElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFj ZShyZWxuYW1lc3BhY2UpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5p ZWQgdG8gY3JlYXRlIFwiJXNcIiIsCisJCQkJCQkJZ2V0X3F1YWxpZmllZF9vYmpuYW1lKHJlbG5h bWVzcGFjZSwgcmVsbmFtZSkpLAorCQkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBzY2hlbWEgbW9k aWZpY2F0aW9ucyBhcmUgY3VycmVudGx5IGRpc2FsbG93ZWQuIikpKTsKKwl9CiAKIAkqcmVsZnJv emVueGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJKnJlbG1pbm14aWQgPSBJbnZhbGlkTXVs dGlYYWN0SWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwppbmRleCA1NmI4N2Q4NzhlOC4uNWJkOWJl Mzk4M2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwpAQCAtMzUyMyw5ICszNTIzLDggQEAgTG9v a3VwQ3JlYXRpb25OYW1lc3BhY2UoY29uc3QgY2hhciAqbnNwbmFtZSkKIC8qCiAgKiBDb21tb24g Y2hlY2tzIG9uIHN3aXRjaGluZyBuYW1lc3BhY2VzLgogICoKLSAqIFdlIGNvbXBsYWluIGlmIGVp dGhlciB0aGUgb2xkIG9yIG5ldyBuYW1lc3BhY2VzIGlzIGEgdGVtcG9yYXJ5IHNjaGVtYQotICog KG9yIHRlbXBvcmFyeSB0b2FzdCBzY2hlbWEpLCBvciBpZiBlaXRoZXIgdGhlIG9sZCBvciBuZXcg bmFtZXNwYWNlcyBpcyB0aGUKLSAqIFRPQVNUIHNjaGVtYS4KKyAqIFdlIGNvbXBsYWluIGlmIGVp dGhlciB0aGUgb2xkIG9yIG5ldyBuYW1lc3BhY2VzIGlzIGEgdGVtcG9yYXJ5IHNjaGVtYSwKKyAq IHRlbXBvcmFyeSB0b2FzdCBzY2hlbWEsIHRoZSBUT0FTVCBzY2hlbWEsIG9yIHRoZSBjb25mbGlj dCBzY2hlbWEuCiAgKi8KIHZvaWQKIENoZWNrU2V0TmFtZXNwYWNlKE9pZCBvbGROc3BPaWQsIE9p ZCBuc3BPaWQpCkBAIC0zNTQxLDYgKzM1NDAsMTIgQEAgQ2hlY2tTZXROYW1lc3BhY2UoT2lkIG9s ZE5zcE9pZCwgT2lkIG5zcE9pZCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1zZygiY2Fubm90IG1vdmUgb2Jq ZWN0cyBpbnRvIG9yIG91dCBvZiBUT0FTVCBzY2hlbWEiKSkpOworCisJLyogc2ltaWxhcmx5IGZv ciBjb25mbGljdCBzY2hlbWEgKi8KKwlpZiAobnNwT2lkID09IFBHX0NPTkZMSUNUX05BTUVTUEFD RSB8fCBvbGROc3BPaWQgPT0gUEdfQ09ORkxJQ1RfTkFNRVNQQUNFKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJy bXNnKCJjYW5ub3QgbW92ZSBvYmplY3RzIGludG8gb3Igb3V0IG9mIHRoZSBjb25mbGljdCBzY2hl bWEiKSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IDVj NDU3ZDlhY2E4Li4xZWM5NGM4NTFiMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24u YwpAQCAtOTIsNiArOTIsMTMgQEAgY2hlY2tfcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKFB1Ymxp Y2F0aW9uUmVsSW5mbyAqcHJpKQogCQkJCSBlcnJtc2coZXJyb3Jtc2csIHJlbG5hbWUpLAogCQkJ CSBlcnJkZXRhaWwoIlRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHN5c3RlbSB0 YWJsZXMuIikpKTsKIAorCS8qIENhbid0IGJlIGNvbmZsaWN0IGxvZyB0YWJsZSAqLworCWlmIChJ c0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UoUmVsYXRpb25HZXROYW1lc3BhY2UodGFyZ2V0cmVs KSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFN RVRFUl9WQUxVRSksCisJCQkJIGVycm1zZyhlcnJvcm1zZywgcmVsbmFtZSksCisJCQkJIGVycmRl dGFpbCgiVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgY29uZmxpY3QgbG9nIHRh Ymxlcy4iKSkpOworCiAJLyogVU5MT0dHRUQgYW5kIFRFTVAgcmVsYXRpb25zIGNhbm5vdCBiZSBw YXJ0IG9mIHB1YmxpY2F0aW9uLiAqLwogCWlmICh0YXJnZXRyZWwtPnJkX3JlbC0+cmVscGVyc2lz dGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTExMyw3 ICsxMjAsOCBAQCBzdGF0aWMgdm9pZAogY2hlY2tfcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQg c2NoZW1haWQpCiB7CiAJLyogQ2FuJ3QgYmUgc3lzdGVtIG5hbWVzcGFjZSAqLwotCWlmIChJc0Nh dGFsb2dOYW1lc3BhY2Uoc2NoZW1haWQpIHx8IElzVG9hc3ROYW1lc3BhY2Uoc2NoZW1haWQpKQor CWlmIChJc0NhdGFsb2dOYW1lc3BhY2Uoc2NoZW1haWQpIHx8IElzVG9hc3ROYW1lc3BhY2Uoc2No ZW1haWQpIHx8CisJCUlzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShzY2hlbWFpZCkpCiAJCWVy ZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxV RSksCiAJCQkJIGVycm1zZygiY2Fubm90IGFkZCBzY2hlbWEgXCIlc1wiIHRvIHB1YmxpY2F0aW9u IiwKQEAgLTE0OCw3ICsxNTYsOCBAQCBjaGVja19wdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBz Y2hlbWFpZCkKICAqIGlzIHJlYWxseSBpbmFkZXF1YXRlIGZvciB0aGF0LCBzaW5jZSB0aGUgaW5m b3JtYXRpb25fc2NoZW1hIGNvdWxkIGJlCiAgKiBkcm9wcGVkIGFuZCByZWxvYWRlZCBhbmQgdGhl biBpdCdsbCBiZSBjb25zaWRlcmVkIHB1Ymxpc2hhYmxlLiAgVGhlIGJlc3QKICAqIGxvbmctdGVy bSBzb2x1dGlvbiBtYXkgYmUgdG8gYWRkIGEgInJlbGlzcHVibGlzaGFibGUiIGJvb2wgdG8gcGdf Y2xhc3MsCi0gKiBhbmQgZGVwZW5kIG9uIHRoYXQgaW5zdGVhZCBvZiBPSUQgY2hlY2tzLgorICog YW5kIGRlcGVuZCBvbiB0aGF0IGluc3RlYWQgb2YgT0lEIGNoZWNrcy4gIElzQ29uZmxpY3RMb2dU YWJsZUNsYXNzKCkKKyAqIGV4Y2x1ZGVzIHRhYmxlcyBpbiBjb25mbGljdCBzY2hlbWEuCiAgKi8K IHN0YXRpYyBib29sCiBpc19wdWJsaXNoYWJsZV9jbGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdfY2xh c3MgcmVsdHVwbGUpCkBAIC0xNTcsNiArMTY2LDcgQEAgaXNfcHVibGlzaGFibGVfY2xhc3MoT2lk IHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0g UkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSB8fAogCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0gUkVM S0lORF9TRVFVRU5DRSkgJiYKIAkJIUlzQ2F0YWxvZ1JlbGF0aW9uT2lkKHJlbGlkKSAmJgorCQkh SXNDb25mbGljdExvZ1RhYmxlQ2xhc3MocmVsdHVwbGUpICYmCiAJCXJlbHR1cGxlLT5yZWxwZXJz aXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9QRVJNQU5FTlQgJiYKIAkJcmVsaWQgPj0gRmlyc3RO b3JtYWxPYmplY3RJZDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vi c2NyaXB0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCmluZGV4 IDQ1ZWZmMjA3NzQ2Li40YWRiYTcyNTdlYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19zdWJzY3JpcHRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlw dGlvbi5jCkBAIC0xMjQsNiArMTI0LDcgQEAgR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9v bCBtaXNzaW5nX29rLCBib29sIGFjbGNoZWNrKQogCXN1Yi0+cmV0YWluZGVhZHR1cGxlcyA9IHN1 YmZvcm0tPnN1YnJldGFpbmRlYWR0dXBsZXM7CiAJc3ViLT5tYXhyZXRlbnRpb24gPSBzdWJmb3Jt LT5zdWJtYXhyZXRlbnRpb247CiAJc3ViLT5yZXRlbnRpb25hY3RpdmUgPSBzdWJmb3JtLT5zdWJy ZXRlbnRpb25hY3RpdmU7CisJc3ViLT5jb25mbGljdGxvZ3JlbGlkID0gc3ViZm9ybS0+c3ViY29u ZmxpY3Rsb2dyZWxpZDsKIAogCS8qIEdldCBjb25uaW5mbyAqLwogCWlmIChPaWRJc1ZhbGlkKHN1 YmZvcm0tPnN1YnNlcnZlcikpCkBAIC0xOTMsNiArMTk0LDEyIEBAIEdldFN1YnNjcmlwdGlvbihP aWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaywgYm9vbCBhY2xjaGVjaykKIAkJCQkJCQkJICAgQW51 bV9wZ19zdWJzY3JpcHRpb25fc3Vib3JpZ2luKTsKIAlzdWItPm9yaWdpbiA9IFRleHREYXR1bUdl dENTdHJpbmcoZGF0dW0pOwogCisJLyogR2V0IGNvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAqLwor CWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChTVUJTQ1JJUFRJT05PSUQsCisJCQkJCQkJ CSAgIHR1cCwKKwkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dk ZXN0KTsKKwlzdWItPmNvbmZsaWN0bG9nZGVzdCA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0p OworCiAJLyogSXMgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBhIHN1cGVydXNlcj8gKi8KIAlzdWIt Pm93bmVyc3VwZXJ1c2VyID0gc3VwZXJ1c2VyX2FyZyhzdWItPm93bmVyKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDhmMTI5YmFlYzkwLi41OTY3NzYyZTYwMyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTUyNyw4ICsxNTI3LDggQEAgR1JB TlQgU0VMRUNUIChvaWQsIHN1YmRiaWQsIHN1YnNraXBsc24sIHN1Ym5hbWUsIHN1Ym93bmVyLCBz dWJlbmFibGVkLAogICAgICAgICAgICAgICBzdWJiaW5hcnksIHN1YnN0cmVhbSwgc3VidHdvcGhh c2VzdGF0ZSwgc3ViZGlzYWJsZW9uZXJyLAogCQkJICBzdWJwYXNzd29yZHJlcXVpcmVkLCBzdWJy dW5hc293bmVyLCBzdWJmYWlsb3ZlciwKICAgICAgICAgICAgICAgc3VicmV0YWluZGVhZHR1cGxl cywgc3VibWF4cmV0ZW50aW9uLCBzdWJyZXRlbnRpb25hY3RpdmUsCi0gICAgICAgICAgICAgIHN1 YnNlcnZlciwgc3Vic2xvdG5hbWUsIHN1YnN5bmNjb21taXQsIHN1YndhbHJjdnRpbWVvdXQsCi0g ICAgICAgICAgICAgIHN1YnB1YmxpY2F0aW9ucywgc3Vib3JpZ2luKQorICAgICAgICAgICAgICBz dWJzZXJ2ZXIsIHN1YmNvbmZsaWN0bG9ncmVsaWQsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3Vic2xv dG5hbWUsCisgICAgICAgICAgICAgIHN1YnN5bmNjb21taXQsIHN1YndhbHJjdnRpbWVvdXQsIHN1 YnB1YmxpY2F0aW9ucywgc3Vib3JpZ2luKQogICAgIE9OIHBnX3N1YnNjcmlwdGlvbiBUTyBwdWJs aWM7CiAKIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0YXRzIEFTCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXggMDcwMTQxYmNlNzUuLjcxOGI0YTUy Yjk4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC0yOCw2ICsy OCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWRfZC5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfZGF0YWJhc2VfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9zZXJ2ZXIu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb25fcmVs LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCkBAIC0zNSw2ICszNiw3IEBACiAjaW5j bHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dl ci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKKyNpbmNsdWRlICJj b21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2lu Y2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgpAQCAtNzks NiArODEsNyBAQAogI2RlZmluZSBTVUJPUFRfV0FMX1JFQ0VJVkVSX1RJTUVPVVQJCQkweDAwMDEw MDAwCiAjZGVmaW5lIFNVQk9QVF9MU04JCQkJCTB4MDAwMjAwMDAKICNkZWZpbmUgU1VCT1BUX09S SUdJTgkJCQkweDAwMDQwMDAwCisjZGVmaW5lIFNVQk9QVF9DT05GTElDVF9MT0dfREVTVAkweDAw MDgwMDAwCiAKIC8qIGNoZWNrIGlmIHRoZSAndmFsJyBoYXMgJ2JpdHMnIHNldCAqLwogI2RlZmlu ZSBJc1NldCh2YWwsIGJpdHMpICAoKCh2YWwpICYgKGJpdHMpKSA9PSAoYml0cykpCkBAIC0xMDcs NiArMTEwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3ViT3B0cwogCWJvb2wJCXJldGFpbmRlYWR0dXBs ZXM7CiAJaW50MzIJCW1heHJldGVudGlvbjsKIAljaGFyCSAgICpvcmlnaW47CisJQ29uZmxpY3RM b2dEZXN0IGNvbmZsaWN0bG9nZGVzdDsKIAlYTG9nUmVjUHRyCWxzbjsKIAljaGFyCSAgICp3YWxf cmVjZWl2ZXJfdGltZW91dDsKIH0gU3ViT3B0czsKQEAgLTE0MCw3ICsxNDQsMTIgQEAgc3RhdGlj IExpc3QgKm1lcmdlX3B1YmxpY2F0aW9ucyhMaXN0ICpvbGRwdWJsaXN0LCBMaXN0ICpuZXdwdWJs aXN0LCBib29sIGFkZHB1YiwKIHN0YXRpYyB2b2lkIFJlcG9ydFNsb3RDb25uZWN0aW9uRXJyb3Io TGlzdCAqcnN0YXRlcywgT2lkIHN1YmlkLCBjaGFyICpzbG90bmFtZSwgY2hhciAqZXJyKTsKIHN0 YXRpYyB2b2lkIENoZWNrQWx0ZXJTdWJPcHRpb24oU3Vic2NyaXB0aW9uICpzdWIsIGNvbnN0IGNo YXIgKm9wdGlvbiwKIAkJCQkJCQkJYm9vbCBzbG90X25lZWRzX3VwZGF0ZSwgYm9vbCBpc1RvcExl dmVsKTsKLQorc3RhdGljIGJvb2wgYWx0ZXJfc3ViX2NvbmZsaWN0X2xvZ19kZXN0KFN1YnNjcmlw dGlvbiAqc3ViLAorCQkJCQkJCQkJCUNvbmZsaWN0TG9nRGVzdCBvbGRsb2dkZXN0LAorCQkJCQkJ CQkJCUNvbmZsaWN0TG9nRGVzdCBuZXdsb2dkZXN0LAorCQkJCQkJCQkJCU9pZCAqY29uZmxpY3R0 YWJsZXJlbGlkKTsKK3N0YXRpYyB2b2lkIGRyb3Bfc3ViX2NvbmZsaWN0X2xvZ190YWJsZShPaWQg c3ViaWQsIGNoYXIgKnN1Ym5hbWUsCisJCQkJCQkJCQkJT2lkIHN1YmNvbmZsaWN0bG9ncmVsaWQp OwogCiAvKgogICogQ29tbW9uIG9wdGlvbiBwYXJzaW5nIGZ1bmN0aW9uIGZvciBDUkVBVEUgYW5k IEFMVEVSIFNVQlNDUklQVElPTiBjb21tYW5kcy4KQEAgLTE5Niw2ICsyMDUsOCBAQCBwYXJzZV9z dWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0bXRfb3B0aW9u cywKIAkJb3B0cy0+bWF4cmV0ZW50aW9uID0gMDsKIAlpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMs IFNVQk9QVF9PUklHSU4pKQogCQlvcHRzLT5vcmlnaW4gPSBwc3RyZHVwKExPR0lDQUxSRVBfT1JJ R0lOX0FOWSk7CisJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9H X0RFU1QpKQorCQlvcHRzLT5jb25mbGljdGxvZ2Rlc3QgPSBDT05GTElDVF9MT0dfREVTVF9MT0c7 CiAKIAkvKiBQYXJzZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywgc3RtdF9vcHRpb25zKQpAQCAt NDM2LDYgKzQ0NywxOCBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpw c3RhdGUsIExpc3QgKnN0bXRfb3B0aW9ucywKIAkJCQkJCQkJCQkgUEdDX0JBQ0tFTkQsIFBHQ19T X1RFU1QsIEdVQ19BQ1RJT05fU0VULAogCQkJCQkJCQkJCSBmYWxzZSwgMCwgZmFsc2UpOwogCQl9 CisJCWVsc2UgaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RF U1QpICYmCisJCQkJIHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbiIpID09IDApCisJCXsKKwkJCWNoYXIgKnZhbDsKKworCQkJaWYgKElzU2V0KG9wdHMtPnNw ZWNpZmllZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpKQorCQkJCWVycm9yQ29uZmxp Y3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOworCisJCQl2YWwgPSBkZWZHZXRTdHJpbmcoZGVm ZWwpOworCQkJb3B0cy0+Y29uZmxpY3Rsb2dkZXN0ID0gR2V0Q29uZmxpY3RMb2dEZXN0KHZhbCk7 CisJCQlvcHRzLT5zcGVjaWZpZWRfb3B0cyB8PSBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1Q7CisJ CX0KIAkJZWxzZQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5U QVhfRVJST1IpLApAQCAtNjYwLDYgKzY4Myw3IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0 YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJdWludDMyCQlzdXBw b3J0ZWRfb3B0czsKIAlTdWJPcHRzCQlvcHRzID0gezB9OwogCUFjbFJlc3VsdAlhY2xyZXN1bHQ7 CisJT2lkCQkJbG9ncmVsaWQgPSBJbnZhbGlkT2lkOwogCiAJLyoKIAkgKiBQYXJzZSBhbmQgY2hl Y2sgb3B0aW9ucy4KQEAgLTY3NCw3ICs2OTgsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkgIFNVQk9Q VF9SVU5fQVNfT1dORVIgfCBTVUJPUFRfRkFJTE9WRVIgfAogCQkJCQkgIFNVQk9QVF9SRVRBSU5f REVBRF9UVVBMRVMgfAogCQkJCQkgIFNVQk9QVF9NQVhfUkVURU5USU9OX0RVUkFUSU9OIHwKLQkJ CQkJICBTVUJPUFRfV0FMX1JFQ0VJVkVSX1RJTUVPVVQgfCBTVUJPUFRfT1JJR0lOKTsKKwkJCQkJ ICBTVUJPUFRfV0FMX1JFQ0VJVkVSX1RJTUVPVVQgfCBTVUJPUFRfT1JJR0lOIHwKKwkJCQkJICBT VUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpOwogCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBz dGF0ZSwgc3RtdC0+b3B0aW9ucywgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsKIAogCS8qCkBAIC04 NDgsNiArODczLDIwIEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENy ZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9u X3N1Ym9yaWdpbiAtIDFdID0KIAkJQ1N0cmluZ0dldFRleHREYXR1bShvcHRzLm9yaWdpbik7CiAK Kwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0IC0gMV0gPQor CQlDU3RyaW5nR2V0VGV4dERhdHVtKENvbmZsaWN0TG9nRGVzdE5hbWVzW29wdHMuY29uZmxpY3Rs b2dkZXN0XSk7CisKKwkvKgorCSAqIFdlIGNyZWF0ZSB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGhl cmUsIGlmIHJlcXVpcmVkLCBzbyB0aGF0IGl0cyByZWxhdGlvbgorCSAqIE9JRCBjYW4gYmUgc3Rv cmVkIHdoZW4gaW5zZXJ0aW5nIHRoZSBwZ19zdWJzY3JpcHRpb24gdHVwbGUgYmVsb3cuCisJICov CisJaWYgKENPTkZMSUNUU19MT0dHRURfVE9fVEFCTEUob3B0cy5jb25mbGljdGxvZ2Rlc3QpKQor CQlsb2dyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoc3ViaWQsIHN0bXQtPnN1Ym5h bWUsIG93bmVyKTsKKworCS8qIFN0b3JlIHRhYmxlIE9JRCBpbiB0aGUgY2F0YWxvZy4gKi8KKwl2 YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dyZWxpZCAtIDFdID0KKwkJ CQkJCU9iamVjdElkR2V0RGF0dW0obG9ncmVsaWQpOworCiAJdHVwID0gaGVhcF9mb3JtX3R1cGxl KFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7CiAKIAkvKiBJbnNlcnQgdHVw bGUgaW50byBjYXRhbG9nLiAqLwpAQCAtODY4LDYgKzkwNywyNSBAQCBDcmVhdGVTdWJzY3JpcHRp b24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQly ZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFM KTsKIAl9CiAKKwkvKgorCSAqIEVzdGFibGlzaCBhbiBpbnRlcm5hbCBkZXBlbmRlbmN5IGJldHdl ZW4gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBhbmQKKwkgKiB0aGUgc3Vic2NyaXB0aW9uLgorCSAq CisJICogV2UgdXNlIERFUEVOREVOQ1lfSU5URVJOQUwgdG8gc2lnbmlmeSB0aGF0IHRoZSB0YWJs ZSdzIGxpZmVjeWNsZSBpcworCSAqIHN0cmljdGx5IHRpZWQgdG8gdGhlIHN1YnNjcmlwdGlvbiwg c2ltaWxhciB0byBob3cgYSBUT0FTVCB0YWJsZSByZWxhdGVzCisJICogdG8gaXRzIG1haW4gdGFi bGUgb3IgYSBzZXF1ZW5jZSByZWxhdGVzIHRvIGFuIGlkZW50aXR5IGNvbHVtbi4KKwkgKgorCSAq IFRoaXMgZW5zdXJlcyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGlzIGF1dG9tYXRpY2FsbHkgcmVh cGVkIGR1cmluZyBhCisJICogRFJPUCBTVUJTQ1JJUFRJT04gdmlhIHBlcmZvcm1EZWxldGlvbigp LgorCSAqLworCWlmIChPaWRJc1ZhbGlkKGxvZ3JlbGlkKSkKKwl7CisJCU9iamVjdEFkZHJlc3Mg Y2x0YWRkcjsKKworCQlPYmplY3RBZGRyZXNzU2V0KGNsdGFkZHIsIFJlbGF0aW9uUmVsYXRpb25J ZCwgbG9ncmVsaWQpOworCQlyZWNvcmREZXBlbmRlbmN5T24oJmNsdGFkZHIsICZteXNlbGYsIERF UEVOREVOQ1lfSU5URVJOQUwpOworCX0KKwogCS8qCiAJICogQSByZXBsaWNhdGlvbiBvcmlnaW4g aXMgY3VycmVudGx5IGNyZWF0ZWQgZm9yIGFsbCBzdWJzY3JpcHRpb25zLAogCSAqIGluY2x1ZGlu ZyB0aG9zZSB0aGF0IG9ubHkgY29udGFpbiBzZXF1ZW5jZXMgb3IgYXJlIG90aGVyd2lzZSBlbXB0 eS4KQEAgLTE0MzcsNiArMTQ5NSw3MSBAQCBDaGVja0FsdGVyU3ViT3B0aW9uKFN1YnNjcmlwdGlv biAqc3ViLCBjb25zdCBjaGFyICpvcHRpb24sCiAJfQogfQogCisvKgorICogYWx0ZXJfc3ViX2Nv bmZsaWN0X2xvZ19kZXN0CisgKgorICogV2hlbiB0aGUgc3Vic2NyaXB0aW9uJ3MgJ2NvbmZsaWN0 X2xvZ19kZXN0aW5hdGlvbicgaXMgY2hhbmdlZCwgdXBkYXRlIHRoZQorICogY29uZmxpY3QgbG9n IHRhYmxlIGlmIHJlcXVpcmVkLgorICoKKyAqIElmIHRoZSBuZXcgZGVzdGluYXRpb24gbm8gbG9u Z2VyIHJlcXVpcmVzIGEgY29uZmxpY3QgbG9nIHRhYmxlLCB0aGUgZXhpc3RpbmcKKyAqIGNvbmZs aWN0IGxvZyB0YWJsZSBhc3NvY2lhdGVkIHdpdGggdGhlIHN1YnNjcmlwdGlvbiBpcyByZW1vdmVk IHZpYSBpbnRlcm5hbAorICogZGVwZW5kZW5jeSBjbGVhbnVwIHRvIHByZXZlbnQgb3JwaGFuZWQg cmVsYXRpb25zLgorICoKKyAqIE9uIHN1Y2Nlc3MsICpjb25mbGljdHRhYmxlcmVsaWQgaXMgc2V0 IHRvIHRoZSBPSUQgb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorICogdGhhdCB3YXMgY3JlYXRl ZCBvciB2YWxpZGF0ZWQsIG9yIHRvIEludmFsaWRPaWQgaWYgbm8gdGFibGUgaXMgcmVxdWlyZWQu CisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBzdWJzY3JpcHRpb24ncyBjb25mbGljdCBsb2cg dGFibGUgcmVmZXJlbmNlIG11c3QgYmUKKyAqIHVwZGF0ZWQgYXMgYSByZXN1bHQgb2YgdGhlIGRl c3RpbmF0aW9uIGNoYW5nZTsgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitzdGF0aWMgYm9vbAorYWx0 ZXJfc3ViX2NvbmZsaWN0X2xvZ19kZXN0KFN1YnNjcmlwdGlvbiAqc3ViLCBDb25mbGljdExvZ0Rl c3Qgb2xkbG9nZGVzdCwKKwkJCQkJCQlDb25mbGljdExvZ0Rlc3QgbmV3bG9nZGVzdCwKKwkJCQkJ CQlPaWQgKmNvbmZsaWN0dGFibGVyZWxpZCkKK3sKKwlib29sCQl3YW50X3RhYmxlOworCWJvb2wJ CWhhc19vbGR0YWJsZTsKKwlib29sCQl1cGRhdGVfcmVsaWQgPSBmYWxzZTsKKwlPaWQJCQlyZWxp ZCA9IEludmFsaWRPaWQ7CisKKwl3YW50X3RhYmxlID0gQ09ORkxJQ1RTX0xPR0dFRF9UT19UQUJM RShuZXdsb2dkZXN0KTsKKwloYXNfb2xkdGFibGUgPSBDT05GTElDVFNfTE9HR0VEX1RPX1RBQkxF KG9sZGxvZ2Rlc3QpOworCisJaWYgKGhhc19vbGR0YWJsZSkKKwl7CisJCS8qIFRoZXJlIGlzIGEg Y29uZmxpY3QgbG9nIHRhYmxlIGFscmVhZHkuICovCisJCWlmICghd2FudF90YWJsZSkKKwkJewor CQkJZHJvcF9zdWJfY29uZmxpY3RfbG9nX3RhYmxlKHN1Yi0+b2lkLCBzdWItPm5hbWUsCisJCQkJ CQkJCQkJc3ViLT5jb25mbGljdGxvZ3JlbGlkKTsKKwkJCXVwZGF0ZV9yZWxpZCA9IHRydWU7CisJ CX0KKwl9CisJZWxzZQorCXsKKwkJLyogVGhlcmUgd2FzIG5vIHByZXZpb3VzIGNvbmZsaWN0IGxv ZyB0YWJsZS4gKi8KKwkJaWYgKHdhbnRfdGFibGUpCisJCXsKKwkJCU9iamVjdEFkZHJlc3MgY2x0 YWRkcjsKKwkJCU9iamVjdEFkZHJlc3Mgc3Vib2JqOworCisJCQlyZWxpZCA9IGNyZWF0ZV9jb25m bGljdF9sb2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFtZSwgc3ViLT5vd25lcik7CisJCQl1cGRh dGVfcmVsaWQgPSB0cnVlOworCisJCQkvKgorCQkJICogRXN0YWJsaXNoIGFuIGludGVybmFsIGRl cGVuZGVuY3kgYmV0d2VlbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCisJCQkgKiBhbmQgdGhlIHN1 YnNjcmlwdGlvbi4gIEZvciBkZXRhaWxzIHJlZmVyIGNvbW1lbnRzIGluCisJCQkgKiBDcmVhdGVT dWJzY3JpcHRpb24gZnVuY3Rpb24uCisJCQkgKi8KKwkJCU9iamVjdEFkZHJlc3NTZXQoY2x0YWRk ciwgUmVsYXRpb25SZWxhdGlvbklkLCByZWxpZCk7CisJCQlPYmplY3RBZGRyZXNzU2V0KHN1Ym9i aiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViLT5vaWQpOworCQkJcmVjb3JkRGVwZW5kZW5j eU9uKCZjbHRhZGRyLCAmc3Vib2JqLCBERVBFTkRFTkNZX0lOVEVSTkFMKTsKKwkJfQorCX0KKwor CSpjb25mbGljdHRhYmxlcmVsaWQgPSByZWxpZDsKKwlyZXR1cm4gdXBkYXRlX3JlbGlkOworfQor CiAvKgogICogQWx0ZXIgdGhlIGV4aXN0aW5nIHN1YnNjcmlwdGlvbi4KICAqLwpAQCAtMTUzMiw3 ICsxNjU1LDggQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1 YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCQkJCSAgU1VCT1BUX1JFVEFJTl9ERUFEX1RVUExF UyB8CiAJCQkJCQkJCSAgU1VCT1BUX01BWF9SRVRFTlRJT05fRFVSQVRJT04gfAogCQkJCQkJCQkg IFNVQk9QVF9XQUxfUkVDRUlWRVJfVElNRU9VVCB8Ci0JCQkJCQkJCSAgU1VCT1BUX09SSUdJTik7 CisJCQkJCQkJCSAgU1VCT1BUX09SSUdJTiB8CisJCQkJCQkJCSAgU1VCT1BUX0NPTkZMSUNUX0xP R19ERVNUKTsKIAogCQkJCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+ b3B0aW9ucywKIAkJCQkJCQkJCQkgICBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwpAQCAtMTc5Niw2 ICsxOTIwLDM0IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJT dWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlv bl9zdWJ3YWxyY3Z0aW1lb3V0IC0gMV0gPSB0cnVlOwogCQkJCX0KIAorCQkJCWlmIChJc1NldChv cHRzLnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpKQorCQkJCXsKKwkJ CQkJQ29uZmxpY3RMb2dEZXN0IG9sZF9kZXN0ID0KKwkJCQkJCQlHZXRDb25mbGljdExvZ0Rlc3Qo c3ViLT5jb25mbGljdGxvZ2Rlc3QpOworCisJCQkJCWlmIChvcHRzLmNvbmZsaWN0bG9nZGVzdCAh PSBvbGRfZGVzdCkKKwkJCQkJeworCQkJCQkJYm9vbAkJdXBkYXRlX3JlbGlkOworCQkJCQkJT2lk CQkJcmVsaWQgPSBJbnZhbGlkT2lkOworCisJCQkJCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRp b25fc3ViY29uZmxpY3Rsb2dkZXN0IC0gMV0gPQorCQkJCQkJCUNTdHJpbmdHZXRUZXh0RGF0dW0o Q29uZmxpY3RMb2dEZXN0TmFtZXNbb3B0cy5jb25mbGljdGxvZ2Rlc3RdKTsKKwkJCQkJCXJlcGxh Y2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbmZsaWN0bG9nZGVzdCAtIDFdID0gdHJ1ZTsK KworCQkJCQkJdXBkYXRlX3JlbGlkID0gYWx0ZXJfc3ViX2NvbmZsaWN0X2xvZ19kZXN0KHN1YiwK KwkJCQkJCQkJCQkJCQkJCQkgICBvbGRfZGVzdCwKKwkJCQkJCQkJCQkJCQkJCQkgICBvcHRzLmNv bmZsaWN0bG9nZGVzdCwKKwkJCQkJCQkJCQkJCQkJCQkgICAmcmVsaWQpOworCQkJCQkJaWYgKHVw ZGF0ZV9yZWxpZCkKKwkJCQkJCXsKKwkJCQkJCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25f c3ViY29uZmxpY3Rsb2dyZWxpZCAtIDFdID0KKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShyZWxp ZCk7CisJCQkJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dy ZWxpZCAtIDFdID0KKwkJCQkJCQkJdHJ1ZTsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCX0KKwogCQkJ CXVwZGF0ZV90dXBsZSA9IHRydWU7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC0yMjExLDYgKzIzNjMs NTEgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlw dGlvblN0bXQgKnN0bXQsCiAJcmV0dXJuIG15c2VsZjsKIH0KIAorLyoKKyAqIERyb3Agc3Vic2Ny aXB0aW9uJ3MgY29uZmxpY3QgbG9nIHRhYmxlCisgKgorICogVGhlIGNvbmZsaWN0IGxvZyB0YWJs ZSBpcyByZWdpc3RlcmVkIGFzIGFuIGludGVybmFsIGRlcGVuZGVuY3kgb2YgdGhlCisgKiBzdWJz Y3JpcHRpb24uIFRoaXMgZnVuY3Rpb24gcmVtb3ZlcyB0aGUgZGVwZW5kZW5jeSBieSBwZXJmb3Jt aW5nIGEKKyAqIGNhc2NhZGluZyBkZWxldGlvbiBvbiB0aGUgc3Vic2NyaXB0aW9uIG9iamVjdCwg d2hpY2ggaW4gdHVybiBkcm9wcyB0aGUKKyAqIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxl LgorICoKKyAqIFRoaXMgaXMgdXNlZCB0byBjbGVhbiB1cCBjb25mbGljdCBsb2cgdGFibGVzIHRo YXQgYXJlIG5vIGxvbmdlciByZXF1aXJlZCwKKyAqIHByZXZlbnRpbmcgYWNjdW11bGF0aW9uIG9m IHN0YWxlIG9yIG9ycGhhbmVkIHJlbGF0aW9ucy4KKyAqCisgKiBOT1RFOgorICogT25seSBjb25m bGljdCBsb2cgdGFibGVzIGFyZSBjdXJyZW50bHkgbWFuYWdlZCB2aWEgdGhpcyBpbnRlcm5hbCBk ZXBlbmRlbmN5CisgKiBtZWNoYW5pc20uCisgKi8KK3N0YXRpYyB2b2lkCitkcm9wX3N1Yl9jb25m bGljdF9sb2dfdGFibGUoT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1lLCBPaWQgc3ViY29uZmxpY3Rs b2dyZWxpZCkKK3sKKwkvKiBEcm9wIGFueSBkZXBlbmRlbnQgY29uZmxpY3QgbG9nIHRhYmxlICov CisJaWYgKE9pZElzVmFsaWQoc3ViY29uZmxpY3Rsb2dyZWxpZCkpCisJeworCQlPYmplY3RBZGRy ZXNzIG9iamVjdDsKKwkJY2hhciAJCSAqY29uZmxpY3RyZWxuYW1lOworCisJCWNvbmZsaWN0cmVs bmFtZSA9IGdldF9yZWxfbmFtZShzdWJjb25mbGljdGxvZ3JlbGlkKTsKKwkJaWYgKGNvbmZsaWN0 cmVsbmFtZSA9PSBOVUxMKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IHJlbGF0aW9uICV1IiwKKwkJCQkgc3ViY29uZmxpY3Rsb2dyZWxpZCk7CisKKwkJLyoKKwkJICog QnkgdXNpbmcgUEVSRk9STV9ERUxFVElPTl9TS0lQX09SSUdJTkFMLCB3ZSBlbnN1cmUgdGhhdCBv bmx5IHRoZQorCQkgKiBjb25mbGljdCBsb2cgdGFibGUgaXMgZGVsZXRlZCB3aGlsZSB0aGUgc3Vi c2NyaXB0aW9uIHJlbWFpbnMuCisJCSAqLworCQlPYmplY3RBZGRyZXNzU2V0KG9iamVjdCwgU3Vi c2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOworCQlwZXJmb3JtRGVsZXRpb24oJm9iamVjdCwg RFJPUF9DQVNDQURFLAorCQkJCQkJUEVSRk9STV9ERUxFVElPTl9JTlRFUk5BTCB8CisJCQkJCQlQ RVJGT1JNX0RFTEVUSU9OX1NLSVBfT1JJR0lOQUwpOworCisJCWVyZXBvcnQoTk9USUNFLAorCQkJ CWVycm1zZygiZHJvcHBlZCBjb25mbGljdCBsb2cgdGFibGUgXCIlc1wiIGZvciBzdWJzY3JpcHRp b24gXCIlc1wiIiwKKwkJCQkJCWdldF9xdWFsaWZpZWRfb2JqbmFtZShQR19DT05GTElDVF9OQU1F U1BBQ0UsIGNvbmZsaWN0cmVsbmFtZSksCisJCQkJCQlzdWJuYW1lKSk7CisJfQorfQorCiAvKgog ICogRHJvcCBhIHN1YnNjcmlwdGlvbgogICovCkBAIC0yMjIyLDYgKzI0MTksNyBAQCBEcm9wU3Vi c2NyaXB0aW9uKERyb3BTdWJzY3JpcHRpb25TdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJ SGVhcFR1cGxlCXR1cDsKIAlPaWQJCQlzdWJpZDsKIAlPaWQJCQlzdWJvd25lcjsKKwlPaWQJCQlz dWJjb25mbGljdGxvZ3JlbGlkOwogCURhdHVtCQlkYXR1bTsKIAlib29sCQlpc251bGw7CiAJY2hh cgkgICAqc3VibmFtZTsKQEAgLTIyNjcsNiArMjQ2NSw3IEBAIERyb3BTdWJzY3JpcHRpb24oRHJv cFN1YnNjcmlwdGlvblN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAlmb3JtID0gKEZvcm1f cGdfc3Vic2NyaXB0aW9uKSBHRVRTVFJVQ1QodHVwKTsKIAlzdWJpZCA9IGZvcm0tPm9pZDsKIAlz dWJvd25lciA9IGZvcm0tPnN1Ym93bmVyOworCXN1YmNvbmZsaWN0bG9ncmVsaWQgPSBmb3JtLT5z dWJjb25mbGljdGxvZ3JlbGlkOwogCW11c3RfdXNlX3Bhc3N3b3JkID0gIXN1cGVydXNlcl9hcmco c3Vib3duZXIpICYmIGZvcm0tPnN1YnBhc3N3b3JkcmVxdWlyZWQ7CiAKIAkvKiBtdXN0IGJlIG93 bmVyICovCkBAIC0yNDIxLDYgKzI2MjAsOCBAQCBEcm9wU3Vic2NyaXB0aW9uKERyb3BTdWJzY3Jp cHRpb25TdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJZGVsZXRlRGVwZW5kZW5jeVJlY29y ZHNGb3IoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIGZhbHNlKTsKIAlkZWxldGVTaGFy ZWREZXBlbmRlbmN5UmVjb3Jkc0ZvcihTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCwgMCk7 CiAKKwlkcm9wX3N1Yl9jb25mbGljdF9sb2dfdGFibGUoc3ViaWQsIHN1Ym5hbWUsIHN1YmNvbmZs aWN0bG9ncmVsaWQpOworCiAJLyogUmVtb3ZlIGFueSBhc3NvY2lhdGVkIHJlbGF0aW9uIHN5bmNo cm9uaXphdGlvbiBzdGF0ZXMuICovCiAJUmVtb3ZlU3Vic2NyaXB0aW9uUmVsKHN1YmlkLCBJbnZh bGlkT2lkKTsKIApAQCAtMjY1Niw2ICsyODU3LDExIEBAIEFsdGVyU3Vic2NyaXB0aW9uT3duZXJf aW50ZXJuYWwoUmVsYXRpb24gcmVsLCBIZWFwVHVwbGUgdHVwLCBPaWQgbmV3T3duZXJJZCkKIAlm b3JtLT5zdWJvd25lciA9IG5ld093bmVySWQ7CiAJQ2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJnR1 cC0+dF9zZWxmLCB0dXApOwogCisJLyogVXBkYXRlIG93bmVyIG9mIHRoZSBjb25mbGljdCBsb2cg dGFibGUgaWYgaXQgZXhpc3RzLiAqLworCWlmIChPaWRJc1ZhbGlkKGZvcm0tPnN1YmNvbmZsaWN0 bG9ncmVsaWQpKQorCQlBVEV4ZWNDaGFuZ2VPd25lcihmb3JtLT5zdWJjb25mbGljdGxvZ3JlbGlk LCBuZXdPd25lcklkLCB0cnVlLAorCQkJCQkJICBBY2Nlc3NFeGNsdXNpdmVMb2NrKTsKKwogCS8q IFVwZGF0ZSBvd25lciBkZXBlbmRlbmN5IHJlZmVyZW5jZSAqLwogCWNoYW5nZURlcGVuZGVuY3lP bk93bmVyKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsCiAJCQkJCQkJZm9ybS0+b2lkLApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYwppbmRleCAzOGY5ZmZjZDA0Zi4uMzdkMzljMmFlODggMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jCkBAIC0yNDU3LDkgKzI0NTcsMTEgQEAgdHJ1bmNhdGVfY2hlY2tf cmVsKE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKIAkgKiBwZ19sYXJnZW9iamVj dCBhbmQgcGdfbGFyZ2VvYmplY3RfbWV0YWRhdGEgdG8gYmUgdHJ1bmNhdGVkIGFzIHBhcnQgb2YK IAkgKiBwZ191cGdyYWRlLCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hhbmdlIGl0cyByZWxmaWxlbm9k ZSB0byBtYXRjaCB0aGUgb2xkCiAJICogY2x1c3RlciwgYW5kIGFsbG93aW5nIGEgVFJVTkNBVEUg Y29tbWFuZCB0byBiZSBleGVjdXRlZCBpcyB0aGUgZWFzaWVzdAotCSAqIHdheSBvZiBkb2luZyB0 aGF0LgorCSAqIHdheSBvZiBkb2luZyB0aGF0LiBXZSBhbHNvIGFsbG93IFRSVU5DQVRFIG9uIHRo ZSBjb25mbGljdCBsb2cgdGFibGVzLAorCSAqIHRvIHBlcm1pdCB1c2VycyB0byBtYW51YWxseSBw cnVuZSBjb25mbGljdCBkYXRhIHRvIG1hbmFnZSBkaXNrIHNwYWNlLgogCSAqLwotCWlmICghYWxs b3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwgcmVsdHVwbGUpCisJaWYg KCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCByZWx0dXBsZSkg JiYKKwkJIUlzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKHJlbHR1cGxlKQogCQkmJiAoIUlzQmluYXJ5 VXBncmFkZSB8fAogCQkJKHJlbGlkICE9IExhcmdlT2JqZWN0UmVsYXRpb25JZCAmJgogCQkJIHJl bGlkICE9IExhcmdlT2JqZWN0TWV0YWRhdGFSZWxhdGlvbklkKSkpCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01h aW4uYwppbmRleCA0YjMwZjc2ODY4MC4uZjg3ZWY2NWYzNDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01h aW4uYwpAQCAtMTE4Nyw2ICsxMTg3LDI0IEBAIENoZWNrVmFsaWRSZXN1bHRSZWwoUmVzdWx0UmVs SW5mbyAqcmVzdWx0UmVsSW5mbywgQ21kVHlwZSBvcGVyYXRpb24sCiAJCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVzdWx0UmVsKSkpKTsKIAkJCWJyZWFrOwogCX0KKworCS8qCisJICog Q29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIHRvIHJlY29yZCBs b2dpY2FsCisJICogcmVwbGljYXRpb24gY29uZmxpY3RzLiAgV2UgYWxsb3cgREVMRVRFIGFuZCBU UlVOQ0FURSB0byBwZXJtaXQgdXNlcnMgdG8KKwkgKiBtYW51YWxseSBwcnVuZSB0aGVzZSBsb2dz LCBidXQgbWFudWFsIGRhdGEgaW5zZXJ0aW9uIG9yIG1vZGlmaWNhdGlvbgorCSAqIChJTlNFUlQs IFVQREFURSwgTUVSR0UpIGlzIHByb2hpYml0ZWQgdG8gbWFpbnRhaW4gdGhlIGludGVncml0eSBv ZiB0aGUKKwkgKiBzeXN0ZW0tZ2VuZXJhdGVkIGxvZ3MuCisJICoKKwkgKiBTaW5jZSBUUlVOQ0FU RSBpcyBoYW5kbGVkIGFzIGEgc2VwYXJhdGUgdXRpbGl0eSBjb21tYW5kLCB3ZSBvbmx5IG5lZWQK KwkgKiB0byBleHBsaWNpdGx5IHBlcm1pdCBDTURfREVMRVRFIGhlcmUuCisJICovCisJaWYgKElz Q29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShSZWxhdGlvbkdldE5hbWVzcGFjZShyZXN1bHRSZWwp KSAmJgorCQlvcGVyYXRpb24gIT0gQ01EX0RFTEVURSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJjYW5ub3Qg bW9kaWZ5IG9yIGluc2VydCBkYXRhIGludG8gY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJ CQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZXN1bHRSZWwpKSwKKwkJCQkgZXJyZGV0YWls KCJDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCBhbmQgb25seSBzdXBwb3J0 IGNsZWFudXAgdmlhIERFTEVURSBvciBUUlVOQ0FURS4iKSkpOwogfQogCiAvKgpAQCAtMTI1OCw2 ICsxMjc2LDE2IEBAIENoZWNrVmFsaWRSb3dNYXJrUmVsKFJlbGF0aW9uIHJlbCwgUm93TWFya1R5 cGUgbWFya1R5cGUpCiAJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKIAkJ CWJyZWFrOwogCX0KKworCS8qCisJICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBi eSB0aGUgc3lzdGVtIHRvIHJlY29yZCBsb2dpY2FsCisJICogcmVwbGljYXRpb24gY29uZmxpY3Rz LgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UoUmVsYXRpb25HZXROYW1l c3BhY2UocmVsKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9O R19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiY2Fubm90IGxvY2sgcm93cyBpbiB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShy ZWwpKSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9jb25mbGljdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGlj dC5jCmluZGV4IDFmOGQ2N2ZkZDkwLi40YTY0NzI3N2QxZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpAQCAtMTcsNiArMTcsMTAgQEAKICNpbmNsdWRlICJh Y2Nlc3MvY29tbWl0X3RzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL2dlbmFtLmgiCiAjaW5jbHVkZSAi YWNjZXNzL3RhYmxlYW0uaCIKKyNpbmNsdWRlICJjYXRhbG9nL2hlYXAuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX2FtLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3RvYXN0aW5nLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIK ICNpbmNsdWRlICJwZ3N0YXQuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9jb25mbGljdC5oIgpA QCAtMjQsNiArMjgsNTAgQEAKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1 dGlscy9sc3lzY2FjaGUuaCIKIAorLyoKKyAqIFN0cmluZyByZXByZXNlbnRhdGlvbnMgZm9yIHRo ZSBzdXBwb3J0ZWQgY29uZmxpY3QgbG9nZ2luZyBkZXN0aW5hdGlvbnMuCisgKi8KK2NvbnN0IGNo YXIgKmNvbnN0IENvbmZsaWN0TG9nRGVzdE5hbWVzW10gPSB7CisJW0NPTkZMSUNUX0xPR19ERVNU X0xPR10gPSAibG9nIiwKKwlbQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEVdID0gInRhYmxlIiwKKwlb Q09ORkxJQ1RfTE9HX0RFU1RfQUxMXSA9ICJhbGwiCit9OworCitTdGF0aWNBc3NlcnREZWNsKGxl bmd0aG9mKENvbmZsaWN0TG9nRGVzdE5hbWVzKSA9PSBDT05GTElDVF9MT0dfREVTVF9BTEwgKyAx LAorCQkJCSAiQ29uZmxpY3RMb2dEZXN0TmFtZXMgbGVuZ3RoIG1pc21hdGNoIik7CisKKworLyog U3RydWN0dXJlIHRvIGhvbGQgbWV0YWRhdGEgZm9yIG9uZSBjb2x1bW4gb2YgdGhlIGNvbmZsaWN0 IGxvZyB0YWJsZSAqLwordHlwZWRlZiBzdHJ1Y3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYKK3sKKwlj b25zdCBjaGFyICphdHRuYW1lOyAgICAvKiBDb2x1bW4gbmFtZSAqLworCU9pZCAgICAgICAgIGF0 dHR5cGlkOyAgIC8qIERhdGEgdHlwZSBPSUQgKi8KK30gQ29uZmxpY3RMb2dDb2x1bW5EZWY7CisK Ky8qCisgKiBTY2hlbWEgZGVmaW5pdGlvbiBmb3IgY29uZmxpY3QgbG9nIHRhYmxlcy4KKyAqCisg KiBEZWZpbmVzIHRoZSBmaXhlZCBzY2hlbWEgb2YgdGhlIHBlci1zdWJzY3JpcHRpb24gY29uZmxp Y3QgbG9nIHRhYmxlIGNyZWF0ZWQKKyAqIGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UuIEVh Y2ggZW50cnkgc3BlY2lmaWVzIHRoZSBjb2x1bW4gbmFtZSBhbmQgaXRzCisgKiB0eXBlIE9JRDsg dGhlIHRhYmxlIGlzIGNyZWF0ZWQgaW4gdGhpcyBjb2x1bW4gb3JkZXIgYnkKKyAqIGNyZWF0ZV9j b25mbGljdF9sb2dfdGFibGUoKS4KKyAqLworc3RhdGljIGNvbnN0IENvbmZsaWN0TG9nQ29sdW1u RGVmIENvbmZsaWN0TG9nU2NoZW1hW10gPSB7CisJeyAuYXR0bmFtZSA9ICJyZWxpZCIsICAgICAg ICAgICAgLmF0dHR5cGlkID0gT0lET0lEIH0sCisJeyAuYXR0bmFtZSA9ICJzY2hlbWFuYW1lIiwg ICAgICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVsbmFtZSIsICAg ICAgICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gImNvbmZsaWN0X3R5 cGUiLCAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfeGlk IiwgICAgICAgLmF0dHR5cGlkID0gWElET0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfY29t bWl0X2xzbiIsLmF0dHR5cGlkID0gTFNOT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfY29t bWl0X3RzIiwgLmF0dHR5cGlkID0gVElNRVNUQU1QVFpPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJl bW90ZV9vcmlnaW4iLCAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJy ZW1vdGVfdHVwbGUiLCAgICAgLmF0dHR5cGlkID0gSlNPTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAi cmVwbGljYV9pZGVudGl0eSIsIC5hdHR0eXBpZCA9IEpTT05PSUQgfSwKKwl7IC5hdHRuYW1lID0g ImxvY2FsX2NvbmZsaWN0cyIsICAuYXR0dHlwaWQgPSBKU09OQVJSQVlPSUQgfQorfTsKKworI2Rl ZmluZSBOVU1fQ09ORkxJQ1RfQVRUUlMgbGVuZ3Rob2YoQ29uZmxpY3RMb2dTY2hlbWEpCisKIHN0 YXRpYyBjb25zdCBjaGFyICpjb25zdCBDb25mbGljdFR5cGVOYW1lc1tdID0gewogCVtDVF9JTlNF UlRfRVhJU1RTXSA9ICJpbnNlcnRfZXhpc3RzIiwKIAlbQ1RfVVBEQVRFX09SSUdJTl9ESUZGRVJT XSA9ICJ1cGRhdGVfb3JpZ2luX2RpZmZlcnMiLApAQCAtNTQsNiArMTAyLDEzMyBAQCBzdGF0aWMg dm9pZCBnZXRfdHVwbGVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5m bywKIHN0YXRpYyBjaGFyICpidWlsZF9pbmRleF92YWx1ZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBS ZWxhdGlvbiBsb2NhbHJlbCwKIAkJCQkJCQkJCVR1cGxlVGFibGVTbG90ICpzbG90LCBPaWQgaW5k ZXhvaWQpOwogCisvKgorICogQnVpbGRzIHRoZSBUdXBsZURlc2MgZm9yIHRoZSBjb25mbGljdCBs b2cgdGFibGUuCisgKi8KK3N0YXRpYyBUdXBsZURlc2MKK2NyZWF0ZV9jb25mbGljdF9sb2dfdGFi bGVfdHVwZGVzYyh2b2lkKQoreworCVR1cGxlRGVzYwl0dXBkZXNjOworCisJdHVwZGVzYyA9IENy ZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKE5VTV9DT05GTElDVF9BVFRSUyk7CisKKwlmb3IgKGludCBp ID0gMDsgaSA8IE5VTV9DT05GTElDVF9BVFRSUzsgaSsrKQorCQlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgaSArIDEsCisJCQkJCQkgICBDb25mbGljdExvZ1NjaGVtYVtpXS5hdHRuYW1lLAor CQkJCQkJICAgQ29uZmxpY3RMb2dTY2hlbWFbaV0uYXR0dHlwaWQsCisJCQkJCQkgICAtMSwgMCk7 CisKKwlUdXBsZURlc2NGaW5hbGl6ZSh0dXBkZXNjKTsKKworCXJldHVybiB0dXBkZXNjOworfQor CisvKgorICogQ3JlYXRlIGEgc3RydWN0dXJlZCBjb25mbGljdCBsb2cgdGFibGUgZm9yIGEgc3Vi c2NyaXB0aW9uLgorICoKKyAqIFRoZSB0YWJsZSBpcyBjcmVhdGVkIHdpdGhpbiB0aGUgc3lzdGVt LW1hbmFnZWQgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2UgdG8KKyAqIHByZXZlbnQgdXNlcnMgZnJv bSBtYW51YWxseSBkcm9wcGluZyBvciBhbHRlcmluZyBpdC4gIFRoaXMgYWxzbyBwcmV2ZW50cwor ICogYWNjaWRlbnRhbCBuYW1lIGNvbGxpc2lvbnMgd2l0aCB1c2VyLWNyZWF0ZWQgdGFibGVzIHdp dGggdGhlIHNhbWUgbmFtZS4KKyAqCisgKiBUaGUgdGFibGUgbmFtZSBpcyBnZW5lcmF0ZWQgYXV0 b21hdGljYWxseSB1c2luZyB0aGUgc3Vic2NyaXB0aW9uJ3MgT0lECisgKiAoZS5nLiwgInBnX2Nv bmZsaWN0X2xvZ188c3ViaWQ+IikgdG8gZW5zdXJlIHVuaXF1ZW5lc3Mgd2l0aGluIHRoZQorICog Y2x1c3RlciBhbmQgdG8gYXZvaWQgY29sbGlzaW9ucyBkdXJpbmcgc3Vic2NyaXB0aW9uIHJlbmFt ZXMuCisgKi8KK09pZAorY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIg KnN1Ym5hbWUsIE9pZCBzdWJvd25lcikKK3sKKwlUdXBsZURlc2MJdHVwZGVzYzsKKwlPaWQJCQly ZWxpZDsKKwljaGFyICAgIAlyZWxuYW1lW05BTUVEQVRBTEVOXTsKKworCXNucHJpbnRmKHJlbG5h bWUsIE5BTUVEQVRBTEVOLCAicGdfY29uZmxpY3RfbG9nXyV1Iiwgc3ViaWQpOworCisJLyoKKwkg KiBDaGVjayBmb3IgYW4gZXhpc3RpbmcgdGFibGUgd2l0aCB0aGUgc2FtZSBuYW1lIGluIHRoZSBw Z19jb25mbGljdCBuYW1lc3BhY2UuCisJICogQSBjb2xsaXNpb24gc2hvdWxkIG5vdCBvY2N1ciB1 bmRlciBub3JtYWwgb3BlcmF0aW9uLCBidXQgd2UgbXVzdCBoYW5kbGUgY2FzZXMKKwkgKiB3aGVy ZSBhIHRhYmxlIGhhcyBiZWVuIGNyZWF0ZWQgbWFudWFsbHkgd2hlbiBhbGxvd19zeXN0ZW1fdGFi bGVzX21vZHMgaXMKKwkgKiBPTi4KKwkgKi8KKwlpZiAoT2lkSXNWYWxpZChnZXRfcmVsbmFtZV9y ZWxpZChyZWxuYW1lLCBQR19DT05GTElDVF9OQU1FU1BBQ0UpKSkKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9UQUJMRSksCisJCQkJIGVycm1zZygiY29u ZmxpY3QgbG9nIHRhYmxlIHBnX2NvbmZsaWN0LlwiJXNcIiBhbHJlYWR5IGV4aXN0cyIsIHJlbG5h bWUpLAorCQkJCSBlcnJoaW50KCJUbyBwcm9jZWVkLCBkcm9wIHRoZSBleGlzdGluZyB0YWJsZSBh bmQgcmV0cnkuIikpKTsKKworCS8qIEJ1aWxkIHRoZSB0dXBsZSBkZXNjcmlwdG9yIGZvciB0aGUg bmV3IHRhYmxlLiAqLworCXR1cGRlc2MgPSBjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlX3R1cGRl c2MoKTsKKworCS8qIENyZWF0ZSBjb25mbGljdCBsb2cgdGFibGUuICovCisJcmVsaWQgPSBoZWFw X2NyZWF0ZV93aXRoX2NhdGFsb2cocmVsbmFtZSwKKwkJCQkJCQkJCSBQR19DT05GTElDVF9OQU1F U1BBQ0UsCisJCQkJCQkJCQkgMCwJLyogdGFibGVzcGFjZSAqLworCQkJCQkJCQkJIEludmFsaWRP aWQsIC8qIHJlbGlkICovCisJCQkJCQkJCQkgSW52YWxpZE9pZCwgLyogcmVsdHlwZWlkICovCisJ CQkJCQkJCQkgSW52YWxpZE9pZCwgLyogcmVsb2Z0eXBlaWQgKi8KKwkJCQkJCQkJCSBzdWJvd25l ciwKKwkJCQkJCQkJCSBIRUFQX1RBQkxFX0FNX09JRCwKKwkJCQkJCQkJCSB0dXBkZXNjLAorCQkJ CQkJCQkJIE5JTCwKKwkJCQkJCQkJCSBSRUxLSU5EX1JFTEFUSU9OLAorCQkJCQkJCQkJIFJFTFBF UlNJU1RFTkNFX1BFUk1BTkVOVCwKKwkJCQkJCQkJCSBmYWxzZSwgLyogc2hhcmVkX3JlbGF0aW9u ICovCisJCQkJCQkJCQkgZmFsc2UsIC8qIG1hcHBlZF9yZWxhdGlvbiAqLworCQkJCQkJCQkJIE9O Q09NTUlUX05PT1AsCisJCQkJCQkJCQkgKERhdHVtKSAwLCAvKiByZWxvcHRpb25zICovCisJCQkJ CQkJCQkgZmFsc2UsIC8qIHVzZV91c2VyX2FjbCAqLworCQkJCQkJCQkJIHRydWUsIC8qIGFsbG93 X3N5c3RlbV90YWJsZV9tb2RzICovCisJCQkJCQkJCQkgdHJ1ZSwgLyogaXNfaW50ZXJuYWwgKi8K KwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiByZWxyZXdyaXRlICovCisJCQkJCQkJCQkgTlVMTCk7 IC8qIHR5cGFkZHJlc3MgKi8KKwlBc3NlcnQoT2lkSXNWYWxpZChyZWxpZCkpOworCisJLyogUmVs ZWFzZSB0dXBsZSBkZXNjcmlwdG9yIG1lbW9yeS4gKi8KKwlGcmVlVHVwbGVEZXNjKHR1cGRlc2Mp OworCisJLyoKKwkgKiBXZSBtdXN0IGJ1bXAgdGhlIGNvbW1hbmQgY291bnRlciB0byBtYWtlIHRo ZSBuZXdseS1jcmVhdGVkIHJlbGF0aW9uCisJICogdHVwbGUgdmlzaWJsZSBmb3Igb3BlbmluZy4K KwkgKi8KKwlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJLyoKKwkgKiBDcmVhdGUgYSBU T0FTVCB0YWJsZSBmb3IgdGhlIGNvbmZsaWN0IGxvZyB0byBzdXBwb3J0IG91dC1vZi1saW5lIHN0 b3JhZ2UKKwkgKiBvZiBsYXJnZSBKU09OIGRhdGEuCisJICovCisJTmV3UmVsYXRpb25DcmVhdGVU b2FzdFRhYmxlKHJlbGlkLCAoRGF0dW0pIDApOworCisJZXJlcG9ydChOT1RJQ0UsCisJCQkoZXJy bXNnKCJjcmVhdGVkIGNvbmZsaWN0IGxvZyB0YWJsZSBcIiVzXCIgZm9yIHN1YnNjcmlwdGlvbiBc IiVzXCIiLAorCQkJCQlnZXRfcXVhbGlmaWVkX29iam5hbWUoUEdfQ09ORkxJQ1RfTkFNRVNQQUNF LCByZWxuYW1lKSwKKwkJCQkJc3VibmFtZSkpKTsKKworCXJldHVybiByZWxpZDsKK30KKworLyoK KyAqIENvbnZlcnQgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIGNvbmZsaWN0IGxvZ2dp bmcgZGVzdGluYXRpb24gdG8gaXRzCisgKiBjb3JyZXNwb25kaW5nIGVudW0gdmFsdWUuCisgKi8K K0NvbmZsaWN0TG9nRGVzdAorR2V0Q29uZmxpY3RMb2dEZXN0KGNvbnN0IGNoYXIgKmRlc3QpCit7 CisJLyogRW1wdHkgc3RyaW5nIG9yIE5VTEwgZGVmYXVsdHMgdG8gTE9HLiAqLworCWlmIChkZXN0 ID09IE5VTEwgfHwgZGVzdFswXSA9PSAnXDAnIHx8IHBnX3N0cmNhc2VjbXAoZGVzdCwgImxvZyIp ID09IDApCisJCXJldHVybiBDT05GTElDVF9MT0dfREVTVF9MT0c7CisKKwlpZiAocGdfc3RyY2Fz ZWNtcChkZXN0LCAidGFibGUiKSA9PSAwKQorCQlyZXR1cm4gQ09ORkxJQ1RfTE9HX0RFU1RfVEFC TEU7CisKKwlpZiAocGdfc3RyY2FzZWNtcChkZXN0LCAiYWxsIikgPT0gMCkKKwkJcmV0dXJuIENP TkZMSUNUX0xPR19ERVNUX0FMTDsKKworCS8qIFVucmVjb2duaXplZCBzdHJpbmcuICovCisJZXJl cG9ydChFUlJPUiwKKwkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUp LAorCQkJIGVycm1zZygidW5yZWNvZ25pemVkIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiB2YWx1 ZTogXCIlc1wiIiwgZGVzdCksCisJCQkgZXJyaGludCgiVmFsaWQgdmFsdWVzIGFyZSBcImxvZ1wi LCBcInRhYmxlXCIsIGFuZCBcImFsbFwiLiIpKSk7Cit9CisKIC8qCiAgKiBHZXQgdGhlIHhtaW4g YW5kIGNvbW1pdCB0aW1lc3RhbXAgZGF0YSAob3JpZ2luIGFuZCB0aW1lc3RhbXApIGFzc29jaWF0 ZWQKICAqIHdpdGggdGhlIHByb3ZpZGVkIGxvY2FsIHJvdy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5 c2NhY2hlLmMKaW5kZXggMDM2ZGU1Zjc5ZWYuLmU1MmQ0Y2NkMDg5IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYwpAQCAtMzcwOSw3ICszNzA5LDcgQEAgZ2V0X25hbWVzcGFjZV9uYW1l X29yX3RlbXAoT2lkIG5zcGlkKQogICoJCW9iamVjdCBmb3IgdGhlIGdpdmVuIG5hbWVzcGFjZSBJ RCBhbmQgb2JqZWN0IG5hbWUuCiAgKi8KIGNoYXIgKgotZ2V0X3F1YWxpZmllZF9vYmpuYW1lKE9p ZCBuc3BpZCwgY2hhciAqb2JqbmFtZSkKK2dldF9xdWFsaWZpZWRfb2JqbmFtZShPaWQgbnNwaWQs IGNvbnN0IGNoYXIgKm9iam5hbWUpCiB7CiAJY2hhcgkgICAqbnNwbmFtZTsKIAljaGFyCSAgICpy ZXN1bHQ7CmRpZmYgLS1naXQgYS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYyBiL3NyYy9iaW4vaW5p dGRiL2luaXRkYi5jCmluZGV4IDE0Y2I3OWMyNmJlLi44MDNjYTQxMTJkNCAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKKysrIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKQEAg LTE4MzksNiArMTgzOSwxMiBAQCBzZXR1cF9wcml2aWxlZ2VzKEZJTEUgKmNtZGZkKQogCQkJCSAg IiAgQU5EIHJlbGFjbCBJUyBOVUxMO1xuXG4iLAogCQkJCSAgZXNjYXBlX3F1b3Rlcyh1c2VybmFt ZSkpOwogCVBHX0NNRF9QVVRTKCJHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgcGdfY2F0YWxvZywgcHVi bGljIFRPIFBVQkxJQztcblxuIik7CisKKwkvKgorCSAqIEFsbG93IG5vbi1zdXBlcnVzZXIgc3Vi c2NyaXB0aW9uIG93bmVycyB0byBhY2Nlc3MgdGhlaXIgYXNzb2NpYXRlZAorCSAqIGNvbmZsaWN0 IGxvZyB0YWJsZXMgaW4gdGhlIHBnX2NvbmZsaWN0IHNjaGVtYS4KKwkgKi8KKwlQR19DTURfUFVU UygiR1JBTlQgVVNBR0UgT04gU0NIRU1BIHBnX2NvbmZsaWN0IFRPIFBVQkxJQztcblxuIik7CiAJ UEdfQ01EX1BVVFMoIlJFVk9LRSBBTEwgT04gcGdfbGFyZ2VvYmplY3QgRlJPTSBQVUJMSUM7XG5c biIpOwogCVBHX0NNRF9QVVRTKCJJTlNFUlQgSU5UTyBwZ19pbml0X3ByaXZzICIKIAkJCQkiICAo b2Jqb2lkLCBjbGFzc29pZCwgb2Jqc3ViaWQsIGluaXRwcml2cywgcHJpdnR5cGUpIgpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jCmluZGV4IGRlNTQ3YThjYjM3Li42NmVlMWI2YzJhNCAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYwpAQCAtMjM3Niw4ICsyMzc2LDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50 IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgoIigiLCAiUFVCTElDQVRJT04iKTsKIAkvKiBB TFRFUiBTVUJTQ1JJUFRJT04gPG5hbWU+IFNFVCAoICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxU RVIiLCAiU1VCU0NSSVBUSU9OIiwgTWF0Y2hBbnksIE1hdGNoQW55TiwgIlNFVCIsICIoIikpCi0J CUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJkaXNhYmxlX29uX2Vycm9yIiwgImZhaWxvdmVyIiwK LQkJCQkJICAibWF4X3JldGVudGlvbl9kdXJhdGlvbiIsICJvcmlnaW4iLAorCQlDT01QTEVURV9X SVRIKCJiaW5hcnkiLCAiY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIiwgImRpc2FibGVfb25fZXJy b3IiLAorCQkJCQkgICJmYWlsb3ZlciIsICJtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIiwgIm9yaWdp biIsCiAJCQkJCSAgInBhc3N3b3JkX3JlcXVpcmVkIiwgInJldGFpbl9kZWFkX3R1cGxlcyIsCiAJ CQkJCSAgInJ1bl9hc19vd25lciIsICJzbG90X25hbWUiLCAic3RyZWFtaW5nIiwKIAkJCQkJICAi c3luY2hyb25vdXNfY29tbWl0IiwgInR3b19waGFzZSIpOwpAQCAtMzk2MCw4ICszOTYwLDggQEAg bWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgoIldJ VEggKCIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgU1VCU0NSSVBUSU9OIDxuYW1lPiAuLi4gIFdJ VEggKCA8b3B0PiIgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiU1VCU0NSSVBUSU9O IiwgTWF0Y2hBbnlOLCAiV0lUSCIsICIoIikpCi0JCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJj b25uZWN0IiwgImNvcHlfZGF0YSIsICJjcmVhdGVfc2xvdCIsCi0JCQkJCSAgImRpc2FibGVfb25f ZXJyb3IiLCAiZW5hYmxlZCIsICJmYWlsb3ZlciIsCisJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIs ICJjb25mbGljdF9sb2dfZGVzdGluYXRpb24iLCAiY29ubmVjdCIsICJjb3B5X2RhdGEiLAorCQkJ CQkgICJjcmVhdGVfc2xvdCIsICJkaXNhYmxlX29uX2Vycm9yIiwgImVuYWJsZWQiLCAiZmFpbG92 ZXIiLAogCQkJCQkgICJtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIiwgIm9yaWdpbiIsCiAJCQkJCSAg InBhc3N3b3JkX3JlcXVpcmVkIiwgInJldGFpbl9kZWFkX3R1cGxlcyIsCiAJCQkJCSAgInJ1bl9h c19vd25lciIsICJzbG90X25hbWUiLCAic3RyZWFtaW5nIiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvY2F0YWxvZy5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmgKaW5k ZXggYTlkNmU4ZWE5ODYuLmZlYWIzOTgyY2Y1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL2NhdGFsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdGFsb2cuaApAQCAtMjUs NiArMjUsNyBAQCBleHRlcm4gYm9vbCBJc0lucGxhY2VVcGRhdGVSZWxhdGlvbihSZWxhdGlvbiBy ZWxhdGlvbik7CiAKIGV4dGVybiBib29sIElzU3lzdGVtQ2xhc3MoT2lkIHJlbGlkLCBGb3JtX3Bn X2NsYXNzIHJlbHR1cGxlKTsKIGV4dGVybiBib29sIElzVG9hc3RDbGFzcyhGb3JtX3BnX2NsYXNz IHJlbHR1cGxlKTsKK2V4dGVybiBib29sIElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKEZvcm1fcGdf Y2xhc3MgcmVsdHVwbGUpOwogCiBleHRlcm4gYm9vbCBJc0NhdGFsb2dSZWxhdGlvbk9pZChPaWQg cmVsaWQpOwogZXh0ZXJuIGJvb2wgSXNDYXRhbG9nVGV4dFVuaXF1ZUluZGV4T2lkKE9pZCByZWxp ZCk7CkBAIC0zMiw2ICszMyw3IEBAIGV4dGVybiBib29sIElzSW5wbGFjZVVwZGF0ZU9pZChPaWQg cmVsaWQpOwogCiBleHRlcm4gYm9vbCBJc0NhdGFsb2dOYW1lc3BhY2UoT2lkIG5hbWVzcGFjZUlk KTsKIGV4dGVybiBib29sIElzVG9hc3ROYW1lc3BhY2UoT2lkIG5hbWVzcGFjZUlkKTsKK2V4dGVy biBib29sIElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShPaWQgbmFtZXNwYWNlSWQpOwogCiBl eHRlcm4gYm9vbCBJc1Jlc2VydmVkTmFtZShjb25zdCBjaGFyICpuYW1lKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1lc3BhY2UuZGF0IGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19uYW1lc3BhY2UuZGF0CmluZGV4IDMwNzVlMTQyYzczLi5iNDVjYjkzODNhOCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1lc3BhY2UuZGF0CisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRhdApAQCAtMTgsNiArMTgsOSBAQAogeyBvaWQg PT4gJzk5Jywgb2lkX3N5bWJvbCA9PiAnUEdfVE9BU1RfTkFNRVNQQUNFJywKICAgZGVzY3IgPT4g J3Jlc2VydmVkIHNjaGVtYSBmb3IgVE9BU1QgdGFibGVzJywKICAgbnNwbmFtZSA9PiAncGdfdG9h c3QnLCBuc3BhY2wgPT4gJ19udWxsXycgfSwKK3sgb2lkID0+ICcxMzgyJywgb2lkX3N5bWJvbCA9 PiAnUEdfQ09ORkxJQ1RfTkFNRVNQQUNFJywKKyAgZGVzY3IgPT4gJ3Jlc2VydmVkIHNjaGVtYSBm b3Igc3Vic2NyaXB0aW9uLXNwZWNpZmljIGNvbmZsaWN0IGxvZyB0YWJsZXMnLAorICBuc3BuYW1l ID0+ICdwZ19jb25mbGljdCcsIG5zcGFjbCA9PiAnX251bGxfJyB9LAogIyB1cGRhdGUgZHVtcE5h bWVzcGFjZSgpIGlmIGNoYW5naW5nIHRoaXMgZGVzY3IKIHsgb2lkID0+ICcyMjAwJywgb2lkX3N5 bWJvbCA9PiAnUEdfUFVCTElDX05BTUVTUEFDRScsCiAgIGRlc2NyID0+ICdzdGFuZGFyZCBwdWJs aWMgc2NoZW1hJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0 aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCmluZGV4IGE2YTJh ZDFlNDljLi44OWQyMzAwYWJlMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19z dWJzY3JpcHRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5o CkBAIC05NSw3ICs5NSwxNiBAQCBDQVRBTE9HKHBnX3N1YnNjcmlwdGlvbiw2MTAwLFN1YnNjcmlw dGlvblJlbGF0aW9uSWQpIEJLSV9TSEFSRURfUkVMQVRJT04gQktJX1JPVwogCU9pZAkJCXN1YnNl cnZlciBCS0lfTE9PS1VQX09QVChwZ19mb3JlaWduX3NlcnZlcik7CS8qIElmIGNvbm5lY3Rpb24g dXNlcwogCQkJCQkJCQkJCQkJCQkJCSAqIHNlcnZlciAqLwogCisJT2lkCQkJc3ViY29uZmxpY3Rs b2dyZWxpZDsgLyogUmVsaWQgb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4gKi8KICNpZmRlZiBD QVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwor CS8qCisJICogU3RyYXRlZ3kgZm9yIGxvZ2dpbmcgcmVwbGljYXRpb24gY29uZmxpY3RzOgorCSAq ICdsb2cnIC0gc2VydmVyIGxvZyBvbmx5LAorCSAqICd0YWJsZScgLSBjb25mbGljdCBsb2cgdGFi bGUgb25seSwKKwkgKiAnYWxsJyAtIGJvdGggbG9nIGFuZCB0YWJsZS4KKwkgKi8KKwl0ZXh0CQlz dWJjb25mbGljdGxvZ2Rlc3QgQktJX0ZPUkNFX05PVF9OVUxMOworCiAJLyogQ29ubmVjdGlvbiBz dHJpbmcgdG8gdGhlIHB1Ymxpc2hlciAqLwogCXRleHQJCXN1YmNvbm5pbmZvOwkvKiBTZXQgaWYg Y29ubmVjdGluZyB3aXRoIGNvbm5lY3Rpb24gc3RyaW5nICovCiAKQEAgLTE2NCw2ICsxNzMsNyBA QCB0eXBlZGVmIHN0cnVjdCBTdWJzY3JpcHRpb24KIAkJCQkJCQkJCSAqIGFuZCB0aGUgcmV0ZW50 aW9uIGR1cmF0aW9uIGhhcyBub3QKIAkJCQkJCQkJCSAqIGV4Y2VlZGVkIG1heF9yZXRlbnRpb25f ZHVyYXRpb24sIHdoZW4KIAkJCQkJCQkJCSAqIGRlZmluZWQgKi8KKwlPaWQJCQljb25mbGljdGxv Z3JlbGlkOwkvKiBjb25mbGljdCBsb2cgdGFibGUgT2lkICovCiAJY2hhcgkgICAqY29ubmluZm87 CQkvKiBDb25uZWN0aW9uIHN0cmluZyB0byB0aGUgcHVibGlzaGVyICovCiAJY2hhcgkgICAqc2xv dG5hbWU7CQkvKiBOYW1lIG9mIHRoZSByZXBsaWNhdGlvbiBzbG90ICovCiAJY2hhcgkgICAqc3lu Y2NvbW1pdDsJCS8qIFN5bmNocm9ub3VzIGNvbW1pdCBzZXR0aW5nIGZvciB3b3JrZXIgKi8KQEAg LTE3MSw2ICsxODEsNyBAQCB0eXBlZGVmIHN0cnVjdCBTdWJzY3JpcHRpb24KIAlMaXN0CSAgICpw dWJsaWNhdGlvbnM7CS8qIExpc3Qgb2YgcHVibGljYXRpb24gbmFtZXMgdG8gc3Vic2NyaWJlIHRv ICovCiAJY2hhcgkgICAqb3JpZ2luOwkJCS8qIE9ubHkgcHVibGlzaCBkYXRhIG9yaWdpbmF0aW5n IGZyb20gdGhlCiAJCQkJCQkJCSAqIHNwZWNpZmllZCBvcmlnaW4gKi8KKwljaGFyCSAgICpjb25m bGljdGxvZ2Rlc3Q7CS8qIENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAqLwogfSBTdWJzY3JpcHRp b247CiAKICNpZmRlZiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25m bGljdC5oCmluZGV4IDJkOWRiY2Y0ZDBkLi5hMDE3ZTFlNmNiNSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi9jb25mbGljdC5oCkBAIC0xMCw2ICsxMCw3IEBACiAjZGVmaW5lIENPTkZMSUNUX0gKIAogI2lu Y2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgog I2luY2x1ZGUgImRhdGF0eXBlL3RpbWVzdGFtcC5oIgogI2luY2x1ZGUgIm5vZGVzL3BnX2xpc3Qu aCIKIApAQCAtNzksNiArODAsMzIgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29uZmxpY3RUdXBsZUluZm8K IAkJCQkJCQkJICogY29uZmxpY3RpbmcgbG9jYWwgcm93IG9jY3VycmVkICovCiB9IENvbmZsaWN0 VHVwbGVJbmZvOwogCisvKgorICogRGVmaW5lcyB3aGVyZSBsb2dpY2FsIHJlcGxpY2F0aW9uIGNv bmZsaWN0IGRldGFpbHMgYXJlIHJlY29yZGVkLgorICoKKyAqIFdoaWxlIHN0b3JlZCBhcyBhIHRl eHQtYmFzZWQgYXJyYXkvc3RyaW5nIGluCisgKiBwZ19zdWJzY3JpcHRpb24uc3ViY29uZmxpY3Rs b2dkZXN0IGZvciB1c2VyIHJlYWRhYmlsaXR5IGFuZCBleHRlbnNpYmlsaXR5LAorICogd2UgbWFw IHRoZXNlIHRvIGFuIGludGVybmFsIGVudW0gdG8gYWxsb3cgZm9yIGVmZmljaWVudCBjaGVja3Mu CisgKi8KK3R5cGVkZWYgZW51bSBDb25mbGljdExvZ0Rlc3QKK3sKKwlDT05GTElDVF9MT0dfREVT VF9MT0cgPSAwLAkvKiBFbWl0IHRvIHNlcnZlciBsb2dzICovCisJQ09ORkxJQ1RfTE9HX0RFU1Rf VEFCTEUsCS8qIEluc2VydCBpbnRvIHRoZSBjb25mbGljdCBsb2cgdGFibGUgKi8KKwlDT05GTElD VF9MT0dfREVTVF9BTEwJCS8qIEJvdGggbG9nIGFuZCB0YWJsZSAqLworfSBDb25mbGljdExvZ0Rl c3Q7CisKKyNkZWZpbmUgQ09ORkxJQ1RTX0xPR0dFRF9UT19UQUJMRShkZXN0KSBcCisJKChkZXN0 ID09IENPTkZMSUNUX0xPR19ERVNUX1RBQkxFKSB8fCAoZGVzdCA9PSBDT05GTElDVF9MT0dfREVT VF9BTEwpKQorI2RlZmluZSBDT05GTElDVFNfTE9HR0VEX1RPX0xPRyhkZXN0KSBcCisJKChkZXN0 ID09IENPTkZMSUNUX0xPR19ERVNUX0xPRykgfHwgKGRlc3QgPT0gQ09ORkxJQ1RfTE9HX0RFU1Rf QUxMKSkKKworLyoKKyAqIEFycmF5IG1hcHBpbmcgZm9yIGNvbnZlcnRpbmcgaW50ZXJuYWwgZW51 bSB0byBzdHJpbmcuCisgKi8KK2V4dGVybiBQR0RMTElNUE9SVCBjb25zdCBjaGFyICpjb25zdCBD b25mbGljdExvZ0Rlc3ROYW1lc1tdOworCitleHRlcm4gT2lkIGNyZWF0ZV9jb25mbGljdF9sb2df dGFibGUoT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1lLCBPaWQgc3Vib3duZXIpOworZXh0ZXJuIENv bmZsaWN0TG9nRGVzdCBHZXRDb25mbGljdExvZ0Rlc3QoY29uc3QgY2hhciAqZGVzdCk7CiBleHRl cm4gYm9vbCBHZXRUdXBsZVRyYW5zYWN0aW9uSW5mbyhUdXBsZVRhYmxlU2xvdCAqbG9jYWxzbG90 LAogCQkJCQkJCQkJVHJhbnNhY3Rpb25JZCAqeG1pbiwKIAkJCQkJCQkJCVJlcGxPcmlnaW5JZCAq bG9jYWxvcmlnaW4sCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBi L3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4IDg2NTk4MGNiMGYxLi41M2MyYTll ODY3MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTIwMiw3ICsyMDIsNyBAQCBleHRlcm4gYm9v bCBnZXRfYXR0c3RhdHNzbG90KEF0dFN0YXRzU2xvdCAqc3Nsb3QsIEhlYXBUdXBsZSBzdGF0c3R1 cGxlLAogZXh0ZXJuIHZvaWQgZnJlZV9hdHRzdGF0c3Nsb3QoQXR0U3RhdHNTbG90ICpzc2xvdCk7 CiBleHRlcm4gY2hhciAqZ2V0X25hbWVzcGFjZV9uYW1lKE9pZCBuc3BpZCk7CiBleHRlcm4gY2hh ciAqZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAoT2lkIG5zcGlkKTsKLWV4dGVybiBjaGFyICpn ZXRfcXVhbGlmaWVkX29iam5hbWUoT2lkIG5zcGlkLCBjaGFyICpvYmpuYW1lKTsKK2V4dGVybiBj aGFyICpnZXRfcXVhbGlmaWVkX29iam5hbWUoT2lkIG5zcGlkLCBjb25zdCBjaGFyICpvYmpuYW1l KTsKIGV4dGVybiBPaWQJZ2V0X3JhbmdlX3N1YnR5cGUoT2lkIHJhbmdlT2lkKTsKIGV4dGVybiBP aWQJZ2V0X3JhbmdlX2NvbGxhdGlvbihPaWQgcmFuZ2VPaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmFu Z2VfY29uc3RydWN0b3IyKE9pZCByYW5nZU9pZCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggYTFiM2NjOTZkODMuLjQ1YjJkZTdhNmM1IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CkBAIC01OTcsNiArNTk3LDMx NCBAQCBDT01NSVQ7CiAtLSBvaywgb3duaW5nIGl0IGlzIGVub3VnaCBmb3IgdGhpcyBzdHVmZgog QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUp OwogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOworLS0KKy0tIENPTkZMSUNUIExP RyBERVNUSU5BVElPTiBURVNUUworLS0KK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXInOworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5H OworLS0gZmFpbCAtIHVucmVjb2duaXplZCBwYXJhbWV0ZXIgdmFsdWUKK0NSRUFURSBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF9mYWlsIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdpbnZhbGlkJyk7CitFUlJPUjogIHVucmVjb2duaXpl ZCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gdmFsdWU6ICJpbnZhbGlkIgorSElOVDogIFZhbGlk IHZhbHVlcyBhcmUgImxvZyIsICJ0YWJsZSIsIGFuZCAiYWxsIi4KKy0tIHZlcmlmeSBzdWJjb25m bGljdGxvZ2Rlc3QgaXMgJ2xvZycgYW5kIHN1YmNvbmZsaWN0bG9ncmVsaWQgaXMgMCAoSW52YWxp ZE9pZCkgZm9yIGRlZmF1bHQgY2FzZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X2xvZ19kZWZhdWx0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcg UFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UpOworV0FSTklORzogIHN1 YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBp bml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNh dGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3Jp cHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxp Y3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVS RSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQnOworICAgICAgICAgICBz dWJuYW1lICAgICAgICAgICAgfCBzdWJjb25mbGljdGxvZ2Rlc3QgfCBzdWJjb25mbGljdGxvZ3Jl bGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgfCBs b2cgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAwCisoMSByb3cpCisKKy0tIHZl cmlmeSBlbXB0eSBzdHJpbmcgZGVmYXVsdHMgdG8gJ2xvZycKK0NSRUFURSBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29u ZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJycpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMg Y3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNh dGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFi bGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVz aCBwdWJsaWNhdGlvbnMuCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJj b25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3Jl Z3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyJzsKKyAgICAgICAgICBzdWJuYW1lICAgICAgICAgICB8 IHN1YmNvbmZsaWN0bG9nZGVzdCB8IHN1YmNvbmZsaWN0bG9ncmVsaWQgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIHwgbG9nICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgMAorKDEgcm93KQorCistLSB0aGlzIHNob3VsZCBnZW5lcmF0ZSBhbiBj b25mbGljdCBsb2cgdGFibGUgbmFtZWQgcGdfY29uZmxpY3RfbG9nXyRzdWJpZCQKK0NSRUFURSBT VUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBDT05ORUNUSU9OICdkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZh bHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKK1dBUk5JTkc6ICBzdWJz Y3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5p dGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRp b24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0 aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgorLS0gY2hlY2sgbWV0YWRhdGEgaW4gcGdfc3Vi c2NyaXB0aW9uOiBkZXN0aW5hdGlvbiBzaG91bGQgYmUgJ3RhYmxlJyBhbmQgc3ViY29uZmxpY3Rs b2dyZWxpZCB2YWxpZAorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29u ZmxpY3Rsb2dyZWxpZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVS RSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworICAgICAgICBzdWJuYW1lICAg ICAgICAgfCBzdWJjb25mbGljdGxvZ2Rlc3QgfCBoYXNfcmVsaWQgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyByZWdyZXNzX2NvbmZs aWN0X3Rlc3QxIHwgdGFibGUgICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCistLSB2ZXJpZnkg dGhlIHBoeXNpY2FsIHRhYmxlIGV4aXN0cywgaXRzIE9JRCBtYXRjaGVzIHN1YmNvbmZsaWN0bG9n cmVsaWQsCistLSBhbmQgaXQgaXMgbG9jYXRlZCBpbiB0aGUgJ3BnX2NvbmZsaWN0JyBuYW1lc3Bh Y2UKK1NFTEVDVCBuLm5zcG5hbWUsIChjLm9pZCA9IHMuc3ViY29uZmxpY3Rsb2dyZWxpZCkgQVMg Im9pZF9tYXRjaGVzIgorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9O IGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorSk9JTiBwZ19uYW1lc3Bh Y2UgbiBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF90ZXN0MSc7CisgICBuc3BuYW1lICAgfCBvaWRfbWF0Y2hlcyAKKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQorIHBnX2NvbmZsaWN0IHwgdAorKDEgcm93KQorCistLSBjaGVj ayBpZiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGhhcyB0aGUgY29ycmVjdCBzY2hlbWEKK1NFTEVD VCBhLmF0dG51bSwgYS5hdHRuYW1lCitGUk9NIHBnX2F0dHJpYnV0ZSBhCitKT0lOIHBnX2NsYXNz IGMgT04gYS5hdHRyZWxpZCA9IGMub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVs bmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3Jl Z3Jlc3NfY29uZmxpY3RfdGVzdDEnIEFORCBhLmF0dG51bSA+IDAKKyAgICBPUkRFUiBCWSBhLmF0 dG51bTsKKyBhdHRudW0gfCAgICAgIGF0dG5hbWUgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgIDEgfCByZWxpZAorICAgICAgMiB8IHNjaGVtYW5hbWUKKyAgICAgIDMg fCByZWxuYW1lCisgICAgICA0IHwgY29uZmxpY3RfdHlwZQorICAgICAgNSB8IHJlbW90ZV94aWQK KyAgICAgIDYgfCByZW1vdGVfY29tbWl0X2xzbgorICAgICAgNyB8IHJlbW90ZV9jb21taXRfdHMK KyAgICAgIDggfCByZW1vdGVfb3JpZ2luCisgICAgICA5IHwgcmVtb3RlX3R1cGxlCisgICAgIDEw IHwgcmVwbGljYV9pZGVudGl0eQorICAgICAxMSB8IGxvY2FsX2NvbmZsaWN0cworKDExIHJvd3Mp CisKKy0tIENoYW5naW5nIHRoZSBzdWJzY3JpcHRpb24gb3duZXIgc2hvdWxkIGFsc28gdXBkYXRl IHRoZSBvd25lcgorLS0gb2YgdGhlIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlLgorQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgT1dORVIgVE8gcmVncmVzc19z dWJzY3JpcHRpb25fdXNlcjI7CitTRUxFQ1QgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQoYy5y ZWxvd25lcikgQVMgb3duZXIKK0ZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjCitKT0lOIHBnX2Nh dGFsb2cucGdfc3Vic2NyaXB0aW9uIHMKKyAgICAgICAgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZs aWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90 ZXN0MSc7CisgICAgICAgICAgIG93bmVyICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjIKKygxIHJvdykKKworLS0gVmVy aWZ5IHRoYXQgYSBub24tc3VwZXJ1c2VyIHN1YnNjcmlwdGlvbiBvd25lciBjYW4gdHJ1bmNhdGUs CistLSBkZWxldGUgZnJvbSwgYW5kIHNlbGVjdCBmcm9tIHRoZSBhc3NvY2lhdGVkIGNvbmZsaWN0 IGxvZyB0YWJsZS4KK1NFVCBST0xFICdyZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMic7CitTRUxF Q1QgZm9ybWF0KCclSS4lSScsIG4ubnNwbmFtZSwgYy5yZWxuYW1lKSBBUyBjb25mbGljdF9sb2df dGFibGUKK0ZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjCitKT0lOIHBnX2NhdGFsb2cucGdfbmFt ZXNwYWNlIG4KKwlPTiBuLm9pZCA9IGMucmVsbmFtZXNwYWNlCitKT0lOIHBnX2NhdGFsb2cucGdf c3Vic2NyaXB0aW9uIHMKKwlPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5v aWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJworXGdzZXQKK1RS VU5DQVRFIFRBQkxFIDpjb25mbGljdF9sb2dfdGFibGU7CitERUxFVEUgRlJPTSA6Y29uZmxpY3Rf bG9nX3RhYmxlOworU0VMRUNUIENPVU5UKCopIEZST00gOmNvbmZsaWN0X2xvZ190YWJsZTsKKyBj b3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitSRVNFVCBST0xFOworLS0gUmVzdG9y ZSB0aGUgb3JpZ2luYWwgc3Vic2NyaXB0aW9uIG93bmVyLgorQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfY29uZmxpY3RfdGVzdDEgT1dORVIgVE8gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsK Ky0tCistLSBBTFRFUiBTVUJTQ1JJUFRJT04gLSBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gc3Rh dGUgdHJhbnNpdGlvbnMKKy0tCistLSBUaGVzZSB0ZXN0cyB2ZXJpZnkgdGhlIHRyYW5zaXRpb24g bG9naWMgYmV0d2VlbiBkaWZmZXJlbnQgbG9nZ2luZworLS0gZGVzdGluYXRpb25zLCBlbnN1cmlu ZyBjb25mbGljdCBsb2cgdGFibGVzIGFyZSBjcmVhdGVkIG9yIGRyb3BwZWQgYXMKKy0tIGV4cGVj dGVkCistLQorLS0gdHJhbnNpdGlvbiBmcm9tICdsb2cnIHRvICdhbGwnCistLSBhIG5ldyBjb25m bGljdCBsb2cgdGFibGUgc2hvdWxkIGJlIGNyZWF0ZWQKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVn cmVzc19jb25mbGljdF90ZXN0MiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9s b2dfZGVzdGluYXRpb24gPSAnbG9nJyk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVh dGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9u LCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0 aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1 YmxpY2F0aW9ucy4KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNF VCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2FsbCcpOworLS0gdmVyaWZ5IG1ldGFkYXRh IGFmdGVyIEFMVEVSIChkZXN0aW5hdGlvbiBzaG91bGQgYmUgJ2FsbCcpCitTRUxFQ1Qgc3VibmFt ZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVs aWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGlj dF90ZXN0Mic7CisgICAgICAgIHN1Ym5hbWUgICAgICAgICB8IHN1YmNvbmZsaWN0bG9nZGVzdCB8 IGhhc19yZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgfCBhbGwgICAgICAgICAgICAg ICAgfCB0CisoMSByb3cpCisKKy0tIHRyYW5zaXRpb24gZnJvbSAnYWxsJyB0byAndGFibGUnCist LSBzaG91bGQgTk9UIGRyb3AgdGhlIHRhYmxlLCBvbmx5IGNoYW5nZSBkZXN0aW5hdGlvbiBzdHJp bmcKK1NFTEVDVCBzdWJjb25mbGljdGxvZ3JlbGlkIEFTIG9sZF9yZWxpZCBGUk9NIHBnX3N1YnNj cmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInIFxnc2V0CitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworU0VMRUNUIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3Vi Y29uZmxpY3Rsb2dyZWxpZCA9IDpvbGRfcmVsaWQgQVMgcmVsaWRfdW5jaGFuZ2VkCitGUk9NIHBn X3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOwor IHN1YmNvbmZsaWN0bG9nZGVzdCB8IHJlbGlkX3VuY2hhbmdlZCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgdGFibGUgICAgICAgICAgICAgIHwgdAorKDEgcm93KQor CistLSB0cmFuc2l0aW9uIGZyb20gJ3RhYmxlJyB0byAnbG9nJworLS0gc2hvdWxkIGRyb3AgdGhl IHRhYmxlIGFuZCBjbGVhciBzdWJjb25mbGljdGxvZ3JlbGlkCitBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICds b2cnKTsKK1NFTEVDVCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZS T00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0 Mic7Cisgc3ViY29uZmxpY3Rsb2dkZXN0IHwgc3ViY29uZmxpY3Rsb2dyZWxpZCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGxvZyAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgIDAKKygxIHJvdykKKworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0 YWJsZSBpcyBnb25lCitTRUxFQ1QgY291bnQoKikKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19z dWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQK K1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKyBjb3VudCAKKy0t LS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLQorLS0gUFVCTElDQVRJT046IFZlcmlmeSBjb25m bGljdCBsb2cgdGFibGVzIGFyZSBub3QgcHVibGlzaGFibGUKKy0tCistLSBwZ19yZWxhdGlvbl9p c19wdWJsaXNoYWJsZSBzaG91bGQgcmV0dXJuIGZhbHNlIGZvciBjb25mbGljdCBsb2cgdGFibGVz IHRvCistLSBwcmV2ZW50IHRoZW0gZnJvbSBiZWluZyBhY2NpZGVudGFsbHkgaW5jbHVkZWQgaW4g cHVibGljYXRpb25zCistLQorU0VMRUNUIG4ubnNwbmFtZSwgcGdfcmVsYXRpb25faXNfcHVibGlz aGFibGUoYy5vaWQpCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfbmFtZXNwYWNlIG4gT04gYy5y ZWxuYW1lc3BhY2UgPSBuLm9pZAorSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBzLnN1YmNvbmZs aWN0bG9ncmVsaWQgPSBjLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3Rf dGVzdDEnOworICAgbnNwbmFtZSAgIHwgcGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUgCistLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBwZ19jb25mbGljdCB8IGYK KygxIHJvdykKKworLS0KKy0tIFRhYmxlIFByb3RlY3Rpb24gYW5kIExpZmVjeWNsZSBNYW5hZ2Vt ZW50CistLQorLS0gVGhlc2UgdGVzdHMgdmVyaWZ5IHRoYXQ6CistLSBNYW51YWwgRFJPUCBUQUJM RSBpcyBkaXNhbGxvd2VkCistLSBEUk9QIFNVQlNDUklQVElPTiBhdXRvbWF0aWNhbGx5IHJlYXBz IHRoZSB0YWJsZQorLS0KKy0tIHJlLWVuYWJsZSB0YWJsZSBsb2dnaW5nIGZvciB2ZXJpZmljYXRp b24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIFNFVCAoY29uZmxp Y3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CistLSBXZSB1c2UgYSBETyBibG9jayB3aXRo IGR5bmFtaWMgU1FMIGJlY2F1c2UgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gbmFtZSBjb250 YWlucyB0aGUgc3Vic2NyaXB0aW9uIE9JRCwgd2hpY2ggaXMgbm9uLWRldGVybWluaXN0aWMuIFRo aXMKKy0tIGFwcHJvYWNoIGFsbG93cyB1cyB0byBhdHRlbXB0IHRoZSBEUk9QIGFuZCBjYXB0dXJl IHRoZSBleHBlY3RlZCBlcnJvcgorLS0gd2l0aG91dCBoYXJkLWNvZGluZyBhIHNwZWNpZmljIE9J RCBpbiB0aGUgZXhwZWN0ZWQgb3V0cHV0CistLSBmYWlsIC0gZHJvcCB0YWJsZSBub3QgYWxsb3dl ZCBkdWUgdG8gaW50ZXJuYWwgZGVwZW5kZW5jeQorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBO T1RJQ0U7CitETyAkJAorQkVHSU4KKyAgICBFWEVDVVRFICdEUk9QIFRBQkxFICcgfHwgKFNFTEVD VCAncGdfY29uZmxpY3QucGdfY29uZmxpY3RfbG9nXycgfHwgb2lkIEZST00gcGdfc3Vic2NyaXB0 aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScpOworRVhDRVBUSU9O IFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0 dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSc7CitFTkQgJCQ7CitO T1RJQ0U6ICBjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZQor LS0gQ0xFQU5VUDogRFJPUCBTVUJTQ1JJUFRJT04gcmVhcHMgdGhlIHRhYmxlCitBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBESVNBQkxFOworQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgU0VUIChzbG90X25hbWUgPSBOT05FKTsKKy0tIFZl cmlmeSB0aGUgdGFibGUgT0lEIGZvciByZWFwIGNoZWNrCitTRUxFQ1QgJ3BnX2NvbmZsaWN0LnBn X2NvbmZsaWN0X2xvZ18nIHx8IG9pZCBBUyBpbnRlcm5hbF90YWJsZW5hbWUgRlJPTSBwZ19zdWJz Y3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyBcZ3NldAor U0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5HOworRFJPUCBTVUJTQ1JJUFRJT04gcmVn cmVzc19jb25mbGljdF90ZXN0MTsKKy0tIHNob3VsZCByZXR1cm4gTlVMTCwgbWVhbmluZyB0aGUg Y29uZmxpY3QgbG9nIHRhYmxlIHdhcyByZWFwZWQgdmlhIGRlcGVuZGVuY3kKK1NFTEVDVCB0b19y ZWdjbGFzcyg6J2ludGVybmFsX3RhYmxlbmFtZScpOworIHRvX3JlZ2NsYXNzIAorLS0tLS0tLS0t LS0tLQorIAorKDEgcm93KQorCistLQorLS0gQWRkaXRpb25hbCBOYW1lc3BhY2UgYW5kIFRhYmxl IFByb3RlY3Rpb24gVGVzdHMKKy0tCistLSBTZXR1cDogRW5zdXJlIHdlIGhhdmUgYSBzdWJzY3Jp cHRpb24gd2l0aCBhIGNvbmZsaWN0IGxvZyB0YWJsZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdy ZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QnCisgICAgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFs c2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworV0FSTklORzogIHN1YnNj cmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0 aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlv biBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRp b24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCistLSBUcnlpbmcgdG8gQUxURVIgdGhlIGNvbmZs aWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBz eXN0ZW0tbWFuYWdlZAorLS0gQXMgbWVudGlvbmVkIGluIHByZXZpb3VzIHRlc3QgY2FzZXMsIHdl IHVzZSBhIERPIGJsb2NrIHRvIGhpZGUgZHluYW1pYyBPSURzCitTRVQgY2xpZW50X21pbl9tZXNz YWdlcyA9IE5PVElDRTsKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lO CisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAg IEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdw Z19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBSQUlTRSBOT1RJQ0UgJ0F0dGVtcHRp bmcgQUxURVIgVEFCTEUgb24gY29uZmxpY3QgbG9nIHRhYmxlJzsKKyAgICBFWEVDVVRFICdBTFRF UiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgQUREIENPTFVNTiBleHRyYV9pbmZvIHRleHQnOwor RVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9U SUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBkdXJp bmcgQUxURVInOworRU5EICQkOworTk9USUNFOiAgQXR0ZW1wdGluZyBBTFRFUiBUQUJMRSBvbiBj b25mbGljdCBsb2cgdGFibGUKK05PVElDRTogIGNhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1 ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBBTFRFUgorLS0gVGVzdCBNYW51YWwgSU5TRVJUIG9u IGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJs ZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gSGlkaW5nIHRoZSBPSUQgaW4gdGhlIGVycm9yIG1lc3Nh Z2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFt ZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRP IHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04g Yy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKworICAgIEVYRUNVVEUg J0lOU0VSVCBJTlRPICcgfHwgdGFiX25hbWUgfHwgJyAocmVsbmFtZSkgVkFMVUVTICgnJ215dGVz dCcnKSc7CitFWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCisgICAgUkFJU0Ug Tk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5n IElOU0VSVCc7CitFTkQgJCQ7CitOT1RJQ0U6ICBjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jv bmdfb2JqZWN0X3R5cGUgZHVyaW5nIElOU0VSVAorLS0gVGVzdCBNYW51YWwgVVBEQVRFIG9uIGNv bmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBp cyBzeXN0ZW0tbWFuYWdlZAorLS0gSGlkaW5nIHRoZSBPSUQgaW4gdGhlIGVycm9yIG1lc3NhZ2Ug YnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0 ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRh Yl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5y ZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1l ID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKworICAgIEVYRUNVVEUgJ1VQ REFURSAnIHx8IHRhYl9uYW1lIHx8ICcgU0VUIHJlbG5hbWUgPSAnJ215dGVzdCcnICc7CitFWENF UFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0 dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIFVQREFURSc7CitF TkQgJCQ7CitOT1RJQ0U6ICBjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5 cGUgZHVyaW5nIFVQREFURQorLS0gVHJ5aW5nIHRvIHBlcmZvcm0gVFJVTkNBVEUvREVMRVRFIG9u IHRoZSBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGJlIGFsbG93ZWQgc28gdGhh dCB1c2VyIGNhbiBwZXJmb3JtIGNsZWFudXAKK1NFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxu YW1lIEFTIGNvbmZsaWN0X3RhYgorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlv biBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5z dWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JyBcZ3NldAorVFJVTkNB VEUgOmNvbmZsaWN0X3RhYjsKK0RFTEVURSBGUk9NIDpjb25mbGljdF90YWI7CistLSBUcnlpbmcg dG8gY3JlYXRlIGEgbmV3IHRhYmxlIG1hbnVhbGx5IGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3Bh Y2UKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYXMgdGhlIG5hbWVzcGFjZSBpcyByZXNlcnZlZCBmb3Ig Y29uZmxpY3QgbG9ncyB0YWJsZXMKK0NSRUFURSBUQUJMRSBwZ19jb25mbGljdC5tYW51YWxfdGFi bGUgKGlkIGludCk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIHRvIGNyZWF0ZSAicGdfY29u ZmxpY3QubWFudWFsX3RhYmxlIgorREVUQUlMOiAgQ29uZmxpY3Qgc2NoZW1hIG1vZGlmaWNhdGlv bnMgYXJlIGN1cnJlbnRseSBkaXNhbGxvd2VkLgorLS0gTW92aW5nIGFuIGV4aXN0aW5nIHRhYmxl IGludG8gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZQorLS0gVXNlcnMgc2hvdWxkIG5vdCBiZSBh YmxlIHRvIG1vdmUgdGhlaXIgb3duIHRhYmxlcyB3aXRoaW4gdGhpcyBuYW1lc3BhY2UKK0NSRUFU RSBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlIChpZCBpbnQpOworQUxURVIgVEFCTEUgcHVibGljLnRl c3RfbW92ZSBTRVQgU0NIRU1BIHBnX2NvbmZsaWN0OworRVJST1I6ICBjYW5ub3QgbW92ZSBvYmpl Y3RzIGludG8gb3Igb3V0IG9mIHRoZSBjb25mbGljdCBzY2hlbWEKK0RST1AgVEFCTEUgcHVibGlj LnRlc3RfbW92ZTsKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsKKy0tIENsZWFu IHVwIHJlbWFpbmluZyB0ZXN0IHN1YnNjcmlwdGlvbgorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNV QlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0OworQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RS T1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyOworQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNV QlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyOworQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgU0VUIChzbG90X25hbWUgPSBOT05F KTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0Owog UkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXI7CiBEUk9QIFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjI7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbAppbmRleCA1MjhhMTBiNTQ4MS4uOWJlOGJmMzAxNGQg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbApAQCAtNDQ4LDYgKzQ0OCwyNjIg QEAgQ09NTUlUOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3Rf bmFtZSA9IE5PTkUpOwogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwogCistLQor LS0gQ09ORkxJQ1QgTE9HIERFU1RJTkFUSU9OIFRFU1RTCistLQorCitTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OICdyZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyJzsKKworU0VUIGNsaWVudF9taW5f bWVzc2FnZXMgPSBXQVJOSU5HOworCistLSBmYWlsIC0gdW5yZWNvZ25pemVkIHBhcmFtZXRlciB2 YWx1ZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2ZhaWwgQ09OTkVDVElP TiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEgg KGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2ludmFsaWQnKTsK KworLS0gdmVyaWZ5IHN1YmNvbmZsaWN0bG9nZGVzdCBpcyAnbG9nJyBhbmQgc3ViY29uZmxpY3Rs b2dyZWxpZCBpcyAwIChJbnZhbGlkT2lkKSBmb3IgZGVmYXVsdCBjYXNlCitDUkVBVEUgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgQ09OTkVDVElPTiAnZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBm YWxzZSk7CitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxv Z3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfbG9nX2RlZmF1bHQnOworCistLSB2ZXJpZnkgZW1wdHkgc3RyaW5nIGRlZmF1bHRzIHRv ICdsb2cnCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIENP Tk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1 YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICcnKTsK K1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQK K0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9l bXB0eV9zdHInOworCistLSB0aGlzIHNob3VsZCBnZW5lcmF0ZSBhbiBjb25mbGljdCBsb2cgdGFi bGUgbmFtZWQgcGdfY29uZmxpY3RfbG9nXyRzdWJpZCQKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVn cmVzc19jb25mbGljdF90ZXN0MSBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9s b2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKKworLS0gY2hlY2sgbWV0YWRhdGEgaW4gcGdfc3Vi c2NyaXB0aW9uOiBkZXN0aW5hdGlvbiBzaG91bGQgYmUgJ3RhYmxlJyBhbmQgc3ViY29uZmxpY3Rs b2dyZWxpZCB2YWxpZAorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29u ZmxpY3Rsb2dyZWxpZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVS RSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLSB2ZXJpZnkgdGhlIHBo eXNpY2FsIHRhYmxlIGV4aXN0cywgaXRzIE9JRCBtYXRjaGVzIHN1YmNvbmZsaWN0bG9ncmVsaWQs CistLSBhbmQgaXQgaXMgbG9jYXRlZCBpbiB0aGUgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2UKK1NF TEVDVCBuLm5zcG5hbWUsIChjLm9pZCA9IHMuc3ViY29uZmxpY3Rsb2dyZWxpZCkgQVMgIm9pZF9t YXRjaGVzIgorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVs bmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorSk9JTiBwZ19uYW1lc3BhY2UgbiBP TiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25m bGljdF90ZXN0MSc7CisKKy0tIGNoZWNrIGlmIHRoZSBjb25mbGljdCBsb2cgdGFibGUgaGFzIHRo ZSBjb3JyZWN0IHNjaGVtYQorU0VMRUNUIGEuYXR0bnVtLCBhLmF0dG5hbWUKK0ZST00gcGdfYXR0 cmlidXRlIGEKK0pPSU4gcGdfY2xhc3MgYyBPTiBhLmF0dHJlbGlkID0gYy5vaWQKK0pPSU4gcGdf c3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lk CitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgQU5EIGEuYXR0bnVt ID4gMAorICAgIE9SREVSIEJZIGEuYXR0bnVtOworCistLSBDaGFuZ2luZyB0aGUgc3Vic2NyaXB0 aW9uIG93bmVyIHNob3VsZCBhbHNvIHVwZGF0ZSB0aGUgb3duZXIKKy0tIG9mIHRoZSBhc3NvY2lh dGVkIGNvbmZsaWN0IGxvZyB0YWJsZS4KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X3Rlc3QxIE9XTkVSIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyOworU0VMRUNUIHBn X2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKGMucmVsb3duZXIpIEFTIG93bmVyCitGUk9NIHBnX2Nh dGFsb2cucGdfY2xhc3MgYworSk9JTiBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvbiBzCisgICAg ICAgIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5z dWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLSBWZXJpZnkgdGhhdCBhIG5v bi1zdXBlcnVzZXIgc3Vic2NyaXB0aW9uIG93bmVyIGNhbiB0cnVuY2F0ZSwKKy0tIGRlbGV0ZSBm cm9tLCBhbmQgc2VsZWN0IGZyb20gdGhlIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlLgor U0VUIFJPTEUgJ3JlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyJzsKKworU0VMRUNUIGZvcm1hdCgn JUkuJUknLCBuLm5zcG5hbWUsIGMucmVsbmFtZSkgQVMgY29uZmxpY3RfbG9nX3RhYmxlCitGUk9N IHBnX2NhdGFsb2cucGdfY2xhc3MgYworSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuCisJ T04gbi5vaWQgPSBjLnJlbG5hbWVzcGFjZQorSk9JTiBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlv biBzCisJT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBz LnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScKK1xnc2V0CisKK1RSVU5DQVRFIFRB QkxFIDpjb25mbGljdF9sb2dfdGFibGU7CitERUxFVEUgRlJPTSA6Y29uZmxpY3RfbG9nX3RhYmxl OworU0VMRUNUIENPVU5UKCopIEZST00gOmNvbmZsaWN0X2xvZ190YWJsZTsKKworUkVTRVQgUk9M RTsKKworLS0gUmVzdG9yZSB0aGUgb3JpZ2luYWwgc3Vic2NyaXB0aW9uIG93bmVyLgorQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgT1dORVIgVE8gcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlcjsKKworLS0KKy0tIEFMVEVSIFNVQlNDUklQVElPTiAtIGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiBzdGF0ZSB0cmFuc2l0aW9ucworLS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlm eSB0aGUgdHJhbnNpdGlvbiBsb2dpYyBiZXR3ZWVuIGRpZmZlcmVudCBsb2dnaW5nCistLSBkZXN0 aW5hdGlvbnMsIGVuc3VyaW5nIGNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIGNyZWF0ZWQgb3IgZHJv cHBlZCBhcworLS0gZXhwZWN0ZWQKKy0tCistLSB0cmFuc2l0aW9uIGZyb20gJ2xvZycgdG8gJ2Fs bCcKKy0tIGEgbmV3IGNvbmZsaWN0IGxvZyB0YWJsZSBzaG91bGQgYmUgY3JlYXRlZAorQ1JFQVRF IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIENPTk5FQ1RJT04gJ2RibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0g ZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsKK0FMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u ID0gJ2FsbCcpOworCistLSB2ZXJpZnkgbWV0YWRhdGEgYWZ0ZXIgQUxURVIgKGRlc3RpbmF0aW9u IHNob3VsZCBiZSAnYWxsJykKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1 YmNvbmZsaWN0bG9ncmVsaWQgPiAwIEFTIGhhc19yZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24g V0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKworLS0gdHJhbnNpdGlv biBmcm9tICdhbGwnIHRvICd0YWJsZScKKy0tIHNob3VsZCBOT1QgZHJvcCB0aGUgdGFibGUsIG9u bHkgY2hhbmdlIGRlc3RpbmF0aW9uIHN0cmluZworU0VMRUNUIHN1YmNvbmZsaWN0bG9ncmVsaWQg QVMgb2xkX3JlbGlkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF90ZXN0MicgXGdzZXQKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CitTRUxF Q1Qgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID0gOm9sZF9yZWxpZCBB UyByZWxpZF91bmNoYW5nZWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAn cmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0tIHRyYW5zaXRpb24gZnJvbSAndGFibGUnIHRv ICdsb2cnCistLSBzaG91bGQgZHJvcCB0aGUgdGFibGUgYW5kIGNsZWFyIHN1YmNvbmZsaWN0bG9n cmVsaWQKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29u ZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2xvZycpOworU0VMRUNUIHN1YmNvbmZsaWN0bG9nZGVz dCwgc3ViY29uZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFt ZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0 YWJsZSBpcyBnb25lCitTRUxFQ1QgY291bnQoKikKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19z dWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQK K1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKworLS0KKy0tIFBV QkxJQ0FUSU9OOiBWZXJpZnkgY29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbm90IHB1Ymxpc2hhYmxl CistLQorLS0gcGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUgc2hvdWxkIHJldHVybiBmYWxzZSBm b3IgY29uZmxpY3QgbG9nIHRhYmxlcyB0bworLS0gcHJldmVudCB0aGVtIGZyb20gYmVpbmcgYWNj aWRlbnRhbGx5IGluY2x1ZGVkIGluIHB1YmxpY2F0aW9ucworLS0KK1NFTEVDVCBuLm5zcG5hbWUs IHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKGMub2lkKQorRlJPTSBwZ19jbGFzcyBjCitKT0lO IHBnX25hbWVzcGFjZSBuIE9OIGMucmVsbmFtZXNwYWNlID0gbi5vaWQKK0pPSU4gcGdfc3Vic2Ny aXB0aW9uIHMgT04gcy5zdWJjb25mbGljdGxvZ3JlbGlkID0gYy5vaWQKK1dIRVJFIHMuc3VibmFt ZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKworLS0KKy0tIFRhYmxlIFByb3RlY3Rpb24g YW5kIExpZmVjeWNsZSBNYW5hZ2VtZW50CistLQorLS0gVGhlc2UgdGVzdHMgdmVyaWZ5IHRoYXQ6 CistLSBNYW51YWwgRFJPUCBUQUJMRSBpcyBkaXNhbGxvd2VkCistLSBEUk9QIFNVQlNDUklQVElP TiBhdXRvbWF0aWNhbGx5IHJlYXBzIHRoZSB0YWJsZQorLS0KKy0tIHJlLWVuYWJsZSB0YWJsZSBs b2dnaW5nIGZvciB2ZXJpZmljYXRpb24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X3Rlc3QxIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisKKy0t IFdlIHVzZSBhIERPIGJsb2NrIHdpdGggZHluYW1pYyBTUUwgYmVjYXVzZSB0aGUgY29uZmxpY3Qg bG9nIHRhYmxlCistLSBuYW1lIGNvbnRhaW5zIHRoZSBzdWJzY3JpcHRpb24gT0lELCB3aGljaCBp cyBub24tZGV0ZXJtaW5pc3RpYy4gVGhpcworLS0gYXBwcm9hY2ggYWxsb3dzIHVzIHRvIGF0dGVt cHQgdGhlIERST1AgYW5kIGNhcHR1cmUgdGhlIGV4cGVjdGVkIGVycm9yCistLSB3aXRob3V0IGhh cmQtY29kaW5nIGEgc3BlY2lmaWMgT0lEIGluIHRoZSBleHBlY3RlZCBvdXRwdXQKKworLS0gZmFp bCAtIGRyb3AgdGFibGUgbm90IGFsbG93ZWQgZHVlIHRvIGludGVybmFsIGRlcGVuZGVuY3kKK1NF VCBjbGllbnRfbWluX21lc3NhZ2VzID0gTk9USUNFOworRE8gJCQKK0JFR0lOCisgICAgRVhFQ1VU RSAnRFJPUCBUQUJMRSAnIHx8IChTRUxFQ1QgJ3BnX2NvbmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18n IHx8IG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfdGVzdDEnKTsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhF TgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVu dF9wcml2aWxlZ2UnOworRU5EICQkOworCistLSBDTEVBTlVQOiBEUk9QIFNVQlNDUklQVElPTiBy ZWFwcyB0aGUgdGFibGUKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3Qx IERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQg KHNsb3RfbmFtZSA9IE5PTkUpOworCistLSBWZXJpZnkgdGhlIHRhYmxlIE9JRCBmb3IgcmVhcCBj aGVjaworU0VMRUNUICdwZ19jb25mbGljdC5wZ19jb25mbGljdF9sb2dfJyB8fCBvaWQgQVMgaW50 ZXJuYWxfdGFibGVuYW1lIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVn cmVzc19jb25mbGljdF90ZXN0MScgXGdzZXQKKworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBX QVJOSU5HOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MTsKKworLS0g c2hvdWxkIHJldHVybiBOVUxMLCBtZWFuaW5nIHRoZSBjb25mbGljdCBsb2cgdGFibGUgd2FzIHJl YXBlZCB2aWEgZGVwZW5kZW5jeQorU0VMRUNUIHRvX3JlZ2NsYXNzKDonaW50ZXJuYWxfdGFibGVu YW1lJyk7CisKKy0tCistLSBBZGRpdGlvbmFsIE5hbWVzcGFjZSBhbmQgVGFibGUgUHJvdGVjdGlv biBUZXN0cworLS0KKworLS0gU2V0dXA6IEVuc3VyZSB3ZSBoYXZlIGEgc3Vic2NyaXB0aW9uIHdp dGggYSBjb25mbGljdCBsb2cgdGFibGUKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF9wcm90ZWN0aW9uX3Rlc3QgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0JworICAgIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25m bGljdF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKKworLS0gVHJ5aW5nIHRvIEFMVEVSIHRo ZSBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSB0aGUgdGFi bGUgaXMgc3lzdGVtLW1hbmFnZWQKKy0tIEFzIG1lbnRpb25lZCBpbiBwcmV2aW91cyB0ZXN0IGNh c2VzLCB3ZSB1c2UgYSBETyBibG9jayB0byBoaWRlIGR5bmFtaWMgT0lEcworCitTRVQgY2xpZW50 X21pbl9tZXNzYWdlcyA9IE5PVElDRTsKK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4 dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJf bmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVs bmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9 ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBSQUlTRSBOT1RJQ0Ug J0F0dGVtcHRpbmcgQUxURVIgVEFCTEUgb24gY29uZmxpY3QgbG9nIHRhYmxlJzsKKyAgICBFWEVD VVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgQUREIENPTFVNTiBleHRyYV9pbmZv IHRleHQnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAg UkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZp bGVnZSBkdXJpbmcgQUxURVInOworRU5EICQkOworCistLSBUZXN0IE1hbnVhbCBJTlNFUlQgb24g Y29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxl IGlzIHN5c3RlbS1tYW5hZ2VkCistLSBIaWRpbmcgdGhlIE9JRCBpbiB0aGUgZXJyb3IgbWVzc2Fn ZSBieSBjYXRjaGluZyB0aGUgZXhjZXB0aW9uCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1l IHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8g dGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBj LnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5h bWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworCisgICAgRVhFQ1VURSAn SU5TRVJUIElOVE8gJyB8fCB0YWJfbmFtZSB8fCAnIChyZWxuYW1lKSBWQUxVRVMgKCcnbXl0ZXN0 JycpJzsKK0VYQ0VQVElPTiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KKyAgICBSQUlTRSBO T1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiB3cm9uZ19vYmplY3RfdHlwZSBkdXJpbmcg SU5TRVJUJzsKK0VORCAkJDsKKworLS0gVGVzdCBNYW51YWwgVVBEQVRFIG9uIGNvbmZsaWN0IGxv ZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0t bWFuYWdlZAorLS0gSGlkaW5nIHRoZSBPSUQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hp bmcgdGhlIGV4Y2VwdGlvbgorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVH SU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisg ICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0g J3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jl c3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKworICAgIEVYRUNVVEUgJ1VQREFURSAnIHx8 IHRhYl9uYW1lIHx8ICcgU0VUIHJlbG5hbWUgPSAnJ215dGVzdCcnICc7CitFWENFUFRJT04gV0hF TiB3cm9uZ19vYmplY3RfdHlwZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBl Y3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIFVQREFURSc7CitFTkQgJCQ7CisK Ky0tIFRyeWluZyB0byBwZXJmb3JtIFRSVU5DQVRFL0RFTEVURSBvbiB0aGUgY29uZmxpY3QgbG9n IHRhYmxlCistLSBUaGlzIHNob3VsZCBiZSBhbGxvd2VkIHNvIHRoYXQgdXNlciBjYW4gcGVyZm9y bSBjbGVhbnVwCitTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBBUyBjb25mbGljdF90 YWIKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUg PSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCcgXGdzZXQKK1RSVU5DQVRFIDpjb25mbGljdF90YWI7 CitERUxFVEUgRlJPTSA6Y29uZmxpY3RfdGFiOworCistLSBUcnlpbmcgdG8gY3JlYXRlIGEgbmV3 IHRhYmxlIG1hbnVhbGx5IGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UKKy0tIFRoaXMgc2hv dWxkIGZhaWwgYXMgdGhlIG5hbWVzcGFjZSBpcyByZXNlcnZlZCBmb3IgY29uZmxpY3QgbG9ncyB0 YWJsZXMKK0NSRUFURSBUQUJMRSBwZ19jb25mbGljdC5tYW51YWxfdGFibGUgKGlkIGludCk7CisK Ky0tIE1vdmluZyBhbiBleGlzdGluZyB0YWJsZSBpbnRvIHRoZSBwZ19jb25mbGljdCBuYW1lc3Bh Y2UKKy0tIFVzZXJzIHNob3VsZCBub3QgYmUgYWJsZSB0byBtb3ZlIHRoZWlyIG93biB0YWJsZXMg d2l0aGluIHRoaXMgbmFtZXNwYWNlCitDUkVBVEUgVEFCTEUgcHVibGljLnRlc3RfbW92ZSAoaWQg aW50KTsKK0FMVEVSIFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgU0VUIFNDSEVNQSBwZ19jb25mbGlj dDsKK0RST1AgVEFCTEUgcHVibGljLnRlc3RfbW92ZTsKKworU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXMgPSBXQVJOSU5HOworCistLSBDbGVhbiB1cCByZW1haW5pbmcgdGVzdCBzdWJzY3JpcHRpb24K K0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IERJU0FCTEU7 CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBTRVQgKHNs b3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2df ZGVmYXVsdDsKKworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3Ry IERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIg U0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxp Y3RfZW1wdHlfc3RyOworCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0 MiBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VU IChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf dGVzdDI7CisKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25f dGVzdCBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVj dGlvbl90ZXN0IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdy ZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdDsKKwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7CiBEUk9QIFJPTEUgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlcjI7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGY5 ZWIyM2U1MmM5Li42NTliYzUwNzFiNSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTUx NSw2ICs1MTUsOCBAQCBDb25kaXRpb25hbFN0YWNrCiBDb25kaXRpb25hbFN0YWNrRGF0YQogQ29u ZmlnRGF0YQogQ29uZmlnVmFyaWFibGUKK0NvbmZsaWN0TG9nQ29sdW1uRGVmCitDb25mbGljdExv Z0Rlc3QKIENvbmZsaWN0VHVwbGVJbmZvCiBDb25mbGljdFR5cGUKIENvbm5DYWNoZUVudHJ5Ci0t IAoyLjUzLjAKCg== --0000000000003b2574065472a7d4 Content-Type: application/octet-stream; name="v51-0003-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v51-0003-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqi2oatb2 RnJvbSBhZTAzZGY1OWExYTlhMzYyOWQ0NmNkY2I5ZDJkMmJlNjgxMGNmM2M4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogU2F0LCAzMCBNYXkgMjAyNiAxMzozNTowNCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjUx IDMvNl0gSW1wbGVtZW50IHRoZSBjb25mbGljdCBpbnNlcnRpb24gaW5mcmFzdHJ1Y3R1cmUgZm9y 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 ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IGEzZjI0MDZlZDgzLi5kNzZmMmY4 MjFlYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIu YworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC00ODcs NyArNDg3LDkgQEAgc3RhdGljIGJvb2wgTXlTdWJzY3JpcHRpb25WYWxpZCA9IGZhbHNlOwogc3Rh dGljIExpc3QgKm9uX2NvbW1pdF93YWtldXBfd29ya2Vyc19zdWJpZHMgPSBOSUw7CiAKIGJvb2wJ CWluX3JlbW90ZV90cmFuc2FjdGlvbiA9IGZhbHNlOwotc3RhdGljIFhMb2dSZWNQdHIgcmVtb3Rl X2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOworWExvZ1JlY1B0ciByZW1vdGVfZmluYWxf bHNuID0gSW52YWxpZFhMb2dSZWNQdHI7CitUcmFuc2FjdGlvbklkCXJlbW90ZV94aWQgPSBJbnZh bGlkVHJhbnNhY3Rpb25JZDsKK1RpbWVzdGFtcFR6CXJlbW90ZV9jb21taXRfdHMgPSAwOwogCiAv KiBmaWVsZHMgdmFsaWQgb25seSB3aGVuIHByb2Nlc3Npbmcgc3RyZWFtZWQgdHJhbnNhY3Rpb24g Ki8KIHN0YXRpYyBib29sIGluX3N0cmVhbWVkX3RyYW5zYWN0aW9uID0gZmFsc2U7CkBAIC0xMjM2 LDYgKzEyMzgsOCBAQCBhcHBseV9oYW5kbGVfYmVnaW4oU3RyaW5nSW5mbyBzKQogCXNldF9hcHBs eV9lcnJvcl9jb250ZXh0X3hhY3QoYmVnaW5fZGF0YS54aWQsIGJlZ2luX2RhdGEuZmluYWxfbHNu KTsKIAogCXJlbW90ZV9maW5hbF9sc24gPSBiZWdpbl9kYXRhLmZpbmFsX2xzbjsKKwlyZW1vdGVf Y29tbWl0X3RzID0gYmVnaW5fZGF0YS5jb21taXR0aW1lOworCXJlbW90ZV94aWQgPSBiZWdpbl9k YXRhLnhpZDsKIAogCW1heWJlX3N0YXJ0X3NraXBwaW5nX2NoYW5nZXMoYmVnaW5fZGF0YS5maW5h bF9sc24pOwogCkBAIC0xNzY3LDYgKzE3NzEsMTAgQEAgYXBwbHlfaGFuZGxlX3N0cmVhbV9zdGFy dChTdHJpbmdJbmZvIHMpCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9UT0NPTF9WSU9MQVRJT04p LAogCQkJCSBlcnJtc2dfaW50ZXJuYWwoImludmFsaWQgdHJhbnNhY3Rpb24gSUQgaW4gc3RyZWFt ZWQgcmVwbGljYXRpb24gdHJhbnNhY3Rpb24iKSkpOwogCisJcmVtb3RlX3hpZCA9IHN0cmVhbV94 aWQ7CisJcmVtb3RlX2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOworCXJlbW90ZV9jb21t aXRfdHMgPSAwOworCiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdChzdHJlYW1feGlkLCBJ bnZhbGlkWExvZ1JlY1B0cik7CiAKIAkvKiBUcnkgdG8gYWxsb2NhdGUgYSB3b3JrZXIgZm9yIHRo ZSBzdHJlYW1pbmcgdHJhbnNhY3Rpb24uICovCkBAIC0yNDI4LDYgKzI0MzYsOSBAQCBhcHBseV9o YW5kbGVfc3RyZWFtX2NvbW1pdChTdHJpbmdJbmZvIHMpCiAJewogCQljYXNlIFRSQU5TX0xFQURF Ul9BUFBMWToKIAorCQkJLyogU2V0IHJlbW90ZV9jb21taXRfdHMgZm9yIGNvbmZsaWN0IGxvZ2dp bmcuICovCisJCQlyZW1vdGVfY29tbWl0X3RzID0gY29tbWl0X2RhdGEuY29tbWl0dGltZTsKKwog CQkJLyoKIAkJCSAqIFRoZSB0cmFuc2FjdGlvbiBoYXMgYmVlbiBzZXJpYWxpemVkIHRvIGZpbGUs IHNvIHJlcGxheSBhbGwgdGhlCiAJCQkgKiBzcG9vbGVkIG9wZXJhdGlvbnMuCkBAIC01NjY2LDYg KzU2NzcsNyBAQCBzdGFydF9hcHBseShYTG9nUmVjUHRyIG9yaWdpbl9zdGFydHBvcykKIAkJCSAq LwogCQkJQWJvcnRPdXRPZkFueVRyYW5zYWN0aW9uKCk7CiAJCQlwZ3N0YXRfcmVwb3J0X3N1YnNj cmlwdGlvbl9lcnJvcihNeVN1YnNjcmlwdGlvbi0+b2lkKTsKKwkJCVByb2Nlc3NQZW5kaW5nQ29u ZmxpY3RMb2dUdXBsZSgpOwogCiAJCQlQR19SRV9USFJPVygpOwogCQl9CkBAIC02MDQwLDYgKzYw NTIsOCBAQCBEaXNhYmxlU3Vic2NyaXB0aW9uQW5kRXhpdCh2b2lkKQogCSAqLwogCXBnc3RhdF9y ZXBvcnRfc3Vic2NyaXB0aW9uX2Vycm9yKE15TG9naWNhbFJlcFdvcmtlci0+c3ViaWQpOwogCisJ UHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKCk7CisKIAkvKiBEaXNhYmxlIHRoZSBzdWJz Y3JpcHRpb24gKi8KIAlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgpOwogCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vY29uZmxpY3QuaAppbmRleCBhMDE3ZTFlNmNiNS4uYjcyN2NjMjg1ZTkgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vY29uZmxpY3QuaApAQCAtMTE1LDUgKzExNSw4IEBAIGV4dGVybiB2b2lkIFJlcG9y dEFwcGx5Q29uZmxpY3QoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJ CQkJCQkJCVR1cGxlVGFibGVTbG90ICpzZWFyY2hzbG90LAogCQkJCQkJCQlUdXBsZVRhYmxlU2xv dCAqcmVtb3Rlc2xvdCwKIAkJCQkJCQkJTGlzdCAqY29uZmxpY3R0dXBsZXMpOworZXh0ZXJuIHZv aWQgUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKHZvaWQpOwogZXh0ZXJuIHZvaWQgSW5p dENvbmZsaWN0SW5kZXhlcyhSZXN1bHRSZWxJbmZvICpyZWxJbmZvKTsKK2V4dGVybiBSZWxhdGlv biBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZShDb25mbGljdExvZ0Rlc3QgKmxvZ19kZXN0KTsK K2V4dGVybiB2b2lkIEluc2VydENvbmZsaWN0TG9nVHVwbGUoUmVsYXRpb24gY29uZmxpY3Rsb2dy ZWwpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJf aW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCmlu ZGV4IDc0NWI3ZDllOTY5Li42YjY1MjVkYzJlMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v d29ya2VyX2ludGVybmFsLmgKQEAgLTEwMCw2ICsxMDAsOSBAQCB0eXBlZGVmIHN0cnVjdCBMb2dp Y2FsUmVwV29ya2VyCiAJICovCiAJVHJhbnNhY3Rpb25JZCBvbGRlc3Rfbm9ucmVtb3ZhYmxlX3hp ZDsKIAorCS8qIEEgY29uZmxpY3QgbG9nIHR1cGxlIHRoYXQgaXMgcHJlcGFyZWQgYnV0IG5vdCB5 ZXQgaW5zZXJ0ZWQuICovCisJSGVhcFR1cGxlCWNvbmZsaWN0X2xvZ190dXBsZTsKKwogCS8qIFN0 YXRzLiAqLwogCVhMb2dSZWNQdHIJbGFzdF9sc247CiAJVGltZXN0YW1wVHogbGFzdF9zZW5kX3Rp bWU7CkBAIC0yNTUsNiArMjU4LDEwIEBAIGV4dGVybiBQR0RMTElNUE9SVCBib29sIEluaXRpYWxp emluZ0FwcGx5V29ya2VyOwogCiBleHRlcm4gUEdETExJTVBPUlQgTGlzdCAqdGFibGVfc3RhdGVz X25vdF9yZWFkeTsKIAorZXh0ZXJuIFhMb2dSZWNQdHIgcmVtb3RlX2ZpbmFsX2xzbjsKK2V4dGVy biBUaW1lc3RhbXBUeiByZW1vdGVfY29tbWl0X3RzOworZXh0ZXJuIFRyYW5zYWN0aW9uSWQgcmVt b3RlX3hpZDsKKwogZXh0ZXJuIHZvaWQgbG9naWNhbHJlcF93b3JrZXJfYXR0YWNoKGludCBzbG90 KTsKIGV4dGVybiBMb2dpY2FsUmVwV29ya2VyICpsb2dpY2FscmVwX3dvcmtlcl9maW5kKExvZ2lj YWxSZXBXb3JrZXJUeXBlIHd0eXBlLAogCQkJCQkJCQkJCQkJT2lkIHN1YmlkLCBPaWQgcmVsaWQs CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfb3JpZ2luLnBsIGIvc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX29yaWdpbi5wbAppbmRleCA2YmM2Yjc4NzRjMi4uNWY0 ZDAwYmRkMzMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9vcmlnaW4u cGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX29yaWdpbi5wbApAQCAtMTY2LDcg KzE2Niw3IEBAIGlzKCRyZXN1bHQsIHFxKDMyKSwgJ1RoZSBub2RlX0EgZGF0YSByZXBsaWNhdGVk IHRvIG5vZGVfQicpOwogJG5vZGVfQy0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJVUERBVEUgJHRh YiBTRVQgYSA9IDMzIFdIRVJFIGEgPSAzMjsiKTsKIAogJG5vZGVfQi0+d2FpdF9mb3JfbG9nKAot CXFyL2NvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWMuJHRhYl91bnF1b3RlZCI6 IGNvbmZsaWN0PXVwZGF0ZV9vcmlnaW5fZGlmZmVycy4qXG4uKkRFVEFJTDouKiBVcGRhdGluZyB0 aGUgcm93IHRoYXQgd2FzIG1vZGlmaWVkIGJ5IGEgZGlmZmVyZW50IG9yaWdpbiAiLioiIGluIHRy YW5zYWN0aW9uIFswLTldKyBhdCAuKjogbG9jYWwgcm93IFwoMzJcKSwgcmVtb3RlIHJvdyBcKDMz XCksIHJlcGxpY2EgaWRlbnRpdHkgXChhXCk9XCgzMlwpLi8KKwlxci9jb25mbGljdCBkZXRlY3Rl ZCBvbiByZWxhdGlvbiAicHVibGljLiR0YWIiOiBjb25mbGljdD11cGRhdGVfb3JpZ2luX2RpZmZl cnMuKlxuLipERVRBSUw6LiogVXBkYXRpbmcgdGhlIHJvdyB0aGF0IHdhcyBtb2RpZmllZCBieSBh IGRpZmZlcmVudCBvcmlnaW4gIi4qIiBpbiB0cmFuc2FjdGlvbiBbMC05XSsgYXQgLio6IGxvY2Fs IHJvdyBcKDMyXCksIHJlbW90ZSByb3cgXCgzM1wpLCByZXBsaWNhIGlkZW50aXR5IFwoYVwpPVwo MzJcKS4vCiApOwogCiAkbm9kZV9CLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRFTEVURSBGUk9N ICR0YWI7Iik7CkBAIC0xODIsNyArMTgyLDcgQEAgaXMoJHJlc3VsdCwgcXEoMzMpLCAnVGhlIG5v ZGVfQSBkYXRhIHJlcGxpY2F0ZWQgdG8gbm9kZV9CJyk7CiAkbm9kZV9DLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIkRFTEVURSBGUk9NICR0YWIgV0hFUkUgYSA9IDMzOyIpOwogCiAkbm9kZV9CLT53 YWl0X2Zvcl9sb2coCi0JcXIvY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1YmxpYy4k dGFiX3VucXVvdGVkIjogY29uZmxpY3Q9ZGVsZXRlX29yaWdpbl9kaWZmZXJzLipcbi4qREVUQUlM Oi4qIERlbGV0aW5nIHRoZSByb3cgdGhhdCB3YXMgbW9kaWZpZWQgYnkgYSBkaWZmZXJlbnQgb3Jp Z2luICIuKiIgaW4gdHJhbnNhY3Rpb24gWzAtOV0rIGF0IC4qOiBsb2NhbCByb3cgXCgzM1wpLCBy ZXBsaWNhIGlkZW50aXR5IFwoYVwpPVwoMzNcKS4qLworCXFyL2NvbmZsaWN0IGRldGVjdGVkIG9u IHJlbGF0aW9uICJwdWJsaWMuJHRhYiI6IGNvbmZsaWN0PWRlbGV0ZV9vcmlnaW5fZGlmZmVycy4q XG4uKkRFVEFJTDouKiBEZWxldGluZyB0aGUgcm93IHRoYXQgd2FzIG1vZGlmaWVkIGJ5IGEgZGlm ZmVyZW50IG9yaWdpbiAiLioiIGluIHRyYW5zYWN0aW9uIFswLTldKyBhdCAuKjogbG9jYWwgcm93 IFwoMzNcKSwgcmVwbGljYSBpZGVudGl0eSBcKGFcKT1cKDMzXCkuKi8KICk7CiAKICMgVGhlIHJl bWFpbmluZyB0ZXN0cyBubyBsb25nZXIgdGVzdCBjb25mbGljdCBkZXRlY3Rpb24uCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3RzLnBsIGIvc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL3QvMDM1X2NvbmZsaWN0cy5wbAppbmRleCBmMjNmZTZhZjJhNS4uZGUyZDM3 Yzg3NTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9jb25mbGljdHMu cGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM1X2NvbmZsaWN0cy5wbApAQCAtNTAs NyArNTAsNyBAQCAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCiAJJ3Bvc3RncmVzJywKIAki Q1JFQVRFIFNVQlNDUklQVElPTiBzdWJfdGFiCiAJIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29u bnN0ciBhcHBsaWNhdGlvbl9uYW1lPSRhcHBuYW1lJwotCSBQVUJMSUNBVElPTiBwdWJfdGFiOyIp OworCSBQVUJMSUNBVElPTiBwdWJfdGFiIFdJVEggKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbj1h bGwpIik7CiAKICMgV2FpdCBmb3IgaW5pdGlhbCB0YWJsZSBzeW5jIHRvIGZpbmlzaAogJG5vZGVf c3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAk YXBwbmFtZSk7CkBAIC04NCwxMCArODQsMzUgQEAgJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jf bG9nKAogLipLZXkgYWxyZWFkeSBleGlzdHMgaW4gdW5pcXVlIGluZGV4IFwiY29uZl90YWJfY19r ZXlcIiwgbW9kaWZpZWQgaW4gdHJhbnNhY3Rpb24gLio6IGtleSBcKGNcKT1cKDRcKSwgbG9jYWwg cm93IFwoNCwgNCwgNFwpLi8sCiAJJGxvZ19vZmZzZXQpOwogCisjIFZlcmlmeSB0aGUgY29udGVu dHMgb2YgdGhlIENvbmZsaWN0IExvZyBUYWJsZSAoQ0xUKQorIyBUaGlzIHNlY3Rpb24gZW5zdXJl cyB0aGF0IHRoZSBDTFQgY29udGFpbnMgdGhlIGV4cGVjdGVkCisjIHR5cGUgYW5kIHNwZWNpZmlj IGtleSBkYXRhLgorbXkgJHN1YmlkID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIlNFTEVDVCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9 ICdzdWJfdGFiJzsiKTsKK215ICRjbHQgPSAicGdfY29uZmxpY3QucGdfY29uZmxpY3RfbG9nXyRz dWJpZCI7CisKKyMgV2FpdCBmb3IgdGhlIGNvbmZsaWN0IHRvIGJlIGxvZ2dlZCBpbiB0aGUgQ0xU CitteSAkbG9nX2NoZWNrID0gJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRpbCgKKyAg ICAncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPiAwIEZST00gJGNsdDsiCispOwor CitteSAkY29uZmxpY3RfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopID49IDEgRlJPTSAkY2x0IFdIRVJFIGNvbmZsaWN0 X3R5cGUgPSAnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyc7Iik7CitpcygkY29uZmxpY3RfY2hl Y2ssICd0JywgJ1ZlcmlmaWVkIG11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMgbG9nZ2VkIGludG8g Y29uZmxpY3QgbG9nIHRhYmxlJyk7CisKK215ICRqc29uX3F1ZXJ5ID0gIlNFTEVDVCBsb2NhbF9j b25mbGljdHMgRlJPTSAkY2x0OyI7CitteSAkcmF3X2pzb24gPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgJGpzb25fcXVlcnkpOworCisjIFZlcmlmeSB0aGF0ICcyJyBp cyBwcmVzZW50IGluc2lkZSB0aGUgSlNPTiBzdHJ1Y3R1cmUgdXNpbmcgYSByZWdleAorIyBUaGlz IG1hdGNoZXMgdGhlIGtleS92YWx1ZSBwYXR0ZXJuIGZvciAiYSI6IDIKK2xpa2UoJHJhd19qc29u LCBxci9cXCJhXFwiOjIvLCAnVmVyaWZpZWQgdGhhdCBrZXkgMiBleGlzdHMgaW4gdGhlIGxvY2Fs X2NvbmZsaWN0cycpOworCiBwYXNzKCdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGRldGVjdGVk IGR1cmluZyBpbnNlcnQnKTsKIAogIyBUcnVuY2F0ZSB0YWJsZSB0byBnZXQgcmlkIG9mIHRoZSBl cnJvcgogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJUUlVOQ0FURSBj b25mX3RhYjsiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiREVM RVRFIEZST00gJGNsdCIpOwogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwogIyBUZXN0IG11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMgZHVlIHRvIFVQ REFURQpAQCAtMTE0LDYgKzEzOSwyNiBAQCAkbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9sb2co CiAuKktleSBhbHJlYWR5IGV4aXN0cyBpbiB1bmlxdWUgaW5kZXggXCJjb25mX3RhYl9jX2tleVwi LCBtb2RpZmllZCBpbiB0cmFuc2FjdGlvbiAuKjoga2V5IFwoY1wpPVwoOFwpLCBsb2NhbCByb3cg XCg4LCA4LCA4XCkuLywKIAkkbG9nX29mZnNldCk7CiAKKyMgVmVyaWZ5IHRoZSBjb250ZW50cyBv ZiB0aGUgQ29uZmxpY3QgTG9nIFRhYmxlIChDTFQpCisjIFRoaXMgc2VjdGlvbiBlbnN1cmVzIHRo YXQgdGhlIENMVCBjb250YWlucyB0aGUgZXhwZWN0ZWQKKyMgdHlwZSBhbmQgc3BlY2lmaWMga2V5 IGRhdGEuCisKKyMgV2FpdCBmb3IgdGhlIGNvbmZsaWN0IHRvIGJlIGxvZ2dlZCBpbiB0aGUgQ0xU CiskbG9nX2NoZWNrID0gJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRpbCgKKyAgICAn cG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPiAwIEZST00gJGNsdDsiCispOworCisk Y29uZmxpY3RfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KyAgICAiU0VMRUNUIGNvdW50KCopID49IDEgRlJPTSAkY2x0IFdIRVJFIGNvbmZsaWN0X3R5cGUg PSAnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyc7Iik7CitpcygkY29uZmxpY3RfY2hlY2ssICd0 JywgJ1ZlcmlmaWVkIG11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMgbG9nZ2VkIGludG8gY29uZmxp Y3QgbG9nIHRhYmxlJyk7CisKKyRyYXdfanNvbiA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAkanNvbl9xdWVyeSk7CisKKyMgVmVyaWZ5IHRoYXQgJzYnIGlzIHByZXNl bnQgaW5zaWRlIHRoZSBKU09OIHN0cnVjdHVyZSB1c2luZyBhIHJlZ2V4CisjIFRoaXMgbWF0Y2hl cyB0aGUga2V5L3ZhbHVlIHBhdHRlcm4gZm9yICJhIjogNgorbGlrZSgkcmF3X2pzb24sIHFyL1xc ImFcXCI6Ni8sICdWZXJpZmllZCB0aGF0IGtleSA2IGV4aXN0cyBpbiB0aGUgbG9jYWxfY29uZmxp Y3RzJyk7CisKIHBhc3MoJ211bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMgZGV0ZWN0ZWQgZHVyaW5n IHVwZGF0ZScpOwogCiAjIFRydW5jYXRlIHRhYmxlIHRvIGdldCByaWQgb2YgdGhlIGVycm9yCi0t IAoyLjUzLjAKCg== --0000000000003b2574065472a7d4 Content-Type: application/octet-stream; name="v51-0002-Report-error-for-ddls-on-conflict-log-tables.patch" Content-Disposition: attachment; filename="v51-0002-Report-error-for-ddls-on-conflict-log-tables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqi2oat81 RnJvbSA5ZjNlNTNlNGYzMTJjY2U2MTg2NTY5ZTk5ZGM0Mjk5Yzc1NDRjYzdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAxMCBKdW4gMjAyNiAxNjo1Mjo0NiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjUx IDIvNl0gUmVwb3J0IGVycm9yIGZvciBkZGxzIG9uIGNvbmZsaWN0IGxvZyB0YWJsZXMKCi0tLQog c3JjL2JhY2tlbmQvY29tbWFuZHMvbG9ja2NtZHMuYyAgICAgfCAyNCArKysrKysrKysrCiBzcmMv YmFja2VuZC9jb21tYW5kcy9wb2xpY3kuYyAgICAgICB8IDEyICsrKysrCiBzcmMvYmFja2VuZC9j b21tYW5kcy9zdGF0c2NtZHMuYyAgICB8IDEyICsrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyAgICB8IDczICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFj a2VuZC9jb21tYW5kcy90cmlnZ2VyLmMgICAgICB8IDI1ICsrKysrKysrKysKIHNyYy9iYWNrZW5k L3Jld3JpdGUvcmV3cml0ZURlZmluZS5jIHwgMjIgKysrKysrKysrCiA2IGZpbGVzIGNoYW5nZWQs IDE2OCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbG9j a2NtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2xvY2tjbWRzLmMKaW5kZXggZjY2YjhmMTdi OWIuLmI3OGNhMTNhNDZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9sb2NrY21k cy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2xvY2tjbWRzLmMKQEAgLTE2LDYgKzE2LDcg QEAKIAogI2luY2x1ZGUgImFjY2Vzcy90YWJsZS5oIgogI2luY2x1ZGUgImFjY2Vzcy94YWN0Lmgi CisjaW5jbHVkZSAiY2F0YWxvZy9jYXRhbG9nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3Bh Y2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2luaGVyaXRzLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvbG9ja2NtZHMuaCIKQEAgLTkyLDYgKzkzLDIyIEBAIFJhbmdlVmFyQ2FsbGJhY2tGb3JMb2Nr VGFibGUoY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwKIAkJCQkJ CXJ2LT5yZWxuYW1lKSwKIAkJCQkgZXJyZGV0YWlsX3JlbGtpbmRfbm90X3N1cHBvcnRlZChyZWxr aW5kKSkpOwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBtYW5hZ2VkIGJ5IHRo ZSBzeXN0ZW0gZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24KKwkgKiBjb25mbGljdHMgYW5kIHNob3Vs ZCBub3QgYmUgbG9ja2VkIGV4cGxpY2l0bHkuIEhvd2V2ZXIsIEFjY2Vzc1NoYXJlTG9jaworCSAq IGlzIGFsbG93ZWQgdG8gc3VwcG9ydCBwZ19kdW1wLCB3aGljaCBtdXN0IGxvY2sgdGFibGVzIHRv IHByZXZlbnQgdGhlbQorCSAqIGZyb20gYmVpbmcgZHJvcHBlZCBvciBhbHRlcmVkIGJldHdlZW4g ZmV0Y2hpbmcgdGhlIHRhYmxlIGxpc3QgYW5kCisJICogcGVyZm9ybWluZyB0aGUgZHVtcC4gVGhp cyByZWFkLW9ubHkgbG9jayBpcyBzYWZlIGJlY2F1c2UgaXQgZG9lcyBub3QKKwkgKiBpbnRlcmZl cmUgd2l0aCBjb25jdXJyZW50IGluc2VydGlvbnMgaW50byB0aGUgY29uZmxpY3QgbG9nIHRhYmxl cy4KKwkgKi8KKwlpZiAoSXNDb25mbGljdExvZ1RhYmxlTmFtZXNwYWNlKGdldF9yZWxfbmFtZXNw YWNlKHJlbGlkKSkgJiYKKwkJbG9ja21vZGUgPiBBY2Nlc3NTaGFyZUxvY2spCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJ CQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRh YmxlIiwKKwkJCQkJCXJ2LT5yZWxuYW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBsb2cg dGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCBhbmQgY2Fubm90IGJlIGxvY2tlZCBleHBsaWNpdGx5 LCBleGNlcHQgaW4gQUNDRVNTIFNIQVJFIG1vZGUuIikpKTsKKwogCS8qCiAJICogTWFrZSBub3Rl IGlmIGEgdGVtcG9yYXJ5IHJlbGF0aW9uIGhhcyBiZWVuIGFjY2Vzc2VkIGluIHRoaXMKIAkgKiB0 cmFuc2FjdGlvbi4KQEAgLTE5OCw2ICsyMTUsMTMgQEAgTG9ja1ZpZXdSZWN1cnNlX3dhbGtlcihO b2RlICpub2RlLCBMb2NrVmlld1JlY3Vyc2VfY29udGV4dCAqY29udGV4dCkKIAkJCQlyZWxraW5k ICE9IFJFTEtJTkRfVklFVykKIAkJCQljb250aW51ZTsKIAorCQkJLyoKKwkJCSAqIENvbmZsaWN0 IGxvZyB0YWJsZXMgYXJlIG1hbmFnZWQgYnkgdGhlIHN5c3RlbSBmb3IgbG9naWNhbAorCQkJICog YW5kIHNob3VsZCBub3QgYmUgbG9ja2VkIGV4cGxpY2l0bHkuCisJCQkgKi8KKwkJCWlmIChJc0Nv bmZsaWN0TG9nVGFibGVOYW1lc3BhY2UoZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpKSkKKwkJCQlj b250aW51ZTsKKwogCQkJLyoKIAkJCSAqIFdlIG1pZ2h0IGJlIGRlYWxpbmcgd2l0aCBhIHNlbGYt cmVmZXJlbnRpYWwgdmlldy4gIElmIHNvLCB3ZQogCQkJICogY2FuIGp1c3Qgc3RvcCByZWN1cnNp bmcsIHNpbmNlIHdlIGFscmVhZHkgbG9ja2VkIGl0LgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvcG9saWN5LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wb2xpY3kuYwppbmRleCAy MWI4ZWViZTMyZC4uMTBlYTU5OWJhYzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3BvbGljeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3BvbGljeS5jCkBAIC03OSw2ICs3 OSwxOCBAQCBSYW5nZVZhckNhbGxiYWNrRm9yUG9saWN5KGNvbnN0IFJhbmdlVmFyICpydiwgT2lk IHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhSZWxhdGlvblJl bGF0aW9uSWQsIHJlbGlkLCBHZXRVc2VySWQoKSkpCiAJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNL X05PVF9PV05FUiwgZ2V0X3JlbGtpbmRfb2JqdHlwZShnZXRfcmVsX3JlbGtpbmQocmVsaWQpKSwg cnYtPnJlbG5hbWUpOwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGlu dGVybmFsbHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFu ZCBzaG91bGQgbm90IGJlIG1vZGlmaWVkIGRpcmVjdGx5LCBhcyBpdCBjb3VsZCBkaXNydXB0CisJ ICogY29uZmxpY3QgbG9nZ2luZy4KKwkgKi8KKwlpZiAoSXNDb25mbGljdExvZ1RhYmxlQ2xhc3Mo Y2xhc3Nmb3JtKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VG RklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVz XCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAorCQkJCQkJcnYtPnJlbG5hbWUpLAorCQkJCSBl cnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBm b3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCS8qIE5vIHN5c3RlbSB0 YWJsZSBtb2RpZmljYXRpb25zIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQuICovCiAJaWYgKCFh bGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCBjbGFzc2Zvcm0pKQog CQllcmVwb3J0KEVSUk9SLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNj bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYwppbmRleCBiMzU0NzIzYmU0 NC4uZjcwOWJmZGZmODcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21k cy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCkBAIC0xNDcsNiArMTQ3 LDE4IEBAIENyZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10LCBib29sIGNoZWNr X3JpZ2h0cykKIAkJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgZ2V0X3JlbGtp bmRfb2JqdHlwZShyZWwtPnJkX3JlbC0+cmVsa2luZCksCiAJCQkJCQkgICBSZWxhdGlvbkdldFJl bGF0aW9uTmFtZShyZWwpKTsKIAorCQkvKgorCQkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSB1 c2VkIGludGVybmFsbHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24KKwkJICogY29uZmxpY3QgbG9n Z2luZyBhbmQgc2hvdWxkIG5vdCBoYXZlIGV4dGVuZGVkIHN0YXRpc3RpY3MsIGFzIGl0CisJCSAq IGNvdWxkIGRpc3J1cHQgY29uZmxpY3QgbG9nZ2luZy4KKwkJICovCisJCWlmIChJc0NvbmZsaWN0 TG9nVGFibGVDbGFzcyhyZWwtPnJkX3JlbCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJy Y29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkgZXJybXNnKCJwZXJt aXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkJCQlS ZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSwKKwkJCQkJIGVycmRldGFpbCgiQ29uZmxpY3Qg bG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0 aW9uIGNvbmZsaWN0cy4iKSkpOworCiAJCS8qIENyZWF0aW5nIHN0YXRpc3RpY3Mgb24gc3lzdGVt IGNhdGFsb2dzIGlzIG5vdCBhbGxvd2VkICovCiAJCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMg JiYgSXNTeXN0ZW1SZWxhdGlvbihyZWwpKQogCQkJZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMKaW5kZXggMzdkMzljMmFlODguLjdhNTcxNTY3NmVkIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYwpAQCAtMjc1MCw2ICsyNzUwLDE4IEBAIE1lcmdlQXR0cmlidXRlcyhMaXN0 ICpjb2x1bW5zLCBjb25zdCBMaXN0ICpzdXBlcnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJCQkJ CSBlcnJtc2coImNhbm5vdCBpbmhlcml0IGZyb20gcGFydGl0aW9uIFwiJXNcIiIsCiAJCQkJCQkJ UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKSkpOwogCisJCS8qCisJCSAqIENvbmZs aWN0IGxvZyB0YWJsZXMgYXJlIG1hbmFnZWQgYnkgdGhlIHN5c3RlbSBmb3IgbG9naWNhbAorCQkg KiByZXBsaWNhdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIHBhcmVudCB0YWJsZXMsIGFz CisJCSAqIGluaGVyaXRhbmNlIGNvdWxkIGludGVyZmVyZSB3aXRoIHRoZSBsb2dnaW5nIGJlaGF2 aW9yLgorCQkgKi8KKwkJaWYgKElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShyZWxhdGlvbi0+ cmRfcmVsLT5yZWxuYW1lc3BhY2UpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJCSBlcnJtc2coImNhbm5vdCBpbmhlcml0 IGZyb20gY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJCQkJCQkJUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsYXRpb24pKSwKKwkJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxl cyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZs aWN0cy4iKSkpOworCiAJCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRf UkVMQVRJT04gJiYKIAkJCXJlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9GT1JF SUdOX1RBQkxFICYmCiAJCQlyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUEFS VElUSU9ORURfVEFCTEUpCkBAIC0zODg3LDYgKzM4OTksMTkgQEAgcmVuYW1lYXR0X2NoZWNrKE9p ZCBteXJlbGlkLCBGb3JtX3BnX2NsYXNzIGNsYXNzZm9ybSwgYm9vbCByZWN1cnNpbmcpCiAJaWYg KCFvYmplY3Rfb3duZXJjaGVjayhSZWxhdGlvblJlbGF0aW9uSWQsIG15cmVsaWQsIEdldFVzZXJJ ZCgpKSkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9v Ymp0eXBlKGdldF9yZWxfcmVsa2luZChteXJlbGlkKSksCiAJCQkJCSAgIE5hbWVTdHIoY2xhc3Nm b3JtLT5yZWxuYW1lKSk7CisKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQg aW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcg YW5kIHNob3VsZCBub3QgYmUgbW9kaWZpZWQgZGlyZWN0bHksIGFzIGl0IGNvdWxkIGRpc3J1cHQK KwkgKiBjb25mbGljdCBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFz cyhjbGFzc2Zvcm0pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5T VUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwi JXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJCQlOYW1lU3RyKGNsYXNzZm9ybS0+ cmVsbmFtZSkpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3Rl bS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsK KwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhteXJlbGlkLCBj bGFzc2Zvcm0pKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZG SUNJRU5UX1BSSVZJTEVHRSksCkBAIC02ODg5LDYgKzY5MTQsMTggQEAgQVRTaW1wbGVQZXJtaXNz aW9ucyhBbHRlclRhYmxlVHlwZSBjbWR0eXBlLCBSZWxhdGlvbiByZWwsIGludCBhbGxvd2VkX3Rh cmdldHMpCiAJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgZ2V0X3JlbGtpbmRf b2JqdHlwZShyZWwtPnJkX3JlbC0+cmVsa2luZCksCiAJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbCkpOwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGlu dGVybmFsbHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFu ZCBzaG91bGQgbm90IGJlIGFsdGVyZWQgZGlyZWN0bHksIGFzIGl0IGNvdWxkIGRpc3J1cHQgY29u ZmxpY3QKKwkgKiBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhy ZWwtPnJkX3JlbCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNV RkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIl c1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25O YW1lKHJlbCkpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3Rl bS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsK KwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1SZWxhdGlvbihyZWwpKQog CQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJ TEVHRSksCkBAIC0xMDE5OCw2ICsxMDIzNSwxOCBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50 KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJ CSBlcnJtc2coInJlZmVyZW5jZWQgcmVsYXRpb24gXCIlc1wiIGlzIG5vdCBhIHRhYmxlIiwKIAkJ CQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHBrcmVsKSkpKTsKIAorCS8qCisJICogQ29uZmxp Y3QgbG9nIHRhYmxlcyBhcmUgdXNlZCBpbnRlcm5hbGx5IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9u IGNvbmZsaWN0CisJICogbG9nZ2luZyBhbmQgc2hvdWxkIG5vdCBiZSByZWZlcmVuY2VkIGJ5IGZv cmVpZ24ga2V5cywgYXMgaXQgY291bGQKKwkgKiBkaXNydXB0IGNvbmZsaWN0IGxvZ2dpbmcuCisJ ICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKHBrcmVsLT5yZF9yZWwpKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSks CisJCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNvbmZsaWN0IGxv ZyB0YWJsZSIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShwa3JlbCkpLAorCQkJCSBl cnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBm b3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCWlmICghYWxsb3dTeXN0 ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1SZWxhdGlvbihwa3JlbCkpCiAJCWVyZXBvcnQoRVJST1Is CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKQEAgLTE5ODE4 LDYgKzE5ODY3LDE4IEBAIFJhbmdlVmFyQ2FsbGJhY2tPd25zUmVsYXRpb24oY29uc3QgUmFuZ2VW YXIgKnJlbGF0aW9uLAogCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIGdldF9y ZWxraW5kX29ianR5cGUoZ2V0X3JlbF9yZWxraW5kKHJlbElkKSksCiAJCQkJCSAgIHJlbGF0aW9u LT5yZWxuYW1lKTsKIAorCS8qCisJICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgdXNlZCBpbnRl cm5hbGx5IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0CisJICogbG9nZ2luZyBhbmQg c2hvdWxkIG5vdCBiZSBtb2RpZmllZCBkaXJlY3RseSwgYXMgaXQgY291bGQgZGlzcnVwdAorCSAq IGNvbmZsaWN0IGxvZ2dpbmcuCisJICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKChG b3JtX3BnX2NsYXNzKSBHRVRTVFJVQ1QodHVwbGUpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJtc2coInBl cm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAorCQkJCQkJ cmVsYXRpb24tPnJlbG5hbWUpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMg YXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGlj dHMuIikpKTsKKwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYKIAkJSXNTeXN0ZW1DbGFz cyhyZWxJZCwgKEZvcm1fcGdfY2xhc3MpIEdFVFNUUlVDVCh0dXBsZSkpKQogCQllcmVwb3J0KEVS Uk9SLApAQCAtMTk4NTMsNiArMTk5MTQsMTggQEAgUmFuZ2VWYXJDYWxsYmFja0ZvckFsdGVyUmVs YXRpb24oY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwKIAlpZiAo IW9iamVjdF9vd25lcmNoZWNrKFJlbGF0aW9uUmVsYXRpb25JZCwgcmVsaWQsIEdldFVzZXJJZCgp KSkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0 eXBlKGdldF9yZWxfcmVsa2luZChyZWxpZCkpLCBydi0+cmVsbmFtZSk7CiAKKwkvKgorCSAqIENv bmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNh dGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3QgYmUgYWx0ZXJlZCBkaXJl Y3RseSwgYXMgaXQgY291bGQgZGlzcnVwdCBjb25mbGljdAorCSAqIGxvZ2dpbmcuCisJICovCisJ aWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKGNsYXNzZm9ybSkpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJy bXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwK KwkJCQkJCXJ2LT5yZWxuYW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBsb2cgdGFibGVz IGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxp Y3RzLiIpKSk7CisKIAkvKiBObyBzeXN0ZW0gdGFibGUgbW9kaWZpY2F0aW9ucyB1bmxlc3MgZXhw bGljaXRseSBhbGxvd2VkLiAqLwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0 ZW1DbGFzcyhyZWxpZCwgY2xhc3Nmb3JtKSkKIAkJZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Ry aWdnZXIuYwppbmRleCBiODdiNGI0MGQwNy4uZGU3OTU3YTE1ZjcgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmln Z2VyLmMKQEAgLTMxNCw2ICszMTQsMTggQEAgQ3JlYXRlVHJpZ2dlckZpcmluZ09uKGNvbnN0IENy ZWF0ZVRyaWdTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJCQkJCVJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpLAogCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3Vw cG9ydGVkKHJlbC0+cmRfcmVsLT5yZWxraW5kKSkpOwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cg dGFibGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxp Y3QKKwkgKiBsb2dnaW5nIGFuZCBzaG91bGQgbm90IGhhdmUgdHJpZ2dlcnMsIGFzIGl0IGNvdWxk IGRpc3J1cHQgY29uZmxpY3QKKwkgKiBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9n VGFibGVDbGFzcyhyZWwtPnJkX3JlbCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJybXNnKCJwZXJtaXNzaW9u IGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkJCVJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCkpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJs ZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25m bGljdHMuIikpKTsKKwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1SZWxh dGlvbihyZWwpKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZG SUNJRU5UX1BSSVZJTEVHRSksCkBAIC0xNDQzLDYgKzE0NTUsMTkgQEAgUmFuZ2VWYXJDYWxsYmFj a0ZvclJlbmFtZVRyaWdnZXIoY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRy ZWxpZCwKIAkvKiB5b3UgbXVzdCBvd24gdGhlIHRhYmxlIHRvIHJlbmFtZSBvbmUgb2YgaXRzIHRy aWdnZXJzICovCiAJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhSZWxhdGlvblJlbGF0aW9uSWQsIHJl bGlkLCBHZXRVc2VySWQoKSkpCiAJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwg Z2V0X3JlbGtpbmRfb2JqdHlwZShnZXRfcmVsX3JlbGtpbmQocmVsaWQpKSwgcnYtPnJlbG5hbWUp OworCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9y IGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFuZCBzaG91bGQgbm90 IGhhdmUgdHJpZ2dlcnMsIGFzIGl0IGNvdWxkIGRpc3J1cHQgY29uZmxpY3QKKwkgKiBsb2dnaW5n LgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhmb3JtKSkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJ CSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFi bGUiLAorCQkJCQkJcnYtPnJlbG5hbWUpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0 YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBj b25mbGljdHMuIikpKTsKKwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1D bGFzcyhyZWxpZCwgZm9ybSkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3Jp dGUvcmV3cml0ZURlZmluZS5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMK aW5kZXggNmEyMjNmYmVhYTQuLmQwMGQ3NjYxM2ExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9y ZXdyaXRlL3Jld3JpdGVEZWZpbmUuYworKysgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVE ZWZpbmUuYwpAQCAtMjYyLDYgKzI2MiwxNyBAQCBEZWZpbmVRdWVyeVJld3JpdGUoY29uc3QgY2hh ciAqcnVsZW5hbWUsCiAJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShldmVudF9yZWxhdGlv bikpLAogCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKGV2ZW50X3JlbGF0aW9u LT5yZF9yZWwtPnJlbGtpbmQpKSk7CiAKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJl IHVzZWQgaW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxv Z2dpbmcgYW5kIHNob3VsZCBub3QgaGF2ZSBydWxlcywgYXMgaXQgY291bGQgZGlzcnVwdCBjb25m bGljdCBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhldmVudF9y ZWxhdGlvbi0+cmRfcmVsKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RF X0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVk OiBcIiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAorCQkJCQkJUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUoZXZlbnRfcmVsYXRpb24pKSwKKwkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBsb2cg dGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24g Y29uZmxpY3RzLiIpKSk7CisKIAlpZiAoIWFsbG93U3lzdGVtVGFibGVNb2RzICYmIElzU3lzdGVt UmVsYXRpb24oZXZlbnRfcmVsYXRpb24pKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCkBAIC03NzIsNiArNzgzLDE3IEBAIFJh bmdlVmFyQ2FsbGJhY2tGb3JSZW5hbWVSdWxlKGNvbnN0IFJhbmdlVmFyICpydiwgT2lkIHJlbGlk LCBPaWQgb2xkcmVsaWQsCiAJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGNhbm5vdCBoYXZl IHJ1bGVzIiwgcnYtPnJlbG5hbWUpLAogCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9y dGVkKGZvcm0tPnJlbGtpbmQpKSk7CiAKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJl IHVzZWQgaW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxv Z2dpbmcgYW5kIHNob3VsZCBub3QgaGF2ZSBydWxlcywgYXMgaXQgY291bGQgZGlzcnVwdCBjb25m bGljdCBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhmb3JtKSkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklW SUxFR0UpLAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25m bGljdCBsb2cgdGFibGUiLAorCQkJCQkJcnYtPnJlbG5hbWUpLAorCQkJCSBlcnJkZXRhaWwoIkNv bmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCBy ZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMg JiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwgZm9ybSkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKLS0gCjIuNTMuMAoK --0000000000003b2574065472a7d4 Content-Type: application/octet-stream; name="v51-0004-Preserve-conflict-log-destination-and-subscripti.patch" Content-Disposition: attachment; filename="v51-0004-Preserve-conflict-log-destination-and-subscripti.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqi2oatg3 RnJvbSA2MDk1YmVmZDRmOTU4MzExY2UxNDdhNTMzOTYzZDI3NTE5NGM5ZDk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogRnJpLCA1IEp1biAyMDI2IDE1OjUxOjIyICswNTMwClN1YmplY3Q6IFtQQVRDSCB2NTEg NC82XSBQcmVzZXJ2ZSBjb25mbGljdCBsb2cgZGVzdGluYXRpb24gYW5kIHN1YnNjcmlwdGlvbgog T0lEIGZvciBzdWJzY3JpcHRpb25zCgpTdXBwb3J0IHBnX2R1bXAgdG8gZHVtcCBhbmQgcmVzdG9y ZSB0aGUgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHNldHRpbmcgZm9yCnN1YnNjcmlwdGlvbnMu CgpEdXJpbmcgYSBub3JtYWwgQ1JFQVRFIFNVQlNDUklQVElPTiwgYSBjb25mbGljdCBsb2cgdGFi bGUgaXMgY3JlYXRlZAphdXRvbWF0aWNhbGx5IHdoZW4gcmVxdWlyZWQuIEhvd2V2ZXIsIGR1cmlu ZyBiaW5hcnkgdXBncmFkZSwgdGhlIGNvbmZsaWN0CmxvZyB0YWJsZSB3aWxsIGFscmVhZHkgZXhp c3QgYW5kIG11c3QgYmUgcmV1c2VkIHJhdGhlciB0aGFuIHJlY3JlYXRlZCwgYW5kCnRoZSBzdWJz Y3JpcHRpb24gbXVzdCByZXRhaW4gaXRzIG9yaWdpbmFsIE9JRCB0byBjb3JyZWN0bHkgcmUtZXN0 YWJsaXNoCmNhdGFsb2cgcmVsYXRpb25zaGlwcy4KClRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2aW9y LCBwZ19kdW1wIG5vdyBlbWl0cyBhbiBBTFRFUiBTVUJTQ1JJUFRJT04gY29tbWFuZAphZnRlciBz dWJzY3JpcHRpb24gY3JlYXRpb24gdG8gcmVzdG9yZSB0aGUgY29uZmxpY3RfbG9nX2Rlc3RpbmF0 aW9uIHNldHRpbmcuCgpUT0RPOiBFbnN1cmUgYWxsIDE5MDAwMCBzZXJpZXMgcmVmZXJlbmNlcyBh cmUgdXBkYXRlZCB0byAyMDAwMDAKd2hlbiB0aGUgdmVyc2lvbiBudW1iZXIgaXMgYnVtcGVkLgot LS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAgICAgICAgICAgICAgICB8ICAgNCAr LQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgICAgIHwgIDU2ICsr KysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMgICAgfCAg IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYyAgICB8ICAx MCArKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTI1 ICsrKysrKysrKysrKysrKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAg ICAgICAgICAgIHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAg ICAgICAgICB8ICAzMSArKysrKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAg ICAgICAgICAgIHwgICA1ICstCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jICAgICAg ICAgICAgICAgfCAgIDQgKwogc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5w bCAgICAgIHwgIDE0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL2JpbmFyeV91cGdyYWRlLmggICAg ICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAg ICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggICAgICAg ICB8ICAgMyArCiAuLi4vZXhwZWN0ZWQvc3BnaXN0X25hbWVfb3BzLm91dCAgICAgICAgICAgICAg fCAgIDYgKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDI1MCBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IDVkMDdkY2MxYzViLi4xZDliZDkwM2E1MSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9oZWFwLmMKQEAgLTMxMiw2ICszMTIsOCBAQCBoZWFwX2NyZWF0ZShjb25zdCBjaGFyICpyZWxu YW1lLAogCSAqIEJ1dCBhbGxvdyBjcmVhdGluZyBpbmRleGVzIG9uIHJlbGF0aW9ucyBpbiBwZ19j YXRhbG9nIGV2ZW4gaWYKIAkgKiBhbGxvd19zeXN0ZW1fdGFibGVfbW9kcyA9IG9mZiwgdXBwZXIg bGF5ZXJzIGFscmVhZHkgZ3VhcmFudGVlIGl0J3Mgb24gYQogCSAqIHVzZXIgZGVmaW5lZCByZWxh dGlvbiwgbm90IGEgc3lzdGVtIG9uZS4KKwkgKgorCSAqIEFsbG93IGNyZWF0aW9uIG9mIHRoZSBj b25mbGljdCBsb2cgdGFibGUgaW4gYmluYXJ5LXVwZ3JhZGUgbW9kZS4KIAkgKi8KIAlpZiAoIWFs bG93X3N5c3RlbV90YWJsZV9tb2RzICYmIElzTm9ybWFsUHJvY2Vzc2luZ01vZGUoKSkKIAl7CkBA IC0zMjMsNyArMzI1LDcgQEAgaGVhcF9jcmVhdGUoY29uc3QgY2hhciAqcmVsbmFtZSwKIAkJCQkJ CQlnZXRfcXVhbGlmaWVkX29iam5hbWUocmVsbmFtZXNwYWNlLCByZWxuYW1lKSksCiAJCQkJCSBl cnJkZXRhaWwoIlN5c3RlbSBjYXRhbG9nIG1vZGlmaWNhdGlvbnMgYXJlIGN1cnJlbnRseSBkaXNh bGxvd2VkLiIpKSk7CiAKLQkJaWYgKElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShyZWxuYW1l c3BhY2UpKQorCQlpZiAoIUlzQmluYXJ5VXBncmFkZSAmJiBJc0NvbmZsaWN0TG9nVGFibGVOYW1l c3BhY2UocmVsbmFtZXNwYWNlKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVS UkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCiAJCQkJCSBlcnJtc2coInBlcm1pc3Npb24g ZGVuaWVkIHRvIGNyZWF0ZSBcIiVzXCIiLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9u Y21kcy5jCmluZGV4IDcxOGI0YTUyYjk4Li5jYWFiMTViNzBkYyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgImFjY2Vz cy90YWJsZS5oIgogI2luY2x1ZGUgImFjY2Vzcy90d29waGFzZS5oIgogI2luY2x1ZGUgImFjY2Vz cy94YWN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9iaW5hcnlfdXBncmFkZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvZGVwZW5kZW5jeS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKQEAgLTg2LDYgKzg3LDEyIEBACiAvKiBjaGVjayBp ZiB0aGUgJ3ZhbCcgaGFzICdiaXRzJyBzZXQgKi8KICNkZWZpbmUgSXNTZXQodmFsLCBiaXRzKSAg KCgodmFsKSAmIChiaXRzKSkgPT0gKGJpdHMpKQogCisvKgorICogVGhpcyB3aWxsIGJlIHNldCBi eSB0aGUgcGdfdXBncmFkZV9zdXBwb3J0IGZ1bmN0aW9uIC0tCisgKiBiaW5hcnlfdXBncmFkZV9z ZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkKCkuCisgKi8KK09pZAkJCWJpbmFyeV91cGdyYWRl X25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCA9IEludmFsaWRPaWQ7CisKIC8qCiAgKiBTdHJ1Y3R1 cmUgdG8gaG9sZCBhIGJpdG1hcCByZXByZXNlbnRpbmcgdGhlIHVzZXItcHJvdmlkZWQgQ1JFQVRF L0FMVEVSCiAgKiBTVUJTQ1JJUFRJT04gY29tbWFuZCBvcHRpb25zIGFuZCB0aGUgcGFyc2VkL2Rl ZmF1bHQgdmFsdWVzIG9mIGVhY2ggb2YgdGhlbS4KQEAgLTgyOCw4ICs4MzUsMjEgQEAgQ3JlYXRl U3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAq c3RtdCwKIAltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CiAJbWVtc2V0KG51bGxz LCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CiAKLQlzdWJpZCA9IEdldE5ld09pZFdpdGhJbmRleChy ZWwsIFN1YnNjcmlwdGlvbk9iamVjdEluZGV4SWQsCi0JCQkJCQkJICAgQW51bV9wZ19zdWJzY3Jp cHRpb25fb2lkKTsKKwkvKiBVc2UgYmluYXJ5LXVwZ3JhZGUgb3ZlcnJpZGUgZm9yIHBnX3N1YnNj cmlwdGlvbi5vaWQ/ICovCisJaWYgKElzQmluYXJ5VXBncmFkZSkKKwl7CisJCWlmICghT2lkSXNW YWxpZChiaW5hcnlfdXBncmFkZV9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQpKQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSks CisJCQkJCSBlcnJtc2coInBnX3N1YnNjcmlwdGlvbiBPSUQgdmFsdWUgbm90IHNldCB3aGVuIGlu IGJpbmFyeSB1cGdyYWRlIG1vZGUiKSkpOworCisJCXN1YmlkID0gYmluYXJ5X3VwZ3JhZGVfbmV4 dF9wZ19zdWJzY3JpcHRpb25fb2lkOworCQliaW5hcnlfdXBncmFkZV9uZXh0X3BnX3N1YnNjcmlw dGlvbl9vaWQgPSBJbnZhbGlkT2lkOworCX0KKwllbHNlCisJCXN1YmlkID0gR2V0TmV3T2lkV2l0 aEluZGV4KHJlbCwgU3Vic2NyaXB0aW9uT2JqZWN0SW5kZXhJZCwKKwkJCQkJCQkJICAgQW51bV9w Z19zdWJzY3JpcHRpb25fb2lkKTsKKwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9vaWQg LSAxXSA9IE9iamVjdElkR2V0RGF0dW0oc3ViaWQpOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlw dGlvbl9zdWJkYmlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKE15RGF0YWJhc2VJZCk7CiAJdmFs dWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YnNraXBsc24gLSAxXSA9IExTTkdldERhdHVtKElu dmFsaWRYTG9nUmVjUHRyKTsKQEAgLTE1NDEsMTggKzE1NjEsNDAgQEAgYWx0ZXJfc3ViX2NvbmZs aWN0X2xvZ19kZXN0KFN1YnNjcmlwdGlvbiAqc3ViLCBDb25mbGljdExvZ0Rlc3Qgb2xkbG9nZGVz dCwKIAkJewogCQkJT2JqZWN0QWRkcmVzcyBjbHRhZGRyOwogCQkJT2JqZWN0QWRkcmVzcyBzdWJv Ymo7CisJCQljaGFyICAgICAgICAgIHJlbG5hbWVbTkFNRURBVEFMRU5dOwogCi0JCQlyZWxpZCA9 IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFtZSwgc3ViLT5vd25l cik7Ci0JCQl1cGRhdGVfcmVsaWQgPSB0cnVlOworCQkJc25wcmludGYocmVsbmFtZSwgTkFNRURB VEFMRU4sIENPTkZMSUNUX0xPR19SRUxBVElPTl9OQU1FX0ZNVCwgc3ViLT5vaWQpOwogCiAJCQkv KgotCQkJICogRXN0YWJsaXNoIGFuIGludGVybmFsIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlCi0JCQkgKiBhbmQgdGhlIHN1YnNjcmlwdGlvbi4gIEZvciBkZXRhaWxz IHJlZmVyIGNvbW1lbnRzIGluCi0JCQkgKiBDcmVhdGVTdWJzY3JpcHRpb24gZnVuY3Rpb24uCisJ CQkgKiBJbiB1cGdyYWRlIHNjZW5hcmlvcywgb2xkX2Rlc3QgcmVmbGVjdHMgdGhlIGRlZmF1bHQg YmVoYXZpb3Igb2YKKwkJCSAqIGEgbmV3bHkgY3JlYXRlZCBzdWJzY3JpcHRpb24gKGkuZS4sIG5v IGNvbmZsaWN0IGxvZ2dpbmcgdG8KKwkJCSAqIHRhYmxlKSBIb3dldmVyLCB0aGUgY29uZmxpY3Qg bG9nIHRhYmxlIHdpbGwgYWxyZWFkeSBleGlzdCBmcm9tCisJCQkgKiB0aGUgdXBncmFkZWQgY2x1 c3Rlci4gIEluIHN1Y2ggY2FzZXMsIHdlIG5lZWQgdG8gZGV0ZWN0IHRoZQorCQkJICogcHJlLWV4 aXN0aW5nIHRhYmxlIGFuZCB1cGRhdGUgdGhlIGNhdGFsb2cgc3RhdGUgdG8gYXNzb2NpYXRlIGl0 CisJCQkgKiB3aXRoIHRoZSBzdWJzY3JpcHRpb24gaW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBv bmUuCisJCQkgKi8KKwkJCXJlbGlkID0gZ2V0X3JlbG5hbWVfcmVsaWQocmVsbmFtZSwgUEdfQ09O RkxJQ1RfTkFNRVNQQUNFKTsKKwkJCWlmIChPaWRJc1ZhbGlkKHJlbGlkKSkKKwkJCXsKKwkJCQkv KiBFeGlzdGluZyB0YWJsZSBmcm9tIHVwZ3JhZGUgKi8KKwkJCQlBc3NlcnQoSXNCaW5hcnlVcGdy YWRlKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9s b2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFtZSwKKwkJCQkJCQkJCQkJCSAgc3ViLT5vd25lcik7 CisJCQl9CisKKwkJCS8qCisJCQkgKiBFc3RhYmxpc2ggYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSBi ZXR3ZWVuIHRoZSBjb25mbGljdCBsb2cKKwkJCSAqIHRhYmxlIGFuZCB0aGUgc3Vic2NyaXB0aW9u LiAgUmVmZXIgdG8gY29tbWVudHMgaW4gdGhlCisJCQkgKiBDcmVhdGVTdWJzY3JpcHRpb24gZnVu Y3Rpb24gZm9yIGRldGFpbHMuCiAJCQkgKi8KIAkJCU9iamVjdEFkZHJlc3NTZXQoY2x0YWRkciwg UmVsYXRpb25SZWxhdGlvbklkLCByZWxpZCk7CiAJCQlPYmplY3RBZGRyZXNzU2V0KHN1Ym9iaiwg U3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViLT5vaWQpOwogCQkJcmVjb3JkRGVwZW5kZW5jeU9u KCZjbHRhZGRyLCAmc3Vib2JqLCBERVBFTkRFTkNZX0lOVEVSTkFMKTsKKworCQkJdXBkYXRlX3Jl bGlkID0gdHJ1ZTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9jb25mbGljdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9j b25mbGljdC5jCmluZGV4IDZiZjNkNmQ1YTQ0Li40Y2FkMGVhZjcwYyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpAQCAtMTc4LDcgKzE3OCw3IEBAIGNyZWF0 ZV9jb25mbGljdF9sb2dfdGFibGUoT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1lLCBPaWQgc3Vib3du ZXIpCiAJT2lkCQkJcmVsaWQ7CiAJY2hhciAgICAJcmVsbmFtZVtOQU1FREFUQUxFTl07CiAKLQlz bnByaW50ZihyZWxuYW1lLCBOQU1FREFUQUxFTiwgInBnX2NvbmZsaWN0X2xvZ18ldSIsIHN1Ymlk KTsKKwlzbnByaW50ZihyZWxuYW1lLCBOQU1FREFUQUxFTiwgQ09ORkxJQ1RfTE9HX1JFTEFUSU9O X05BTUVfRk1ULCBzdWJpZCk7CiAKIAkvKgogCSAqIENoZWNrIGZvciBhbiBleGlzdGluZyB0YWJs ZSB3aXRoIHRoZSBzYW1lIG5hbWUgaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZS4KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYwppbmRleCBiNTA1YTZiNGZlZS4u NTljM2U3ZjAxNDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRl X3N1cHBvcnQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0 LmMKQEAgLTE4MSw2ICsxODEsMTYgQEAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfYXV0aGlk X29pZChQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9WT0lEKCk7CiB9CiAKK0RhdHVtCiti aW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkKFBHX0ZVTkNUSU9OX0FS R1MpCit7CisJT2lkCQkJc3ViaWQgPSBQR19HRVRBUkdfT0lEKDApOworCisJQ0hFQ0tfSVNfQklO QVJZX1VQR1JBREU7CisJYmluYXJ5X3VwZ3JhZGVfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkID0g c3ViaWQ7CisJUEdfUkVUVVJOX1ZPSUQoKTsKK30KKwogRGF0dW0KIGJpbmFyeV91cGdyYWRlX2Ny ZWF0ZV9lbXB0eV9leHRlbnNpb24oUEdfRlVOQ1RJT05fQVJHUykKIHsKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4 IGEwZjdmOGUyMTY4Li5hMmQ2NjJhYzY5ZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0xOTgxLDYgKzE5ODEs OCBAQCBjaGVja0V4dGVuc2lvbk1lbWJlcnNoaXAoRHVtcGFibGVPYmplY3QgKmRvYmosIEFyY2hp dmUgKmZvdXQpCiBzdGF0aWMgdm9pZAogc2VsZWN0RHVtcGFibGVOYW1lc3BhY2UoTmFtZXNwYWNl SW5mbyAqbnNpbmZvLCBBcmNoaXZlICpmb3V0KQogeworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91 dC0+ZG9wdDsKKwogCS8qCiAJICogRFVNUF9DT01QT05FTlRfREVGSU5JVElPTiB0eXBpY2FsbHkg aW1wbGllcyBhIENSRUFURSBTQ0hFTUEgc3RhdGVtZW50CiAJICogYW5kIChmb3IgLS1jbGVhbikg YSBEUk9QIFNDSEVNQSBzdGF0ZW1lbnQuICAoSW4gdGhlIGFic2VuY2Ugb2YKQEAgLTIwMTAsNiAr MjAxMiwzMiBAQCBzZWxlY3REdW1wYWJsZU5hbWVzcGFjZShOYW1lc3BhY2VJbmZvICpuc2luZm8s IEFyY2hpdmUgKmZvdXQpCiAJCSAqLwogCQluc2luZm8tPmRvYmouZHVtcF9jb250YWlucyA9IG5z aW5mby0+ZG9iai5kdW1wID0gRFVNUF9DT01QT05FTlRfQUNMOwogCX0KKwllbHNlIGlmIChzdHJj bXAobnNpbmZvLT5kb2JqLm5hbWUsICJwZ19jb25mbGljdCIpID09IDApCisJeworCQlpZiAoZG9w dC0+YmluYXJ5X3VwZ3JhZGUpCisJCXsKKwkJCS8qCisJCQkgKiBUaGUgcGdfY29uZmxpY3Qgc2No ZW1hIGlzIGEgc3RyYW5nZSBiZWFzdCB0aGF0IHNpdHMgaW4gYSBzb3J0CisJCQkgKiBvZiBuby1t YW5zLWxhbmQgYmV0d2VlbiBiZWluZyBhIHN5c3RlbSBvYmplY3QgYW5kIGEgdXNlcgorCQkJICog b2JqZWN0LiBDUkVBVEUgU0NIRU1BIHdvdWxkIGZhaWwsIHNvIGl0cworCQkJICogRFVNUF9DT01Q T05FTlRfREVGSU5JVElPTiBpcyBqdXN0IGEgY29tbWVudC4KKwkJCSAqLworCQkJbnNpbmZvLT5j cmVhdGUgPSBmYWxzZTsKKwkJCW5zaW5mby0+ZG9iai5kdW1wID0gRFVNUF9DT01QT05FTlRfQUxM OworCQkJbnNpbmZvLT5kb2JqLmR1bXAgJj0gfkRVTVBfQ09NUE9ORU5UX0RFRklOSVRJT047CisJ CQluc2luZm8tPmRvYmouZHVtcF9jb250YWlucyA9IERVTVBfQ09NUE9ORU5UX0FMTDsKKworCQkJ LyoKKwkJCSAqIEFsc28sIG1ha2UgbGlrZSBpdCBoYXMgYSBjb21tZW50IGV2ZW4gaWYgaXQgZG9l c24ndDsgdGhpcyBpcyBzbworCQkJICogdGhhdCB3ZSdsbCBlbWl0IGEgY29tbWFuZCB0byBkcm9w IHRoZSBjb21tZW50LCBpZiBhcHByb3ByaWF0ZS4KKwkJCSAqIChXaXRob3V0IHRoaXMsIHdlJ2Qg bm90IGNhbGwgZHVtcENvbW1lbnRFeHRlbmRlZCBmb3IgaXQuKQorCQkJICovCisJCQluc2luZm8t PmRvYmouY29tcG9uZW50cyB8PSBEVU1QX0NPTVBPTkVOVF9DT01NRU5UOworCQl9CisJCWVsc2UK KwkJCW5zaW5mby0+ZG9iai5kdW1wX2NvbnRhaW5zID0gbnNpbmZvLT5kb2JqLmR1bXAgPQorCQkJ CURVTVBfQ09NUE9ORU5UX05PTkU7CisJfQogCWVsc2UgaWYgKHN0cm5jbXAobnNpbmZvLT5kb2Jq Lm5hbWUsICJwZ18iLCAzKSA9PSAwIHx8CiAJCQkgc3RyY21wKG5zaW5mby0+ZG9iai5uYW1lLCAi aW5mb3JtYXRpb25fc2NoZW1hIikgPT0gMCkKIAl7CkBAIC0yMDY3LDkgKzIwOTUsMzggQEAgc2Vs ZWN0RHVtcGFibGVOYW1lc3BhY2UoTmFtZXNwYWNlSW5mbyAqbnNpbmZvLCBBcmNoaXZlICpmb3V0 KQogc3RhdGljIHZvaWQKIHNlbGVjdER1bXBhYmxlVGFibGUoVGFibGVJbmZvICp0YmluZm8sIEFy Y2hpdmUgKmZvdXQpCiB7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCiAJaWYg KGNoZWNrRXh0ZW5zaW9uTWVtYmVyc2hpcCgmdGJpbmZvLT5kb2JqLCBmb3V0KSkKIAkJcmV0dXJu OwkJCQkJLyogZXh0ZW5zaW9uIG1lbWJlcnNoaXAgb3ZlcnJpZGVzIGFsbCBlbHNlICovCiAKKwlp ZiAoc3RyY21wKHRiaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwgInBnX2NvbmZsaWN0 IikgPT0gMCkKKwl7CisJCS8qCisJCSAqIER1bXAgcGdfY29uZmxpY3QgdGFibGVzIG9ubHkgZHVy aW5nIGJpbmFyeSB1cGdyYWRlLiBUaGUgc2NoZW1hIGlzCisJCSAqIGFzc3VtZWQgdG8gYWxyZWFk eSBleGlzdC4KKwkJICovCisJCWlmIChkb3B0LT5iaW5hcnlfdXBncmFkZSkKKwkJeworCQkJdGJp bmZvLT5kb2JqLmR1bXAgPSBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OOworCisJCQkvKgorCQkJ ICogU3VwcHJlc3MgdGhlICJBTFRFUiBUQUJMRSAuLi4gT1dORVIgVE8gLi4uIiBjb21tYW5kIGZv ciB0aGlzCisJCQkgKiB0YWJsZS4gVGhpcyBwcmV2ZW50cyBwZ19kdW1wIGZyb20gb3V0cHV0dGlu ZyB0aGUgb3duZXIgY2hhbmdlLgorCQkJICovCisJCQl0YmluZm8tPnJvbG5hbWUgPSBOVUxMOwor CQl9CisJCWVsc2UKKwkJCXRiaW5mby0+ZG9iai5kdW1wID0gRFVNUF9DT01QT05FTlRfTk9ORTsK KworCQkvKgorCQkgKiBEbyBub3QgYXBwbHkgdGFibGUgc2VsZWN0aW9uIG9yIGV4Y2x1c2lvbiBy dWxlcyB0byBwZ19jb25mbGljdAorCQkgKiB0YWJsZXMuIER1cmluZyBiaW5hcnkgdXBncmFkZSwg dGhlc2UgdGFibGVzIGFyZSBkdW1wZWQgdG8gcHJlc2VydmUKKwkJICogY2F0YWxvZyBzdGF0ZTsg b3RoZXJ3aXNlLCB0aGV5IGFyZSBub3QgZHVtcGVkIGF0IGFsbC4KKwkJICovCisJCXJldHVybjsK Kwl9CisKIAkvKgogCSAqIElmIHNwZWNpZmljIHRhYmxlcyBhcmUgYmVpbmcgZHVtcGVkLCBkdW1w IGp1c3QgdGhvc2UgdGFibGVzOyBlbHNlLCBkdW1wCiAJICogYWNjb3JkaW5nIHRvIHRoZSBwYXJl bnQgbmFtZXNwYWNlJ3MgZHVtcCBmbGFnLgpAQCAtNTE4NCw2ICs1MjQxLDggQEAgZ2V0U3Vic2Ny aXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCWludAkJCWlfc3ViZmFpbG92ZXI7CiAJaW50CQkJaV9z dWJyZXRhaW5kZWFkdHVwbGVzOwogCWludAkJCWlfc3VibWF4cmV0ZW50aW9uOworCWludAkJCWlf c3ViY29uZmxpY3Rsb2dyZWxpZDsKKwlpbnQJCQlpX3N1YmxvZ2Rlc3RpbmF0aW9uOwogCWludAkJ CWksCiAJCQkJbnR1cHM7CiAKQEAgLTUyODIsOSArNTM0MSwxNiBAQCBnZXRTdWJzY3JpcHRpb25z KEFyY2hpdmUgKmZvdXQpCiAJCQkJCQkJICIgJy0xJyBBUyBzdWJ3YWxyY3Z0aW1lb3V0LFxuIik7 CiAKIAlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxOTAwMDApCi0JCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LCAiIGZzLnNydm5hbWUgQVMgc3Vic2VydmVybmFtZVxuIik7CisJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIGZzLnNydm5hbWUgQVMgc3Vic2VydmVybmFtZSxcbiIp OworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgTlVMTCBBUyBzdWJzZXJ2 ZXJuYW1lLFxuIik7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxOTAwMDApCisJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiIHMuc3ViY29uZmxpY3Rsb2dyZWxp ZCwgcy5zdWJjb25mbGljdGxvZ2Rlc3RcbiIpOwogCWVsc2UKLQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksICIgTlVMTCBBUyBzdWJzZXJ2ZXJuYW1lXG4iKTsKKwkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIocXVlcnksCisJCQkJCQkJICIgTlVMTCBBUyBzdWJjb25mbGljdGxvZ3JlbGlkLCBOVUxM IEFTIHN1YmNvbmZsaWN0bG9nZGVzdFxuIik7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVy eSwKIAkJCQkJCSAiRlJPTSBwZ19zdWJzY3JpcHRpb24gc1xuIik7CkBAIC01MzMzLDYgKzUzOTks OCBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJaV9zdWJwdWJsaWNhdGlvbnMg PSBQUWZudW1iZXIocmVzLCAic3VicHVibGljYXRpb25zIik7CiAJaV9zdWJvcmlnaW4gPSBQUWZu dW1iZXIocmVzLCAic3Vib3JpZ2luIik7CiAJaV9zdWJvcmlnaW5yZW1vdGVsc24gPSBQUWZudW1i ZXIocmVzLCAic3Vib3JpZ2lucmVtb3RlbHNuIik7CisJaV9zdWJjb25mbGljdGxvZ3JlbGlkID0g UFFmbnVtYmVyKHJlcywgInN1YmNvbmZsaWN0bG9ncmVsaWQiKTsKKwlpX3N1YmxvZ2Rlc3RpbmF0 aW9uID0gUFFmbnVtYmVyKHJlcywgInN1YmNvbmZsaWN0bG9nZGVzdCIpOwogCiAJc3ViaW5mbyA9 IHBnX21hbGxvY19hcnJheShTdWJzY3JpcHRpb25JbmZvLCBudHVwcyk7CiAKQEAgLTUzOTEsNiAr NTQ1OSwzMiBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJCQlzdWJpbmZvW2ld LnN1Ym9yaWdpbnJlbW90ZWxzbiA9CiAJCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3N1Ym9yaWdpbnJlbW90ZWxzbikpOwogCisJCWlmIChQUWdldGlzbnVsbChyZXMsIGksIGlfc3Vi Y29uZmxpY3Rsb2dyZWxpZCkpCisJCQlzdWJpbmZvW2ldLnN1YmNvbmZsaWN0bG9ncmVsaWQgPSBJ bnZhbGlkT2lkOworCQllbHNlCisJCXsKKwkJCXN1YmluZm9baV0uc3ViY29uZmxpY3Rsb2dyZWxp ZCA9CisJCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1YmNvbmZsaWN0bG9ncmVsaWQp KTsKKworCQkJaWYgKHN1YmluZm9baV0uc3ViY29uZmxpY3Rsb2dyZWxpZCkKKwkJCXsKKwkJCQlU YWJsZUluZm8gICp0YWJsZUluZm87CisKKwkJCQl0YWJsZUluZm8gPSBmaW5kVGFibGVCeU9pZChz dWJpbmZvW2ldLnN1YmNvbmZsaWN0bG9ncmVsaWQpOworCQkJCWlmICghdGFibGVJbmZvKQorCQkJ CQlwZ19mYXRhbCgiY291bGQgbm90IGZpbmQgY29uZmxpY3QgbG9nIHRhYmxlIHdpdGggT0lEICV1 IiwKKwkJCQkJCQkgc3ViaW5mb1tpXS5zdWJjb25mbGljdGxvZ3JlbGlkKTsKKworCQkJCWFkZE9i amVjdERlcGVuZGVuY3koJnN1YmluZm9baV0uZG9iaiwgdGFibGVJbmZvLT5kb2JqLmR1bXBJZCk7 CisJCQl9CisJCX0KKworCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3N1YmxvZ2Rlc3RpbmF0 aW9uKSkKKwkJCXN1YmluZm9baV0uc3ViY29uZmxpY3Rsb2dkZXN0ID0gTlVMTDsKKwkJZWxzZQor CQkJc3ViaW5mb1tpXS5zdWJjb25mbGljdGxvZ2Rlc3QgPQorCQkJCXBnX3N0cmR1cChQUWdldHZh bHVlKHJlcywgaSwgaV9zdWJsb2dkZXN0aW5hdGlvbikpOworCiAJCS8qIERlY2lkZSB3aGV0aGVy IHdlIHdhbnQgdG8gZHVtcCBpdCAqLwogCQlzZWxlY3REdW1wYWJsZU9iamVjdCgmKHN1YmluZm9b aV0uZG9iaiksIGZvdXQpOwogCX0KQEAgLTU1ODMsNiArNTY3NywxNCBAQCBkdW1wU3Vic2NyaXB0 aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pCiAJYXBw ZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRST1AgU1VCU0NSSVBUSU9OICVzO1xuIiwKIAkJCQkJICBx c3VibmFtZSk7CiAKKwlpZiAoZG9wdC0+YmluYXJ5X3VwZ3JhZGUpCisJeworCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwgIlxuLS0gRm9yIGJpbmFyeSB1cGdyYWRlLCBtdXN0IHByZXNlcnZl IHBnX3N1YnNjcmlwdGlvbi5vaWRcbiIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJ CQkJCSAgIlNFTEVDVCBwZ19jYXRhbG9nLmJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNj cmlwdGlvbl9vaWQoJyV1Jzo6cGdfY2F0YWxvZy5vaWQpO1xuXG4iLAorCQkJCQkJICBzdWJpbmZv LT5kb2JqLmNhdElkLm9pZCk7CisJfQorCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVB VEUgU1VCU0NSSVBUSU9OICVzICIsCiAJCQkJCSAgcXN1Ym5hbWUpOwogCWlmIChzdWJpbmZvLT5z dWJzZXJ2ZXJuYW1lKQpAQCAtNTY1Niw2ICs1NzU4LDI1IEBAIGR1bXBTdWJzY3JpcHRpb24oQXJj aGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5mbyAqc3ViaW5mbykKIAogCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LCAiKTtcbiIpOwogCisJLyoKKwkgKiBSZXN0b3JlIHRoZSBjb25m bGljdCBsb2cgZGVzdGluYXRpb24gc2VwYXJhdGVseSBmcm9tIENSRUFURSBTVUJTQ1JJUFRJT04u CisJICogU2V0dGluZyBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gdG8gJ3RhYmxlJyBtYXkgY3Jl YXRlIGFuZCBhc3NvY2lhdGUKKwkgKiBhIGNvbmZsaWN0IGxvZyB0YWJsZSB3aG9zZSBuYW1lIGlz IGRlcml2ZWQgZnJvbSB0aGUgc3Vic2NyaXB0aW9uIE9JRC4KKwkgKiBTaW5jZSB0aGUgc3Vic2Ny aXB0aW9uIG11c3QgYWxyZWFkeSBleGlzdCBiZWZvcmUgdGhhdCBPSUQgaXMga25vd24sCisJICog ZW1pdCB0aGlzIGFzIGEgc2VwYXJhdGUgQUxURVIgU1VCU0NSSVBUSU9OIHNvIHRoYXQgYW55IHJl cXVpcmVkIGNvbmZsaWN0CisJICogbG9nIHRhYmxlIGNhbiBiZSBjcmVhdGVkIGFuZCBsaW5rZWQg YWZ0ZXIgdGhlIHN1YnNjcmlwdGlvbiBpdHNlbGYgaGFzCisJICogYmVlbiByZXN0b3JlZC4KKwkg KgorCSAqIFdlIHNraXAgdGhlIGRlZmF1bHQgdmFsdWUgKCdsb2cnKSB0byBtYXRjaCB0aGUgaGFu ZGxpbmcgb2Ygb3RoZXIKKwkgKiBzdWJzY3JpcHRpb24gb3B0aW9ucy4KKwkgKi8KKwlpZiAoc3Vi aW5mby0+c3ViY29uZmxpY3Rsb2dkZXN0ICYmCisJCShwZ19zdHJjYXNlY21wKHN1YmluZm8tPnN1 YmNvbmZsaWN0bG9nZGVzdCwgImxvZyIpICE9IDApKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVy eSwKKwkJCQkJCSAgIlxuXG5BTFRFUiBTVUJTQ1JJUFRJT04gJXMgU0VUIChjb25mbGljdF9sb2df ZGVzdGluYXRpb24gPSAlcyk7XG4iLAorCQkJCQkJICBxc3VibmFtZSwKKwkJCQkJCSAgc3ViaW5m by0+c3ViY29uZmxpY3Rsb2dkZXN0KTsKKwogCS8qCiAJICogSW4gYmluYXJ5LXVwZ3JhZGUgbW9k ZSwgd2UgYWxsb3cgdGhlIHJlcGxpY2F0aW9uIHRvIGNvbnRpbnVlIGFmdGVyIHRoZQogCSAqIHVw Z3JhZGUuCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaAppbmRleCA1YTY3MjZkOGIxMi4uYTQzYTMwNDkzNDMgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaApAQCAtNzIyLDYgKzcyMiw3IEBAIHR5cGVkZWYgc3RydWN0IF9TdWJzY3JpcHRpb25JbmZv CiAJYm9vbAkJc3ViZmFpbG92ZXI7CiAJYm9vbAkJc3VicmV0YWluZGVhZHR1cGxlczsKIAlpbnQJ CQlzdWJtYXhyZXRlbnRpb247CisJT2lkCQkJc3ViY29uZmxpY3Rsb2dyZWxpZDsKIAljaGFyCSAg ICpzdWJzZXJ2ZXJuYW1lOwogCWNoYXIJICAgKnN1YmNvbm5pbmZvOwogCWNoYXIJICAgKnN1YnNs b3RuYW1lOwpAQCAtNzMwLDYgKzczMSw3IEBAIHR5cGVkZWYgc3RydWN0IF9TdWJzY3JpcHRpb25J bmZvCiAJY2hhcgkgICAqc3VicHVibGljYXRpb25zOwogCWNoYXIJICAgKnN1Ym9yaWdpbjsKIAlj aGFyCSAgICpzdWJvcmlnaW5yZW1vdGVsc247CisJY2hhcgkgICAqc3ViY29uZmxpY3Rsb2dkZXN0 OwogfSBTdWJzY3JpcHRpb25JbmZvOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IDAz ZTVjMWMxMTE2Li5jMjdiMjMyZTc5OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtMTEzMSw2 ICsxMTMxLDE5IEBAIHJlcGFpclRhYmxlQXR0ckRlZk11bHRpTG9vcChEdW1wYWJsZU9iamVjdCAq dGFibGVvYmosCiAJYWRkT2JqZWN0RGVwZW5kZW5jeShhdHRyZGVmb2JqLCB0YWJsZW9iai0+ZHVt cElkKTsKIH0KIAorLyoKKyAqIEJlY2F1c2Ugd2UgbWFrZSBzdWJzY3JpcHRpb25zIGRlcGVuZCBv biB0aGVpciBjb25mbGljdCBsb2cgdGFibGVzLCB3aGlsZQorICogdGhlcmUgaXMgYW4gYXV0b21h dGljIGRlcGVuZGVuY3kgaW4gdGhlIG90aGVyIGRpcmVjdGlvbiwgd2UgbmVlZCB0byBicmVhawor ICogdGhlIGxvb3AuIFJlbW92ZSB0aGUgYXV0b21hdGljIGRlcGVuZGVuY3ksIGFsbG93aW5nIHRo ZSB0YWJsZSB0byBiZSBjcmVhdGVkCisgKiBmaXJzdC4KKyAqLworc3RhdGljIHZvaWQKK3JlcGFp clN1YnNjcmlwdGlvblRhYmxlTG9vcChEdW1wYWJsZU9iamVjdCAqc3Vib2JqLCBEdW1wYWJsZU9i amVjdCAqdGFibGVvYmopCit7CisJLyogUmVtb3ZlIHRhYmxlJ3MgZGVwZW5kZW5jeSBvbiBzdWJz Y3JpcHRpb24gKi8KKwlyZW1vdmVPYmplY3REZXBlbmRlbmN5KHRhYmxlb2JqLCBzdWJvYmotPmR1 bXBJZCk7Cit9CisKIC8qCiAgKiBDSEVDSywgTk9UIE5VTEwgY29uc3RyYWludHMgb24gZG9tYWlu cyB3b3JrIGp1c3QgbGlrZSB0aG9zZSBvbiB0YWJsZXMgLi4uCiAgKi8KQEAgLTEzNjEsNiArMTM3 NCwyNCBAQCByZXBhaXJEZXBlbmRlbmN5TG9vcChEdW1wYWJsZU9iamVjdCAqKmxvb3AsCiAJCXJl dHVybjsKIAl9CiAKKwkvKgorCSAqIFN1YnNjcmlwdGlvbiBhbmQgaXRzIENvbmZsaWN0IExvZyBU YWJsZQorCSAqLworCWlmIChuTG9vcCA9PSAyICYmCisJCWxvb3BbMF0tPm9ialR5cGUgPT0gRE9f VEFCTEUgJiYKKwkJbG9vcFsxXS0+b2JqVHlwZSA9PSBET19TVUJTQ1JJUFRJT04pCisJeworCQly ZXBhaXJTdWJzY3JpcHRpb25UYWJsZUxvb3AobG9vcFsxXSwgbG9vcFswXSk7CisJCXJldHVybjsK Kwl9CisJaWYgKG5Mb29wID09IDIgJiYKKwkJbG9vcFswXS0+b2JqVHlwZSA9PSBET19TVUJTQ1JJ UFRJT04gJiYKKwkJbG9vcFsxXS0+b2JqVHlwZSA9PSBET19UQUJMRSkKKwl7CisJCXJlcGFpclN1 YnNjcmlwdGlvblRhYmxlTG9vcChsb29wWzBdLCBsb29wWzFdKTsKKwkJcmV0dXJuOworCX0KKwog CS8qIGluZGV4IG9uIHBhcnRpdGlvbmVkIHRhYmxlIGFuZCBjb3JyZXNwb25kaW5nIGluZGV4IG9u IHBhcnRpdGlvbiAqLwogCWlmIChuTG9vcCA9PSAyICYmCiAJCWxvb3BbMF0tPm9ialR5cGUgPT0g RE9fSU5ERVggJiYKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs IGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggOTI1ODk0OGI1ODMuLjhj MjY1M2U4NTJlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAor KysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtMzMxNyw5ICszMzE3LDEw IEBAIG15ICV0ZXN0cyA9ICgKIAkJY3JlYXRlX29yZGVyID0+IDUwLAogCQljcmVhdGVfc3FsID0+ ICdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjMKIAkJCQkJCSBDT05ORUNUSU9OIFwnZGJuYW1lPWRv ZXNub3RleGlzdFwnIFBVQkxJQ0FUSU9OIHB1YjEKLQkJCQkJCSBXSVRIIChjb25uZWN0ID0gZmFs c2UsIG9yaWdpbiA9IGFueSwgc3RyZWFtaW5nID0gb24pOycsCisJCQkJCQkgV0lUSCAoY29ubmVj dCA9IGZhbHNlLCBvcmlnaW4gPSBhbnksIHN0cmVhbWluZyA9IG9uLCBjb25mbGljdF9sb2dfZGVz dGluYXRpb249IHRhYmxlKTsnLAogCQlyZWdleHAgPT4gcXIvXgotCQkJXFFDUkVBVEUgU1VCU0NS SVBUSU9OIHN1YjMgQ09OTkVDVElPTiAnZGJuYW1lPWRvZXNub3RleGlzdCcgUFVCTElDQVRJT04g cHViMSBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHNsb3RfbmFtZSA9ICdzdWIzJywgc3RyZWFtaW5n ID0gb24pO1xFCisJCQlcUUNSRUFURSBTVUJTQ1JJUFRJT04gc3ViMyBDT05ORUNUSU9OICdkYm5h bWU9ZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiBwdWIxIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwg c2xvdF9uYW1lID0gJ3N1YjMnLCBzdHJlYW1pbmcgPSBvbik7XEVcblxuXG4KKwkJCVxRQUxURVIg U1VCU0NSSVBUSU9OIHN1YjMgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSB0YWJsZSk7 XEUKIAkJCS94bSwKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+ IDEsIH0sCiAJCXVubGlrZSA9PiB7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdf dXBncmFkZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwppbmRleCAyMTI3ZDI5 N2JmZS4uMTM1ZWY2NThjMmMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdy YWRlLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwpAQCAtMzUsNiArMzUs MTAgQEAKICAqCiAgKglXZSBjb250cm9sIGFsbCBhc3NpZ25tZW50cyBvZiBwZ19kYXRhYmFzZS5v aWQgYmVjYXVzZSB3ZSB3YW50IHRoZSBkaXJlY3RvcnkKICAqCW5hbWVzIHRvIG1hdGNoIGJldHdl ZW4gdGhlIG9sZCBhbmQgbmV3IGNsdXN0ZXIuCisgKgorICoJV2UgY29udHJvbCBhc3NpZ25tZW50 IG9mIHBnX3N1YnNjcmlwdGlvbi5vaWQgYmVjYXVzZSB3ZSB3YW50IHRoZSBvaWQgdG8KKyAqCW1h dGNoIGJldHdlZW4gdGhlIG9sZCBhbmQgbmV3IGNsdXN0ZXIgdG8gbWFrZSB1c2Ugb2Ygc3Vic2Ny aXB0aW9uJ3MKKyAqCWNvbmZsaWN0IGxvZyB0YWJsZSB3aGljaCBpcyBuYW1lZCB1c2luZyB0aGUg c3Vic2NyaXB0aW9uIG9pZC4KICAqLwogCiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFk ZS90LzAwNF9zdWJzY3JpcHRpb24ucGwgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDRfc3Vic2Ny aXB0aW9uLnBsCmluZGV4IGM5NGE4MmRlYWUwLi43M2YwMGQyNDI2YyAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5wbAorKysgYi9zcmMvYmluL3BnX3Vw Z3JhZGUvdC8wMDRfc3Vic2NyaXB0aW9uLnBsCkBAIC0yOTAsNyArMjkwLDcgQEAgJHB1Ymxpc2hl ci0+c2FmZV9wc3FsKAogJG9sZF9zdWItPnNhZmVfcHNxbCgKIAkncG9zdGdyZXMnLCBxcVsKIAkJ Q1JFQVRFIFRBQkxFIHRhYl91cGdyYWRlZDIoaWQgaW50KTsKLQkJQ1JFQVRFIFNVQlNDUklQVElP TiByZWdyZXNzX3N1YjUgQ09OTkVDVElPTiAnJGNvbm5zdHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3Nf cHViNTsKKwkJQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3N1YjUgQ09OTkVDVElPTiAnJGNv bm5zdHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViNSB3aXRoIChjb25mbGljdF9sb2dfZGVzdGlu YXRpb24gPSAndGFibGUnKTsKIF0pOwogCiAjIFRoZSB0YWJsZSB0YWJfdXBncmFkZWQyIHdpbGwg YmUgaW4gdGhlIGluaXQgc3RhdGUgYXMgdGhlIHN1YnNjcmliZXIncwpAQCAtMzEyLDcgKzMxMiwx MCBAQCBteSAkdGFiX3VwZ3JhZGVkMV9vaWQgPSAkb2xkX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCiAJIlNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3RhYl91cGdy YWRlZDEnIik7CiBteSAkdGFiX3VwZ3JhZGVkMl9vaWQgPSAkb2xkX3N1Yi0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCiAJIlNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3Rh Yl91cGdyYWRlZDInIik7Ci0KK215ICRzdWI1X29pZCA9ICRvbGRfc3ViLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiU0VMRUNUIG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiB3aGVyZSBzdWJuYW1l ID0gJ3JlZ3Jlc3Nfc3ViNSciKTsKK215ICRzdWJfY2x0X3JlbGlkID0gJG9sZF9zdWItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dyZWxpZCBGUk9NIHBnX3N1 YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3Nfc3ViNSciKTsKICRvbGRfc3ViLT5z dG9wOwogCiAjIENoYW5nZSBjb25maWd1cmF0aW9uIHNvIHRoYXQgaW5pdGlhbCB0YWJsZSBzeW5j IGRvZXMgbm90IGdldCBzdGFydGVkCkBAIC0zOTQsNiArMzk3LDEzIEBAICRyZXN1bHQgPSAkbmV3 X3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiApOwogaXMoJHJlc3VsdCwgcXEodCksICJjb25m bGljdCBkZXRlY3Rpb24gc2xvdCBleGlzdHMiKTsKIAorIyBUaGUgc3Vic2NyaXB0aW9uIG9pZCBh bmQgdGhlIHN1YnNjcmlwdGlvbiBjb25mbGljdCBsb2cgdGFibGUgcmVsaWQgc2hvdWxkIGJlIHBy ZXNlcnZlZAorJHJlc3VsdCA9ICRuZXdfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVD VCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX3N1YjUn Iik7CitpcygkcmVzdWx0LCBxcSgkc3ViNV9vaWQpLCAic3Vic2NyaXB0aW9uIG9pZCBzaG91bGQg aGF2ZSBiZWVuIHByZXNlcnZlZCIpOworCiskcmVzdWx0ID0gJG5ld19zdWItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAiU0VMRUNUIHN1YmNvbmZsaWN0bG9ncmVsaWQgRlJPTSBwZ19zdWJzY3JpcHRp b24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX3N1YjUnIik7CitpcygkcmVzdWx0LCBxcSgkc3Vi X2NsdF9yZWxpZCksICJzdWJzY3JpcHRpb24gY29uZmxpY3QgbG9nIHRhYmxlIHJlbGlkIHNob3Vs ZCBoYXZlIGJlZW4gcHJlc2VydmVkIik7CisKICMgUmVzdW1lIHRoZSBpbml0aWFsIHN5bmMgYW5k IHdhaXQgdW50aWwgYWxsIHRhYmxlcyBvZiBzdWJzY3JpcHRpb24KICMgJ3JlZ3Jlc3Nfc3ViNScg YXJlIHN5bmNocm9uaXplZAogJG5ld19zdWItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYn LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9iaW5hcnlfdXBncmFkZS5oIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9iaW5hcnlfdXBncmFkZS5oCmluZGV4IDdiZjdhZTQ0Mzg1Li5iMTVi MThlN2RjOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9iaW5hcnlfdXBncmFkZS5o CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvYmluYXJ5X3VwZ3JhZGUuaApAQCAtMzIsNiArMzIs NyBAQCBleHRlcm4gUEdETExJTVBPUlQgUmVsRmlsZU51bWJlciBiaW5hcnlfdXBncmFkZV9uZXh0 X3RvYXN0X3BnX2NsYXNzX3JlbGZpbGVudW1iZQogCiBleHRlcm4gUEdETExJTVBPUlQgT2lkIGJp bmFyeV91cGdyYWRlX25leHRfcGdfZW51bV9vaWQ7CiBleHRlcm4gUEdETExJTVBPUlQgT2lkIGJp bmFyeV91cGdyYWRlX25leHRfcGdfYXV0aGlkX29pZDsKK2V4dGVybiBQR0RMTElNUE9SVCBPaWQg YmluYXJ5X3VwZ3JhZGVfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkOwogCiBleHRlcm4gUEdETExJ TVBPUlQgYm9vbCBiaW5hcnlfdXBncmFkZV9yZWNvcmRfaW5pdF9wcml2czsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKaW5kZXggYmUxNTdhNWZiZTkuLjNiNTU1NDE1Y2JjIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKQEAgLTExOTY5LDYgKzExOTY5LDEwIEBACiAgIHByb2lzc3RyaWN0ID0+ICdm JywgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9wYXJhbGxlbCA9PiAndScsCiAgIHByb3JldHR5cGUg PT4gJ3ZvaWQnLCBwcm9hcmd0eXBlcyA9PiAnJywKICAgcHJvc3JjID0+ICdiaW5hcnlfdXBncmFk ZV9jcmVhdGVfY29uZmxpY3RfZGV0ZWN0aW9uX3Nsb3QnIH0sCit7IG9pZCA9PiAnODQwNycsIGRl c2NyID0+ICdmb3IgdXNlIGJ5IHBnX3VwZ3JhZGUnLAorICBwcm9uYW1lID0+ICdiaW5hcnlfdXBn cmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkJywgcHJvdm9sYXRpbGUgPT4gJ3YnLAor ICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ3ZvaWQnLCBwcm9hcmd0eXBlcyA9 PiAnb2lkJywKKyAgcHJvc3JjID0+ICdiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3Jp cHRpb25fb2lkJyB9LAogCiAjIGNvbnZlcnNpb24gZnVuY3Rpb25zCiB7IG9pZCA9PiAnNDMxMCcs IGRlc2NyID0+ICdpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBLT0k4UiB0byBXSU4x MjUxJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCmluZGV4IDg5ZDIzMDBhYmUx Li44YjkyNTJiNTYyOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCkBAIC0y MjEsNiArMjIxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgU3Vic2NyaXB0aW9uCiAgKi8KICNkZWZpbmUg TE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwgJ3AnCiAKKy8qIENvbmZsaWN0IGxvZyB0YWJsZSBu YW1lIGZvcm1hdC4gJXUgaXMgcmVwbGFjZWQgd2l0aCB0aGUgc3Vic2NyaXB0aW9uIE9JRC4gKi8K KyNkZWZpbmUgQ09ORkxJQ1RfTE9HX1JFTEFUSU9OX05BTUVfRk1UICJwZ19jb25mbGljdF9sb2df JXUiCisKICNlbmRpZgkJCQkJCQkvKiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUgKi8KIAogZXh0ZXJu IFN1YnNjcmlwdGlvbiAqR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29r LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9zcGdpc3RfbmFtZV9vcHMvZXhwZWN0ZWQv c3BnaXN0X25hbWVfb3BzLm91dCBiL3NyYy90ZXN0L21vZHVsZXMvc3BnaXN0X25hbWVfb3BzL2V4 cGVjdGVkL3NwZ2lzdF9uYW1lX29wcy5vdXQKaW5kZXggMWVlNjVlZGUyNDMuLjM5ZDQzMzY4YzQy IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3NwZ2lzdF9uYW1lX29wcy9leHBlY3RlZC9z cGdpc3RfbmFtZV9vcHMub3V0CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvc3BnaXN0X25hbWVfb3Bz L2V4cGVjdGVkL3NwZ2lzdF9uYW1lX29wcy5vdXQKQEAgLTU5LDExICs1OSwxMiBAQCBzZWxlY3Qg KiBmcm9tIHQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9tdWx0aXJhbmdlX3BnX3R5cGVfb2lk ICAgICAgIHwgIDEgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9tdWx0aXJhbmdlX3BnX3R5cGVf b2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfYXV0aGlkX29pZCAgICAgICAgICAgICAg ICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfYXV0aGlkX29pZAogIGJpbmFyeV91 cGdyYWRlX3NldF9uZXh0X3BnX2VudW1fb2lkICAgICAgICAgICAgICAgICAgfCAgICB8IGJpbmFy eV91cGdyYWRlX3NldF9uZXh0X3BnX2VudW1fb2lkCisgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRf cGdfc3Vic2NyaXB0aW9uX29pZCAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25l eHRfcGdfc3Vic2NyaXB0aW9uX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3RhYmxl c3BhY2Vfb2lkICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3Rh Ymxlc3BhY2Vfb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdHlwZV9vaWQgICAgICAg ICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdHlwZV9vaWQKICBi aW5hcnlfdXBncmFkZV9zZXRfbmV4dF90b2FzdF9wZ19jbGFzc19vaWQgICAgICAgICAgIHwgIDEg fCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF90b2FzdF9wZ19jbGFzc19vaWQKICBiaW5hcnlfdXBn cmFkZV9zZXRfbmV4dF90b2FzdF9yZWxmaWxlbm9kZSAgICAgICAgICAgIHwgICAgfCBiaW5hcnlf dXBncmFkZV9zZXRfbmV4dF90b2FzdF9yZWxmaWxlbm9kZQotKDEzIHJvd3MpCisoMTQgcm93cykK IAogLS0gVmVyaWZ5IGNsZWFuIGZhaWx1cmUgd2hlbiBJTkNMVURFJ2QgY29sdW1ucyByZXN1bHQg aW4gb3Zlcmxlbmd0aCB0dXBsZQogLS0gVGhlIGVycm9yIG1lc3NhZ2UgZGV0YWlscyBhcmUgcGxh dGZvcm0tZGVwZW5kZW50LCBzbyBzaG93IG9ubHkgU1FMU1RBVEUKQEAgLTEwOCwxMSArMTA5LDEy IEBAIHNlbGVjdCAqIGZyb20gdAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X211bHRpcmFuZ2Vf cGdfdHlwZV9vaWQgICAgICAgfCAgMSB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X211bHRpcmFu Z2VfcGdfdHlwZV9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19hdXRoaWRfb2lkICAg ICAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19hdXRoaWRfb2lk CiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfZW51bV9vaWQgICAgICAgICAgICAgICAgICB8 ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfZW51bV9vaWQKKyBiaW5hcnlfdXBncmFk ZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBn cmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25l eHRfcGdfdGFibGVzcGFjZV9vaWQgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0 X25leHRfcGdfdGFibGVzcGFjZV9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ190eXBl X29pZCAgICAgICAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ190 eXBlX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3BnX2NsYXNzX29pZCAgICAg ICAgICAgfCAgMSB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3BnX2NsYXNzX29pZAog IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3JlbGZpbGVub2RlICAgICAgICAgICAgfCAg ICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3JlbGZpbGVub2RlCi0oMTMgcm93cykK KygxNCByb3dzKQogCiBcc2V0IFZFUkJPU0lUWSBzcWxzdGF0ZQogaW5zZXJ0IGludG8gdCB2YWx1 ZXMocmVwZWF0KCd4eXp6eScsIDEyKSwgNDIsIHJlcGVhdCgneHl6enknLCA0MDAwKSk7Ci0tIAoy LjUzLjAKCg== --0000000000003b2574065472a7d4 Content-Type: application/octet-stream; name="v51-0005-Add-conflict-log-table-information-to-describe-s.patch" Content-Disposition: attachment; filename="v51-0005-Add-conflict-log-table-information-to-describe-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqi2oatm4 RnJvbSA2NmU0YWE1ODc4MzI4YjdmNjFhY2NkMjQ2MDA2MzkxZmFhZDlkOWZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTEgSnVuIDIwMjYgMTc6Mzc6MDQgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1MSA1LzZd IEFkZCBjb25mbGljdCBsb2cgdGFibGUgaW5mb3JtYXRpb24gdG8gZGVzY3JpYmUKIHN1YnNjcmlw dGlvbiBvdXRwdXQKCkRpc3BsYXkgdGhlIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlIGFz IGEgZm9vdGVyIGluIFxkUnMrCm91dHB1dCB3aGVuIGNvbmZsaWN0IGxvZ2dpbmcgdG8gdGFibGUv YWxsIGlzIGVuYWJsZWQgZm9yIGEKc3Vic2NyaXB0aW9uLgoKUHJldmlvdXNseSwgc3Vic2NyaXB0 aW9ucyB3ZXJlIGRpc3BsYXllZCB1c2luZyBhIHNpbmdsZSB0YWJ1bGFyCm91dHB1dCBmb3JtYXQu IFNpbmNlIHRoZSBjb25mbGljdCBsb2cgdGFibGUgaW5mb3JtYXRpb24gaXMgc3BlY2lmaWMKdG8g ZWFjaCBzdWJzY3JpcHRpb24gYW5kIGlzIGJldHRlciBzdWl0ZWQgYXMgYXV4aWxpYXJ5IGluZm9y bWF0aW9uLApjaGFuZ2UgdGhlIG91dHB1dCB0byBkaXNwbGF5IGVhY2ggc3Vic2NyaXB0aW9uIGlu ZGl2aWR1YWxseSBpbiBhCnJvdy13aXNlIHRhYmxlIGZvcm1hdCBhbmQgc2hvdyB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlIGFzIGEgZm9vdGVyCndoZW4gYXBwbGljYWJsZS4KClRPRE86IEVuc3VyZSBh bGwgMTkwMDAwIHNlcmllcyByZWZlcmVuY2VzIGFyZSB1cGRhdGVkIHRvIDIwMDAwMAp3aGVuIHRo ZSB2ZXJzaW9uIG51bWJlciBpcyBidW1wZWQuCgpUaGlzIGFwcHJvYWNoIHdhcyBjaG9zZW4gYmFz ZWQgb24gc3VnZ2VzdGlvbnMgYXQ6Cmh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2Ut aWQvQ0FBNGVLMUtkS3FLa2FUcWNqM2luNmVoRF9oZzZvT2FDRl8tSnNWZmQ4TjZuUzhvVjlnJTQw bWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmluL3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAg ICAgICAgfCAgIDUgKy0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAg ICB8IDQxMCArKysrKysrKysrKysrKysrKy0tLS0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5oICAg ICAgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJz Y3JpcHRpb24ub3V0IHwgMTc2ICsrKystLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA0MjkgaW5zZXJ0 aW9ucygrKSwgMTY3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21t YW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDAxYjhmMTFhYWRkLi43NzdkMDU1 MzI0NiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3Bz cWwvY29tbWFuZC5jCkBAIC0xMjIwLDcgKzEyMjAsMTAgQEAgZXhlY19jb21tYW5kX2QoUHNxbFNj YW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gsIGNvbnN0IGNoYXIgKmNtZCkK IAkJCQkJCQlzdWNjZXNzID0gbGlzdFB1YmxpY2F0aW9ucyhwYXR0ZXJuKTsKIAkJCQkJCWJyZWFr OwogCQkJCQljYXNlICdzJzoKLQkJCQkJCXN1Y2Nlc3MgPSBkZXNjcmliZVN1YnNjcmlwdGlvbnMo cGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCQkJCWlmIChzaG93X3ZlcmJvc2UpCisJCQkJCQkJ c3VjY2VzcyA9IGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhwYXR0ZXJuKTsKKwkJCQkJCWVsc2UKKwkJ CQkJCQlzdWNjZXNzID0gbGlzdFN1YnNjcmlwdGlvbnMocGF0dGVybik7CiAJCQkJCQlicmVhazsK IAkJCQkJZGVmYXVsdDoKIAkJCQkJCXN0YXR1cyA9IFBTUUxfQ01EX1VOS05PV047CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmlu ZGV4IGFmMzkzNWIwMDc4Li42MzJjZWIxMmJlZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTIzLDYgKzIzLDcgQEAK ICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbl9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19jb25zdHJhaW50X2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RlZmF1bHRfYWNsX2QuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZV9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19wcm9jX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50X2QuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uX2QuaCIKQEAgLTcwODEsMTkgKzcwODIs MTcgQEAgZXJyb3JfcmV0dXJuOgogCiAvKgogICogXGRScwotICogRGVzY3JpYmVzIHN1YnNjcmlw dGlvbnMuCisgKiBMaXN0cyBzdWJzY3JpcHRpb25zLgogICoKICAqIFRha2VzIGFuIG9wdGlvbmFs IHJlZ2V4cCB0byBzZWxlY3QgcGFydGljdWxhciBzdWJzY3JpcHRpb25zCiAgKi8KIGJvb2wKLWRl c2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCits aXN0U3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogewogCVBRRXhwQnVmZmVyRGF0 YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBv cHQ7Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwKLQkJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0 ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQu c3ZlcnNpb24gPCAxMDAwMDApCiAJewpAQCAtNzEwOCwxMDEgKzcxMDcsMjM1IEBAIGRlc2NyaWJl U3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJaW5pdFBR RXhwQnVmZmVyKCZidWYpOwogCiAJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIi8qICVzICovXG4i LCBfKCJHZXQgbWF0Y2hpbmcgc3Vic2NyaXB0aW9ucyIpKTsKKworCS8qIE9ubHkgZGlzcGxheSBz dWJzY3JpcHRpb25zIGluIGN1cnJlbnQgZGF0YWJhc2UuICovCiAJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwKIAkJCQkJICAiU0VMRUNUIHN1Ym5hbWUgQVMgXCIlc1wiXG4iCiAJCQkJCSAgIiwgIHBn X2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHN1Ym93bmVyKSBBUyBcIiVzXCJcbiIKIAkJCQkJICAi LCAgc3ViZW5hYmxlZCBBUyBcIiVzXCJcbiIKLQkJCQkJICAiLCAgc3VicHVibGljYXRpb25zIEFT IFwiJXNcIlxuIiwKKwkJCQkJICAiLCAgc3VicHVibGljYXRpb25zIEFTIFwiJXNcIlxuIgorCQkJ CQkgICJGUk9NIHBnX2NhdGFsb2cucGdfc3Vic2NyaXB0aW9uXG4iCisJCQkJCSAgIldIRVJFIHN1 YmRiaWQgPSAoU0VMRUNUIG9pZFxuIgorCQkJCQkgICIgICAgICAgICAgICAgICAgIEZST00gcGdf Y2F0YWxvZy5wZ19kYXRhYmFzZVxuIgorCQkJCQkgICIgICAgICAgICAgICAgICAgIFdIRVJFIGRh dG5hbWUgPSBwZ19jYXRhbG9nLmN1cnJlbnRfZGF0YWJhc2UoKSkiLAogCQkJCQkgIGdldHRleHRf bm9vcCgiTmFtZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKIAkJCQkJICBnZXR0 ZXh0X25vb3AoIkVuYWJsZWQiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlB1YmxpY2F0aW9uIikp OwogCi0JaWYgKHZlcmJvc2UpCisJaWYgKCF2YWxpZGF0ZVNRTE5hbWVQYXR0ZXJuKCZidWYsIHBh dHRlcm4sIHRydWUsIGZhbHNlLAorCQkJCQkJCQlOVUxMLCAic3VibmFtZSIsIE5VTEwsCisJCQkJ CQkJCU5VTEwsCisJCQkJCQkJCU5VTEwsIDEpKQogCXsKLQkJLyogQmluYXJ5IG1vZGUgYW5kIHN0 cmVhbWluZyBhcmUgb25seSBzdXBwb3J0ZWQgaW4gdjE0IGFuZCBoaWdoZXIgKi8KLQkJaWYgKHBz ZXQuc3ZlcnNpb24gPj0gMTQwMDAwKQorCQl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMTsi KTsKKworCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7 CisJaWYgKCFyZXMpCisJCXJldHVybiBmYWxzZTsKKworCW15b3B0LnRpdGxlID0gXygiTGlzdCBv ZiBzdWJzY3JpcHRpb25zIik7CisJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CisJbXlv cHQudHJhbnNsYXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1uczsKKwlteW9wdC5uX3RyYW5z bGF0ZV9jb2x1bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2NvbHVtbnMpOworCisJcHJpbnRRdWVy eShyZXMsICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCisJ UFFjbGVhcihyZXMpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBBZGQgZm9vdGVyIHRv IHN1YnNjcmlwdGlvbiBkZXNjcmlwdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK2FkZEZvb3RlclRv U3Vic2NyaXB0aW9uRGVzYyhjaGFyICpsb2dkZXN0LCBjaGFyICpjb25mbGljdF9zY2hlbWEsIE9p ZCBzdWJpZCwKKwkJCQkJCQlwcmludFRhYmxlQ29udGVudCAqY29uc3QgY29udCkKK3sKKwlpZiAo cHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJeworCQlpZiAoc3RyY21wKGxvZ2Rlc3QsICJ0YWJs ZSIpID09IDAgfHwgc3RyY21wKGxvZ2Rlc3QsICJhbGwiKSA9PSAwKQogCQl7Ci0JCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3ViYmluYXJ5IEFTIFwiJXNcIlxuIiwKLQkJ CQkJCQkgIGdldHRleHRfbm9vcCgiQmluYXJ5IikpOworCQkJLyoKKwkJCSAqIFRoZSBzaXplIGFj Y291bnRzIGZvciBzY2hlbWEgbmFtZSAoTkFNRURBVEFMRU4pLCByZWxhdGlvbgorCQkJICogbmFt ZSAoTkFNRURBVEFMRU4pLCBzZXBhcmF0b3IgJy4nIGFuZCBudWxsIHRlcm1pbmF0b3IuCisJCQkg Ki8KKwkJCWNoYXIJCWNvbmZsaWN0bG9ndGFibGVbTkFNRURBVEFMRU4gKyBOQU1FREFUQUxFTiAr IDJdOwogCi0JCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCi0JCQkJYXBwZW5kUFFFeHBC dWZmZXIoJmJ1ZiwKLQkJCQkJCQkJICAiLCAoQ0FTRSBzdWJzdHJlYW1cbiIKLQkJCQkJCQkJICAi ICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJFQU1fT0ZGKSAiIFRIRU4gJ29m ZidcbiIKLQkJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJF QU1fT04pICIgVEhFTiAnb24nXG4iCi0JCQkJCQkJCSAgIiAgICBXSEVOICIgQ3BwQXNTdHJpbmcy KExPR0lDQUxSRVBfU1RSRUFNX1BBUkFMTEVMKSAiIFRIRU4gJ3BhcmFsbGVsJ1xuIgotCQkJCQkJ CQkgICIgICBFTkQpIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlN0cmVh bWluZyIpKTsKLQkJCWVsc2UKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCQkg ICIsIHN1YnN0cmVhbSBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJTdHJl YW1pbmciKSk7CisJCQlzbnByaW50Zihjb25mbGljdGxvZ3RhYmxlLAorCQkJCQkJc2l6ZW9mKGNv bmZsaWN0bG9ndGFibGUpLAorCQkJCQkJIiVzLiIgQ09ORkxJQ1RfTE9HX1JFTEFUSU9OX05BTUVf Rk1ULAorCQkJCQkJY29uZmxpY3Rfc2NoZW1hLCBzdWJpZCk7CisKKwkJCXByaW50VGFibGVBZGRG b290ZXIoY29udCwgXygiQ29uZmxpY3QgbG9nIHRhYmxlOiIpKTsKKwkJCXByaW50VGFibGVBZGRG b290ZXIoY29udCwKKwkJCQkJCQkJcHNwcmludGYoIiAgICBcIiVzXCIiLCBjb25mbGljdGxvZ3Rh YmxlKSk7CiAJCX0KKwl9Cit9CiAKLQkJLyogVHdvX3BoYXNlIGFuZCBkaXNhYmxlX29uX2Vycm9y IGFyZSBvbmx5IHN1cHBvcnRlZCBpbiB2MTUgYW5kIGhpZ2hlciAqLwotCQlpZiAocHNldC5zdmVy c2lvbiA+PSAxNTAwMDApCi0JCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwg c3VidHdvcGhhc2VzdGF0ZSBBUyBcIiVzXCJcbiIKLQkJCQkJCQkgICIsIHN1YmRpc2FibGVvbmVy ciBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlR3by1waGFzZSBjb21taXQi KSwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiRGlzYWJsZSBvbiBlcnJvciIpKTsKKy8qCisgKiBc ZFJzKworICogRGVzY3JpYmVzIHN1YnNjcmlwdGlvbnMuCisgKgorICogVGFrZXMgYW4gb3B0aW9u YWwgcmVnZXhwIHRvIHNlbGVjdCBwYXJ0aWN1bGFyIHN1YnNjcmlwdGlvbnMKKyAqLworYm9vbAor ZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCit7CisJUFFFeHBCdWZm ZXJEYXRhIGJ1ZjsKKwlpbnQJCQlpOworCVBHcmVzdWx0ICAgKnJlczsKKwlpbnQJCQluY29sczsK KwlpbnQJCQlucm93cyA9IDE7CiAKLQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTYwMDAwKQotCQkJ YXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1Ym9yaWdpbiBBUyBcIiVzXCJc biIKLQkJCQkJCQkgICIsIHN1YnBhc3N3b3JkcmVxdWlyZWQgQVMgXCIlc1wiXG4iCi0JCQkJCQkJ ICAiLCBzdWJydW5hc293bmVyIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgi T3JpZ2luIiksCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlBhc3N3b3JkIHJlcXVpcmVkIiksCi0J CQkJCQkJICBnZXR0ZXh0X25vb3AoIlJ1biBhcyBvd25lcj8iKSk7CisJUFFFeHBCdWZmZXJEYXRh IHRpdGxlOworCXByaW50VGFibGVDb250ZW50IGNvbnQ7CiAKLQkJaWYgKHBzZXQuc3ZlcnNpb24g Pj0gMTcwMDAwKQorCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTAwMDAwKQorCXsKKwkJY2hhcgkJc3Zl cmJ1ZlszMl07CisKKwkJcGdfbG9nX2Vycm9yKCJUaGUgc2VydmVyICh2ZXJzaW9uICVzKSBkb2Vz IG5vdCBzdXBwb3J0IHN1YnNjcmlwdGlvbnMuIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJl cihwc2V0LnN2ZXJzaW9uLCBmYWxzZSwKKwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3Zl cmJ1ZikpKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOwor CisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIi8qICVzICovXG4iLCBfKCJHZXQgbWF0Y2hpbmcg c3Vic2NyaXB0aW9ucyIpKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxF Q1Qgb2lkLCBzdWJuYW1lIEFTIFwiJXNcIlxuIgorCQkJCQkgICIsICAoU0VMRUNUIG5zcG5hbWUg RlJPTSBwZ19uYW1lc3BhY2UgV0hFUkUgb2lkID0gIiBDcHBBc1N0cmluZzIoUEdfQ09ORkxJQ1Rf TkFNRVNQQUNFKSAiKSAgQVMgIFwiJXNcIlxuIgorCQkJCQkgICIsICBwZ19jYXRhbG9nLnBnX2dl dF91c2VyYnlpZChzdWJvd25lcikgQVMgXCIlc1wiXG4iCisJCQkJCSAgIiwgIHN1YmVuYWJsZWQg QVMgXCIlc1wiXG4iCisJCQkJCSAgIiwgIHN1YnB1YmxpY2F0aW9ucyBBUyBcIiVzXCJcbiIsCisJ CQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb25mbGlj dF9zY2hlbWEiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4 dF9ub29wKCJFbmFibGVkIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJQdWJsaWNhdGlvbiIpKTsK KworCS8qCisJICogb2lkLCBzdWJuYW1lIGFuZCBjb25mbGljdF9zY2hlbWEgY29sdW1ucyBhcmUg aW50ZXJuYWwgYW5kIG5vdCBkaXNwbGF5ZWQsCisJICogc28gb25seSAzIHZpc2libGUgY29sdW1u cy4KKwkgKi8KKwluY29scyA9IDM7CisKKwkvKiBCaW5hcnkgbW9kZSBhbmQgc3RyZWFtaW5nIGFy ZSBvbmx5IHN1cHBvcnRlZCBpbiB2MTQgYW5kIGhpZ2hlciAqLworCWlmIChwc2V0LnN2ZXJzaW9u ID49IDE0MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHN1 YmJpbmFyeSBBUyBcIiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiQmluYXJ5IikpOwor CQluY29scysrOworCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE2MDAwMCkKIAkJCWFwcGVuZFBR RXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJmYWlsb3ZlciBBUyBcIiVzXCJcbiIsCi0J CQkJCQkJICBnZXR0ZXh0X25vb3AoIkZhaWxvdmVyIikpOwotCQlpZiAocHNldC5zdmVyc2lvbiA+ PSAxOTAwMDApCi0JCXsKKwkJCQkJCQkgICIsIChDQVNFIHN1YnN0cmVhbVxuIgorCQkJCQkJCSAg IiAgICBXSEVOICIgQ3BwQXNTdHJpbmcyKExPR0lDQUxSRVBfU1RSRUFNX09GRikgIiBUSEVOICdv ZmYnXG4iCisJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJF QU1fT04pICIgVEhFTiAnb24nXG4iCisJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIo TE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwpICIgVEhFTiAncGFyYWxsZWwnXG4iCisJCQkJCQkJ ICAiICAgRU5EKSBBUyBcIiVzXCJcbiIsCisJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlN0cmVhbWlu ZyIpKTsKKwkJZWxzZQogCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIChz ZWxlY3Qgc3J2bmFtZSBmcm9tIHBnX2NhdGFsb2cucGdfZm9yZWlnbl9zZXJ2ZXIgd2hlcmUgb2lk PXN1YnNlcnZlcikgQVMgXCIlc1wiXG4iLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJTZXJ2ZXIi KSk7CisJCQkJCQkJICAiLCBzdWJzdHJlYW0gQVMgXCIlc1wiXG4iLAorCQkJCQkJCSAgZ2V0dGV4 dF9ub29wKCJTdHJlYW1pbmciKSk7CiAKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJ CQkJICAiLCBzdWJyZXRhaW5kZWFkdHVwbGVzIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRl eHRfbm9vcCgiUmV0YWluIGRlYWQgdHVwbGVzIikpOworCQluY29scysrOworCX0KIAotCQkJYXBw ZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1Ym1heHJldGVudGlvbiBBUyBcIiVz XCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIk1heCByZXRlbnRpb24gZHVyYXRpb24iKSk7 CisJLyogVHdvX3BoYXNlIGFuZCBkaXNhYmxlX29uX2Vycm9yIGFyZSBvbmx5IHN1cHBvcnRlZCBp biB2MTUgYW5kIGhpZ2hlciAqLworCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwl7CisJ CWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHN1YnR3b3BoYXNlc3RhdGUgQVMg XCIlc1wiXG4iCisJCQkJCQkgICIsIHN1YmRpc2FibGVvbmVyciBBUyBcIiVzXCJcbiIsCisJCQkJ CQkgIGdldHRleHRfbm9vcCgiVHdvLXBoYXNlIGNvbW1pdCIpLAorCQkJCQkJICBnZXR0ZXh0X25v b3AoIkRpc2FibGUgb24gZXJyb3IiKSk7CisJCW5jb2xzICs9IDI7CisJfQogCi0JCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3VicmV0ZW50aW9uYWN0aXZlIEFTIFwiJXNc IlxuIiwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiUmV0ZW50aW9uIGFjdGl2ZSIpKTsKLQkJfQor CWlmIChwc2V0LnN2ZXJzaW9uID49IDE2MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZi dWYsCisJCQkJCQkgICIsIHN1Ym9yaWdpbiBBUyBcIiVzXCJcbiIKKwkJCQkJCSAgIiwgc3VicGFz c3dvcmRyZXF1aXJlZCBBUyBcIiVzXCJcbiIKKwkJCQkJCSAgIiwgc3VicnVuYXNvd25lciBBUyBc IiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiT3JpZ2luIiksCisJCQkJCQkgIGdldHRl eHRfbm9vcCgiUGFzc3dvcmQgcmVxdWlyZWQiKSwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJSdW4g YXMgb3duZXI/IikpOworCQluY29scyArPSAzOworCX0KIAorCWlmIChwc2V0LnN2ZXJzaW9uID49 IDE3MDAwMCkKKwl7CiAJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkgICIsICBzdWJz eW5jY29tbWl0IEFTIFwiJXNcIlxuIgotCQkJCQkJICAiLCAgc3ViY29ubmluZm8gQVMgXCIlc1wi XG4iLAotCQkJCQkJICBnZXR0ZXh0X25vb3AoIlN5bmNocm9ub3VzIGNvbW1pdCIpLAotCQkJCQkJ ICBnZXR0ZXh0X25vb3AoIkNvbm5pbmZvIikpOworCQkJCQkJICAiLCBzdWJmYWlsb3ZlciBBUyBc IiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiRmFpbG92ZXIiKSk7CisJCW5jb2xzKys7 CisJfQogCi0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVm ZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJ3YWxyY3Z0aW1lb3V0IEFTIFwiJXNcIlxuIiwKLQkJ CQkJCQkgIGdldHRleHRfbm9vcCgiUmVjZWl2ZXIgdGltZW91dCIpKTsKKwlpZiAocHNldC5zdmVy c2lvbiA+PSAxOTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAi LCAoc2VsZWN0IHNydm5hbWUgZnJvbSBwZ19jYXRhbG9nLnBnX2ZvcmVpZ25fc2VydmVyIHdoZXJl IG9pZD1zdWJzZXJ2ZXIpIEFTIFwiJXNcIlxuIgorCQkJCQkJICAiLCBzdWJyZXRhaW5kZWFkdHVw bGVzIEFTIFwiJXNcIlxuIgorCQkJCQkJICAiLCBzdWJtYXhyZXRlbnRpb24gQVMgXCIlc1wiXG4i CisJCQkJCQkgICIsIHN1YnJldGVudGlvbmFjdGl2ZSBBUyBcIiVzXCJcbiIsCisJCQkJCQkgIGdl dHRleHRfbm9vcCgiU2VydmVyIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiUmV0YWluIGRlYWQg dHVwbGVzIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiTWF4IHJldGVudGlvbiBkdXJhdGlvbiIp LAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIlJldGVudGlvbiBhY3RpdmUiKSk7CisJCW5jb2xzICs9 IDQ7CisJfQogCi0JCS8qIFNraXAgTFNOIGlzIG9ubHkgc3VwcG9ydGVkIGluIHYxNSBhbmQgaGln aGVyICovCi0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVm ZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJza2lwbHNuIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkg IGdldHRleHRfbm9vcCgiU2tpcCBMU04iKSk7CisJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJ CQkJICAiLCAgc3Vic3luY2NvbW1pdCBBUyBcIiVzXCJcbiIKKwkJCQkJICAiLCAgc3ViY29ubmlu Zm8gQVMgXCIlc1wiXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU3luY2hyb25vdXMgY29tbWl0 IiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb25uaW5mbyIpKTsKKwluY29scyArPSAyOwogCisJ aWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCXsKIAkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1 ZiwKLQkJCQkJCSAgIiwgIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3N1YnNj cmlwdGlvbicpIEFTIFwiJXNcIlxuIiwKLQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZXNjcmlwdGlv biIpKTsKKwkJCQkJCSAgIiwgc3Vid2FscmN2dGltZW91dCBBUyBcIiVzXCJcbiIsCisJCQkJCQkg IGdldHRleHRfbm9vcCgiUmVjZWl2ZXIgdGltZW91dCIpKTsKKwkJbmNvbHMrKzsKKwl9CisKKwkv KiBTa2lwIExTTiBpcyBvbmx5IHN1cHBvcnRlZCBpbiB2MTUgYW5kIGhpZ2hlciAqLworCWlmIChw c2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJ CQkJCQkgICIsIHN1YnNraXBsc24gQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3Ao IlNraXAgTFNOIikpOworCQluY29scysrOworCX0KKworCS8qIENvbmZsaWN0IGxvZyBkZXN0aW5h dGlvbiBpcyBzdXBwb3J0ZWQgaW4gdjE5IGFuZCBoaWdoZXIgKi8KKwlpZiAocHNldC5zdmVyc2lv biA+PSAxOTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLCBz dWJjb25mbGljdGxvZ2Rlc3QgQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkNv bmZsaWN0IGxvZyBkZXN0aW5hdGlvbiIpKTsKKwkJbmNvbHMrKzsKIAl9CiAKKwlhcHBlbmRQUUV4 cEJ1ZmZlcigmYnVmLAorCQkJCQkgICIsICBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihvaWQs ICdwZ19zdWJzY3JpcHRpb24nKSBBUyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJE ZXNjcmlwdGlvbiIpKTsKKwluY29scysrOworCiAJLyogT25seSBkaXNwbGF5IHN1YnNjcmlwdGlv bnMgaW4gY3VycmVudCBkYXRhYmFzZS4gKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAog CQkJCQkJICJGUk9NIHBnX2NhdGFsb2cucGdfc3Vic2NyaXB0aW9uXG4iCkBAIC03MjE5LDIwICs3 MzUyLDE0MyBAQCBkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9v bCB2ZXJib3NlKQogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwgIk9SREVSIEJZIDE7Iik7CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVS IEJZIHN1Ym5hbWU7Iik7CiAKIAlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CiAJdGVybVBRRXhw QnVmZmVyKCZidWYpOwogCWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlteW9wdC50aXRs ZSA9IF8oIkxpc3Qgb2Ygc3Vic2NyaXB0aW9ucyIpOwotCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIg PSB0cnVlOwotCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7Ci0J bXlvcHQubl90cmFuc2xhdGVfY29sdW1ucyA9IGxlbmd0aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsK KwlpZiAoUFFudHVwbGVzKHJlcykgPT0gMCkKKwl7CisJCWlmICghcHNldC5xdWlldCkKKwkJewor CQkJaWYgKHBhdHRlcm4pCisJCQkJcGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHN1YnNj cmlwdGlvbiBuYW1lZCBcIiVzXCIuIiwKKwkJCQkJCQkgcGF0dGVybik7CisJCQllbHNlCisJCQkJ cGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHN1YnNjcmlwdGlvbnMuIik7CisJCX0KIAot CXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dm aWxlKTsKKwkJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCQlQUWNsZWFyKHJlcyk7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgUFFudHVwbGVzKHJlcyk7IGkrKykKKwl7 CisJCWNvbnN0IGNoYXIJYWxpZ24gPSAnbCc7CisJCU9pZAkJCXN1YmlkID0gYXRvb2lkKFBRZ2V0 dmFsdWUocmVzLCBpLCAwKSk7CisJCWNoYXIJICAgKnN1Ym5hbWUgPSBQUWdldHZhbHVlKHJlcywg aSwgMSk7CisJCWNoYXIJICAgKmNvbmZsaWN0X3NjaGVtYSA9IFBRZ2V0dmFsdWUocmVzLCBpLCAy KTsKKwkJaW50CQkJY3VycmVudF9jb2wgPSAzOworCQljaGFyCSAgICpsb2dkZXN0ID0gImxvZyI7 CisJCXByaW50VGFibGVPcHQgbXlvcHQgPSBwc2V0LnBvcHQudG9wdDsKKworCQlpbml0UFFFeHBC dWZmZXIoJnRpdGxlKTsKKwkJcHJpbnRmUFFFeHBCdWZmZXIoJnRpdGxlLCBfKCJTdWJzY3JpcHRp b24gJXMiKSwgc3VibmFtZSk7CisJCXByaW50VGFibGVJbml0KCZjb250LCAmbXlvcHQsIHRpdGxl LmRhdGEsIG5jb2xzLCBucm93cyk7CisKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0 dGV4dF9ub29wKCJPd25lciIpLCB0cnVlLCBhbGlnbik7CisJCXByaW50VGFibGVBZGRIZWFkZXIo JmNvbnQsIGdldHRleHRfbm9vcCgiRW5hYmxlZCIpLCB0cnVlLCBhbGlnbik7CisJCXByaW50VGFi bGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiUHVibGljYXRpb24iKSwgdHJ1ZSwgYWxp Z24pOworCisJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3Vy cmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQ UWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCXByaW50 VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZh bHNlLCBmYWxzZSk7CisKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTQwMDAwKQorCQl7CisJCQlw cmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIkJpbmFyeSIpLCB0cnVlLCBh bGlnbik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1 cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZj b250LCBnZXR0ZXh0X25vb3AoIlN0cmVhbWluZyIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmludFRh YmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxz ZSwgZmFsc2UpOworCQl9CisKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQl7CisJ CQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIlR3by1waGFzZSBjb21t aXQiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFs dWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJs ZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJEaXNhYmxlIG9uIGVycm9yIiksIHRydWUs IGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwg Y3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCX0KKworCQlpZiAocHNldC5zdmVyc2lv biA+PSAxNjAwMDApCisJCXsKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRf bm9vcCgiT3JpZ2luIiksIHRydWUsIGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250 LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisKKwkJ CXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiUGFzc3dvcmQgcmVxdWly ZWQiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFs dWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJs ZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJSdW4gYXMgb3duZXI/IiksIHRydWUsIGFs aWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3Vy cmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCX0KKworCQlpZiAocHNldC5zdmVyc2lvbiA+ PSAxNzAwMDApCisJCXsKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9v cCgiRmFpbG92ZXIiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQs IFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJfQor CisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhl YWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJTZXJ2ZXIiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJp bnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwg ZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9u b29wKCJSZXRhaW4gZGVhZCB0dXBsZXMiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFk ZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZh bHNlKTsKKworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIiksCisJCQkJCQkJCXRydWUsIGFsaWduKTsKKwkJCXByaW50VGFi bGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNl LCBmYWxzZSk7CiAKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgi UmV0ZW50aW9uIGFjdGl2ZSIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgm Y29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOwor CQl9CisKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJTeW5jaHJv bm91cyBjb21taXQiKSwgdHJ1ZSwgYWxpZ24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwg UFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCXBy aW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiQ29ubmluZm8iKSwgdHJ1ZSwg YWxpZ24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1 cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5 MDAwMCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJS ZWNlaXZlciB0aW1lb3V0IiksIHRydWUsIGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZj b250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJ CX0KKworCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCXsKKwkJCXByaW50VGFibGVB ZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiU2tpcCBMU04iKSwgdHJ1ZSwgYWxpZ24pOwor CQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2Nv bCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAw MCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJDb25m bGljdCBsb2cgZGVzdGluYXRpb24iKSwKKwkJCQkJCQkJdHJ1ZSwgYWxpZ24pOworCisJCQlsb2dk ZXN0ID0gUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspOworCisJCQlwcmludFRhYmxl QWRkQ2VsbCgmY29udCwgbG9nZGVzdCwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJCXByaW50VGFi bGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiRGVzY3JpcHRpb24iKSwgdHJ1ZSwgYWxp Z24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJl bnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCWFkZEZvb3RlclRvU3Vic2NyaXB0aW9uRGVz Yyhsb2dkZXN0LCBjb25mbGljdF9zY2hlbWEsIHN1YmlkLCAmY29udCk7CisKKwkJcHJpbnRUYWJs ZSgmY29udCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCQlwcmludFRh YmxlQ2xlYW51cCgmY29udCk7CisKKwkJdGVybVBRRXhwQnVmZmVyKCZ0aXRsZSk7CisJfQorCisJ dGVybVBRRXhwQnVmZmVyKCZidWYpOwogCVBRY2xlYXIocmVzKTsKIAlyZXR1cm4gdHJ1ZTsKIH0K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmgKaW5kZXggNDdmYWU1Y2VhZmIuLjE1YzZjNjg1MzIzIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApAQCAtMTI2LDcg KzEyNiwxMCBAQCBib29sCQlsaXN0UHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pOwog Ym9vbAkJZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybik7CiAKIC8qIFxk UnMgKi8KLWJvb2wJCWRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHZlcmJvc2UpOworYm9vbAkJbGlzdFN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVy bik7CisKKy8qIFxkUnMrICovCitib29sCQlkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hh ciAqcGF0dGVybik7CiAKIC8qIFxkQWMgKi8KIGV4dGVybiBib29sIGxpc3RPcGVyYXRvckNsYXNz ZXMoY29uc3QgY2hhciAqYWNjZXNzX21ldGhvZF9wYXR0ZXJuLApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CmluZGV4IDQ1YjJkZTdhNmM1Li5mNGY1NTVkMmU2NiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAtMTM5LDE4 ICsxMzksMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IENPTk5FQ1RJ T04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFUKIFdBUk5JTkc6ICBzdWJzY3JpcHRp b24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUg cmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xv dCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRv IHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1 YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJl Z3Jlc3NfdGVzdHN1YjQKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24g ZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBD b25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAg ICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YjQgU0VUIChvcmlnaW4gPSBhbnkpOwogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVv dXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg IDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0 aW9uIHJlZ3Jlc3NfdGVzdHN1YjQKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cg ICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViMzsKQEAgLTIxNSwxMCArMjE1LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZm9vYmFyJzsKIEVSUk9SOiAgaW52YWxpZCBjb25u ZWN0aW9uIHN0cmluZyBzeW50YXg6IG1pc3NpbmcgIj0iIGFmdGVyICJmb29iYXIiIGluIGNvbm5l Y3Rpb24gaW5mbyBzdHJpbmcKIAogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgICAgRGVz Y3JpcHRpb24gICAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgdGVzdCBzdWJzY3JpcHRpb24KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1 YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCAgICBEZXNjcmlwdGlvbiAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8 IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCB0ZXN0IHN1YnNjcmlwdGlv bgogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCBQVUJM SUNBVElPTiB0ZXN0cHViMiwgdGVzdHB1YjMgV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKQEAgLTIy NywxMCArMjI3LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChz bG90X25hbWUgPSAnbmV3bmFtZScpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKHBhc3N3b3JkX3JlcXVpcmVkID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHJ1bl9hc19vd25lciA9IHRydWUpOwogXGRScysKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4g ZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNl aXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8ICAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAg ICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAt MSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IHRlc3Qgc3Vic2NyaXB0aW9uCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vi c2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1l b3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8ICAgIERlc2NyaXB0 aW9uICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAg ICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgZiAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdDIgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAg ICAgICAgICB8IHRlc3Qgc3Vic2NyaXB0aW9uCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IHRydWUpOwpAQCAtMjQ2 LDEwICsyNDYsMTAgQEAgRVJST1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRl cjogImNyZWF0ZV9zbG90IgogLS0gb2sKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgU0tJUCAobHNuID0gJzAvMTIzNDUnKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8 ICBTa2lwIExTTiAgfCAgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAgICAgICAgICAg ICB8IDAvMDAwMTIzNDUgfCB0ZXN0IHN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdy ZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQ dWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVu dGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCAgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAg ICAgICAgICAgICB8IDAvMDAwMTIzNDUgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCB0ZXN0 IHN1YnNjcmlwdGlvbgogKDEgcm93KQogCiAtLSBvayAtIHdpdGggbHNuID0gTk9ORQpAQCAtMjU4 LDEwICsyNTgsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChs c24gPSBOT05FKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNu ID0gJzAvMCcpOwogRVJST1I6ICBpbnZhbGlkIFdBTCBsb2NhdGlvbiAoTFNOKTogMC8wCiBcZFJz KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZl ciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRp b24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgICAgRGVzY3JpcHRpb24gICAg Ci0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0MiB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgdGVzdCBzdWJzY3JpcHRp b24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJl Y2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwg ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t CisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1 YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0MiB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAg ICAgICAgICAgICAgICAgICAgIHwgdGVzdCBzdWJzY3JpcHRpb24KICgxIHJvdykKIAogQkVHSU47 CkBAIC0yOTcsMTAgKzI5NywxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi X2ZvbyBTRVQgKHdhbF9yZWNlaXZlcl90aW1lb3V0ID0gJzgwcycpOwogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gU0VUICh3YWxfcmVjZWl2ZXJfdGltZW91dCA9ICdmb29i YXInKTsKIEVSUk9SOiAgaW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyICJ3YWxfcmVjZWl2ZXJf dGltZW91dCI6ICJmb29iYXIiCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIHwgICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBsb2Nh bCAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgODBzICAgICAg ICAgICAgICB8IDAvMDAwMDAwMDAgfCB0ZXN0IHN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24g cmVncmVzc190ZXN0c3ViX2ZvbworICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwg IFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8ICAgIERlc2NyaXB0aW9uICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBh cmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIg fCA4MHMgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAg ICB8IHRlc3Qgc3Vic2NyaXB0aW9uCiAoMSByb3cpCiAKIC0tIHJlbmFtZSBiYWNrIHRvIGtlZXAg dGhlIHJlc3Qgc2ltcGxlCkBAIC0zMjksMTkgKzMyOSwxOSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qn IFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25u ZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkg Y3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5k IGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1 aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1 cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGlt ZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgdCAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg IDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlw dGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgdCAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cg ICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKGJpbmFyeSA9IGZhbHNlKTsKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVu IGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4 IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNr aXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jl c3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZs aWN0IGxvZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwg ICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAg ICAgICAgICAgICB8IAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWI7CkBAIC0zNTMsMjcgKzM1MywyNyBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklO RzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6 ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSBy ZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBz dWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCBy ZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lw IExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAg ICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNz X3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25mbGlj dCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAg ICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwot ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlv biBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8 IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJh bGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAt MSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1 YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBC aW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwg U2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJl dGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAg ICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBk ZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBw YXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8 IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwg ZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg fCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAg ICB8IAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAo c3RyZWFtaW5nID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT RVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3Jp cHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAg ICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIg fCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9u IGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0 aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAg ICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAg ICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAo MSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtMzg4LDEw ICszODgsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElD QVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnIKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChy ZWZyZXNoID0gZmFsc2UpOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjEiIGlzIGFscmVh ZHkgaW4gc3Vic2NyaXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJl dGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0 aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg UmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAg fCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAg ICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24g cmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAg ICAgICAgIFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVz IHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0 IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIxLHRlc3RwdWIyfSB8IGYgICAg ICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAg ICAgICAgIHwgCiAoMSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiB1c2VkIG1vcmUgdGhh biBvbmNlCkBAIC00MDYsMTAgKzQwNiwxMCBAQCBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHVi MyIgaXMgbm90IGluIHN1YnNjcmlwdGlvbiAicmVncmVzc190ZXN0c3ViIgogLS0gb2sgLSBkZWxl dGUgcHVibGljYXRpb25zCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIERST1Ag UFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBc ZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29y ZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBk ZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2 ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1 YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAg fCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViOwpAQCAtNDQ1LDE5ICs0NDUsMTkgQEAgQ1JFQVRFIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3Qg Y29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVh bGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24s IGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVh ZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVy IHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJz Y3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tp cCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwg bG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIC0tIHdlIGNhbiBhbHRlciBz dHJlYW1pbmcgd2hlbiB0d29fcGhhc2UgZW5hYmxlZAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0 ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBM U04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190 ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92 ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9u IHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3Qg bG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAg ICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAg ICAgICAgIHwgCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg U0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTQ2NywxMCArNDY3LDEwIEBAIENSRUFURSBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMg bm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBt YW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0 aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4K IFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWlu IGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNl aXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8 IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwg IFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAw MCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC00ODMsMTgg KzQ4MywxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9O ICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlv biB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSBy ZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90 LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8g cmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlw dGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAg ICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8 IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24g YWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRp b24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwg IHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAg ICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAg ICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAKICgx IHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGRpc2FibGVf b25fZXJyb3IgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9u IAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAg ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAg ICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBS ZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8 IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAg ICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93 KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0g Tk9ORSk7CkBAIC01MDcsMTAgKzUwNywxMCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FS TklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJ TlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRo ZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRo ZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdy ZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25m bGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAg ICAgICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtNTI3LDEwICs1MjcsMTAgQEAgTk9USUNF OiAgbWF4X3JldGVudGlvbl9kdXJhdGlvbiBpcyBpbmVmZmVjdGl2ZSB3aGVuIHJldGFpbl9kZWFk X3R1cGxlcyBpcyBkaXNhYmwKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1 dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBt dXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJz Y3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRp b25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBS ZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFj dGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAxMDAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAw MDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVv dXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24g CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAxMDAw ICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAw MDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIC0tIGZhaWwg LSBtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIG11c3QgYmUgbm9uLW5lZ2F0aXZlCkBAIC01MzksMTAg KzUzOSwxMCBAQCBFUlJPUjogIG1heF9yZXRlbnRpb25fZHVyYXRpb24gY2Fubm90IGJlIG5lZ2F0 aXZlCiAtLSBvawogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKG1heF9y ZXRlbnRpb25fZHVyYXRpb24gPSAwKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2Ny aXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAg ICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5h dGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAg ICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAg ICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAog KDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9u YW1lID0gTk9ORSk7Ci0tIAoyLjUzLjAKCg== --0000000000003b2574065472a7d4 Content-Type: application/octet-stream; name="v51-0006-Documentation-patch.patch" Content-Disposition: attachment; filename="v51-0006-Documentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqi2oats5 RnJvbSAzODlmZDU3ODIxYTg4NGM0YjVkNWJjMWNmNjJlMTY1YzdhMzJlZTcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hckBEaWxpcC5sb2NhbD4K RGF0ZTogU3VuLCA1IEFwciAyMDI2IDE3OjAyOjAxICswNTMwClN1YmplY3Q6IFtQQVRDSCB2NTEg Ni82XSBEb2N1bWVudGF0aW9uIHBhdGNoCgotLS0KIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAg 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+KTwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgotLSAKMi41My4wCgo= --0000000000003b2574065472a7d4--