Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sSOa5-006smg-AU for pgsql-hackers@arkaria.postgresql.org; Fri, 12 Jul 2024 22:17:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sSOa3-00CID0-Vs for pgsql-hackers@arkaria.postgresql.org; Fri, 12 Jul 2024 22:17:31 +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.94.2) (envelope-from ) id 1sSOa3-00CICs-HM for pgsql-hackers@lists.postgresql.org; Fri, 12 Jul 2024 22:17:31 +0000 Received: from mail-lj1-x231.google.com ([2a00:1450:4864:20::231]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sSOa0-001q2J-8F for pgsql-hackers@lists.postgresql.org; Fri, 12 Jul 2024 22:17:30 +0000 Received: by mail-lj1-x231.google.com with SMTP id 38308e7fff4ca-2eebc76119aso27944081fa.2 for ; Fri, 12 Jul 2024 15:17:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720822647; x=1721427447; darn=lists.postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=MKhF8oMV04CxiI8GAayRydBOoWs+Kw+BosuKzrZeGDc=; b=YsKYPHMjIAJnF2PNXTOb/blV3CsD1f+MVfv3w9/fQ1vmkxbUiN1IVz75XRlbCyqUSc NEwCv4wLCimYdkqNT9DQvbbm80qb4Pq3oyb/diwtVJFq76wrlSb1Kfqj1sUOjH6ytsjw o9lxyBMSanil9A/dTS5hCUuB6RmqRtlyf0twYagIw/PZHVkCyqg5fUtWN6hu4uWJ77o2 l0yvuXsltpsdWoDgrNTcZLEooln7c0gZPoTUDtxEtZPQq5y7zQWEZjx58t1UftPNYU59 Lp7YyFbmmzQS/xywlZM8cgZizsivFVPMCQN9w9aIm4IX0Skpyah7iFROrRRi4dvmuXxP k1yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720822647; x=1721427447; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=MKhF8oMV04CxiI8GAayRydBOoWs+Kw+BosuKzrZeGDc=; b=vaL/Ge9pdJBsm0iE60FidcwWO7/M6W4S3HzbW5LC9NEHNPfTvk8/oP3WwKx9z5L01h haw21BsyR8wAxOqKXbFce/TBrXiLWHAmv25s5nfRZ3OAN9N5nI6RgoslrNbI4v8/KMXZ t5QbckE/72pR1rokdTyucX4vG1com4yl83G9Mp6T5pkjmeJdhFNcy+XklkfE30LoApVv QdxPjjesUdAQwLNR0TLSmxDUODapRw4H4dTnU9W+46cp9S+cJx3fOxbJMcsjWxYoy0II m8clSBDmIDbzkaSu3jMCkZpTJH1naD5/sU1uBrAXMtW4TldfBih8O4kH9Gj2nLfHq86+ 21GQ== X-Forwarded-Encrypted: i=1; AJvYcCUCiQX0BqjR8mfiVhVzObSSnQ1LqXfmy7xx+mlKbzlbXWTsy5/WHqXbsAmtbz9CRxdyKKBqfW3bmIZDYnqwF4CSKXrIxB/3tSNBHVm1XJyQ0eNb X-Gm-Message-State: AOJu0YzGqp/fq6ByAmh3d3KPhiQjtc08mldWoXKlBklQJQbVg2H7We60 Sj3tdIWwzu1+iTFF14MNCm1dmTfWOo8zH3Nene28iC3fgtLl3EbA X-Google-Smtp-Source: AGHT+IHmwsbrAeYAETQ1yz/vqVAINUMC4IO9QPMiWuzkFxyexf83ku3Z1dUumGAidNVI0PiX4uItsw== X-Received: by 2002:a2e:8081:0:b0:2ee:4e67:85ec with SMTP id 38308e7fff4ca-2eeb30bc9d4mr84609561fa.5.1720822646319; Fri, 12 Jul 2024 15:17:26 -0700 (PDT) Received: from ?IPV6:2a01:4b00:c00c:a500:1fc:f872:b19:ed59? ([2a01:4b00:c00c:a500:1fc:f872:b19:ed59]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4279f23981fsm35473085e9.4.2024.07.12.15.17.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 12 Jul 2024 15:17:25 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------Xc05atdIG31yq0hPmonzYLQg" Message-ID: <428008d6-911d-4a14-986f-0fbb74db6fd8@gmail.com> Date: Fri, 12 Jul 2024 23:17:25 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: CREATE INDEX CONCURRENTLY on partitioned index To: Michael Paquier Cc: Justin Pryzby , Alexander Pyhalov , pgsql-hackers@lists.postgresql.org, Masahiko Sawada References: <37d3f0a984a15f6465b83027eed8c588@postgrespro.ru> <8fe0027c-a4f9-43a0-afc1-20362c159d07@gmail.com> <76a11eea-c5ae-4034-971d-c8a2df0bb14d@gmail.com> <55cfae76-2ffa-43ed-a7e7-901bffbebee4@gmail.com> <5F602655-58E6-4562-85D3-34E04BE9D60C@gmail.com> Content-Language: en-US From: Ilya Gladyshev In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Xc05atdIG31yq0hPmonzYLQg Content-Type: multipart/alternative; boundary="------------GDSndm9N1fPEVOXQdMHZpfj0" --------------GDSndm9N1fPEVOXQdMHZpfj0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 12.07.2024 01:01, Michael Paquier wrote: > Please let's move this point to its own thread and deal with it with > an independent patch. Hiding that in a thread that's already quite > long is not a good idea. This needs proper review, and a separate > thread with a good subject to describe the problem will attract a > better audience to deal with the problem you are seeing. > > I was not paying much attention, until you've mentioned that this was > an issue with HEAD. > -- > Michael Sure, created a separate thread [1]. Please disregard the second patch in this thread. Duplicating the last version of the relevant patch here to avoid any confusion. [1] https://www.postgresql.org/message-id/b72f2d89-820a-4fa2-9058-b155cf646f4f%40gmail.com --------------GDSndm9N1fPEVOXQdMHZpfj0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit


On 12.07.2024 01:01, Michael Paquier wrote:
Please let's move this point to its own thread and deal with it with
an independent patch.  Hiding that in a thread that's already quite
long is not a good idea.  This needs proper review, and a separate
thread with a good subject to describe the problem will attract a
better audience to deal with the problem you are seeing.

I was not paying much attention, until you've mentioned that this was
an issue with HEAD.
--
Michael

Sure, created a separate thread [1]. Please disregard the second patch in this thread. Duplicating the last version of the relevant patch here to avoid any confusion.

[1] https://www.postgresql.org/message-id/b72f2d89-820a-4fa2-9058-b155cf646f4f%40gmail.com


--------------GDSndm9N1fPEVOXQdMHZpfj0-- --------------Xc05atdIG31yq0hPmonzYLQg Content-Type: text/x-patch; charset=UTF-8; name="v5-0001-Allow-CREATE-INDEX-CONCURRENTLY-on-partitioned-ta.patch" Content-Disposition: attachment; filename*0="v5-0001-Allow-CREATE-INDEX-CONCURRENTLY-on-partitioned-ta.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBhY2Y1Y2Y1ZDRhOTg0YzBmODYzNWEyNWUwM2MyMzQwOTYwMWMwYzkzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJbHlhIEdsYWR5c2hldiA8aWx5YS52LmdsYWR5c2hl dkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjMgTWF5IDIwMjQgMTg6MTM6NDEgKzAxMDAKU3Vi amVjdDogW1BBVENIIHY1IDEvMl0gQWxsb3cgQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBv biBwYXJ0aXRpb25lZCB0YWJsZQoKLS0tCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2lu ZGV4LnNnbWwgICAgICAgICAgICB8ICAxNCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5k ZXhjbWRzLmMgICAgICAgICAgICAgIHwgMjI4ICsrKysrKysrKysrKystLS0tLQogLi4uL2lz b2xhdGlvbi9leHBlY3RlZC9wYXJ0aXRpb25lZC1jaWMub3V0ICAgIHwgMTM1ICsrKysrKysr KysrCiBzcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAg IDEgKwogc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3BhcnRpdGlvbmVkLWNpYy5zcGVjIHwg IDU3ICsrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luZGV4aW5nLm91dCAgICAg ICAgfCAxMjcgKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW5kZXhpbmcuc3Fs ICAgICAgICAgICAgIHwgIDI2ICstCiA4IGZpbGVzIGNoYW5nZWQsIDUyMCBpbnNlcnRpb25z KCspLCA3OCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29s YXRpb24vZXhwZWN0ZWQvcGFydGl0aW9uZWQtY2ljLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9wYXJ0aXRpb25lZC1jaWMuc3BlYwoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApp bmRleCA2YWFiNzllOTAxLi45MDQ5NzhjNmU1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv ZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC00MzE0LDE0ICs0MzE0 LDEyIEBAIEFMVEVSIFRBQkxFIG1lYXN1cmVtZW50IEFUVEFDSCBQQVJUSVRJT04gbWVhc3Vy ZW1lbnRfeTIwMDhtMDIKICAgICAgQXMgbWVudGlvbmVkIGVhcmxpZXIsIGl0IGlzIHBvc3Np YmxlIHRvIGNyZWF0ZSBpbmRleGVzIG9uIHBhcnRpdGlvbmVkCiAgICAgIHRhYmxlcyBzbyB0 aGF0IHRoZXkgYXJlIGFwcGxpZWQgYXV0b21hdGljYWxseSB0byB0aGUgZW50aXJlIGhpZXJh cmNoeS4KICAgICAgVGhpcyBjYW4gYmUgdmVyeSBjb252ZW5pZW50IGFzIG5vdCBvbmx5IHdp bGwgYWxsIGV4aXN0aW5nIHBhcnRpdGlvbnMgYmUKLSAgICAgaW5kZXhlZCwgYnV0IGFueSBm dXR1cmUgcGFydGl0aW9ucyB3aWxsIGJlIGFzIHdlbGwuICBIb3dldmVyLCBvbmUKLSAgICAg bGltaXRhdGlvbiB3aGVuIGNyZWF0aW5nIG5ldyBpbmRleGVzIG9uIHBhcnRpdGlvbmVkIHRh YmxlcyBpcyB0aGF0IGl0Ci0gICAgIGlzIG5vdCBwb3NzaWJsZSB0byB1c2UgdGhlIDxsaXRl cmFsPkNPTkNVUlJFTlRMWTwvbGl0ZXJhbD4KLSAgICAgcXVhbGlmaWVyLCB3aGljaCBjb3Vs ZCBsZWFkIHRvIGxvbmcgbG9jayB0aW1lcy4gIFRvIGF2b2lkIHRoaXMsIHlvdSBjYW4KLSAg ICAgdXNlIDxjb21tYW5kPkNSRUFURSBJTkRFWCBPTiBPTkxZPC9jb21tYW5kPiB0aGUgcGFy dGl0aW9uZWQgdGFibGUsIHdoaWNoCisgICAgIGluZGV4ZWQsIGJ1dCBhbnkgZnV0dXJlIHBh cnRpdGlvbnMgd2lsbCBiZSBhcyB3ZWxsLiBGb3IgbW9yZSBjb250cm9sIG92ZXIKKyAgICAg bG9ja2luZyBvZiB0aGUgcGFydGl0aW9ucyB5b3UgY2FuIHVzZSA8Y29tbWFuZD5DUkVBVEUg SU5ERVggT04gT05MWTwvY29tbWFuZD4KKyAgICAgb24gdGhlIHBhcnRpdGlvbmVkIHRhYmxl LCB3aGljaAogICAgICBjcmVhdGVzIHRoZSBuZXcgaW5kZXggbWFya2VkIGFzIGludmFsaWQs IHByZXZlbnRpbmcgYXV0b21hdGljIGFwcGxpY2F0aW9uCiAgICAgIHRvIGV4aXN0aW5nIHBh cnRpdGlvbnMuICBJbnN0ZWFkLCBpbmRleGVzIGNhbiB0aGVuIGJlIGNyZWF0ZWQgaW5kaXZp ZHVhbGx5Ci0gICAgIG9uIGVhY2ggcGFydGl0aW9uIHVzaW5nIDxsaXRlcmFsPkNPTkNVUlJF TlRMWTwvbGl0ZXJhbD4gYW5kCisgICAgIG9uIGVhY2ggcGFydGl0aW9uIGFuZAogICAgICA8 Zmlyc3R0ZXJtPmF0dGFjaGVkPC9maXJzdHRlcm0+IHRvIHRoZSBwYXJ0aXRpb25lZCBpbmRl eCBvbiB0aGUgcGFyZW50CiAgICAgIHVzaW5nIDxjb21tYW5kPkFMVEVSIElOREVYIC4uLiBB VFRBQ0ggUEFSVElUSU9OPC9jb21tYW5kPi4gIE9uY2UgaW5kZXhlcyBmb3IKICAgICAgYWxs IHRoZSBwYXJ0aXRpb25zIGFyZSBhdHRhY2hlZCB0byB0aGUgcGFyZW50IGluZGV4LCB0aGUg cGFyZW50IGluZGV4IHdpbGwKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X2luZGV4LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9pbmRleC5zZ21sCmluZGV4 IDYyMWJjMGUyNTMuLjIzNjZjZmQ5YjUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX2luZGV4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfaW5kZXgu c2dtbApAQCAtNjQ1LDcgKzY0NSwxMCBAQCBDUkVBVEUgWyBVTklRVUUgXSBJTkRFWCBbIENP TkNVUlJFTlRMWSBdIFsgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPQog ICAgPHBhcmE+CiAgICAgSWYgYSBwcm9ibGVtIGFyaXNlcyB3aGlsZSBzY2FubmluZyB0aGUg dGFibGUsIHN1Y2ggYXMgYSBkZWFkbG9jayBvciBhCiAgICAgdW5pcXVlbmVzcyB2aW9sYXRp b24gaW4gYSB1bmlxdWUgaW5kZXgsIHRoZSA8Y29tbWFuZD5DUkVBVEUgSU5ERVg8L2NvbW1h bmQ+Ci0gICAgY29tbWFuZCB3aWxsIGZhaWwgYnV0IGxlYXZlIGJlaGluZCBhbiA8cXVvdGU+ aW52YWxpZDwvcXVvdGU+IGluZGV4LiBUaGlzIGluZGV4CisgICAgY29tbWFuZCB3aWxsIGZh aWwgYnV0IGxlYXZlIGJlaGluZCBhbiA8cXVvdGU+aW52YWxpZDwvcXVvdGU+IGluZGV4Lgor ICAgIElmIHRoaXMgaGFwcGVucyB3aGlsZSBidWlsZCBhbiBpbmRleCBjb25jdXJyZW50bHkg b24gYSBwYXJ0aXRpb25lZAorICAgIHRhYmxlLCB0aGUgY29tbWFuZCBjYW4gYWxzbyBsZWF2 ZSBiZWhpbmQgPHF1b3RlPnZhbGlkPC9xdW90ZT4gb3IKKyAgICA8cXVvdGU+aW52YWxpZDwv cXVvdGU+IGluZGV4ZXMgb24gdGFibGUgcGFydGl0aW9ucy4gIFRoZSBpbnZhbGlkIGluZGV4 CiAgICAgd2lsbCBiZSBpZ25vcmVkIGZvciBxdWVyeWluZyBwdXJwb3NlcyBiZWNhdXNlIGl0 IG1pZ2h0IGJlIGluY29tcGxldGU7CiAgICAgaG93ZXZlciBpdCB3aWxsIHN0aWxsIGNvbnN1 bWUgdXBkYXRlIG92ZXJoZWFkLiBUaGUgPGFwcGxpY2F0aW9uPnBzcWw8L2FwcGxpY2F0aW9u PgogICAgIDxjb21tYW5kPlxkPC9jb21tYW5kPiBjb21tYW5kIHdpbGwgcmVwb3J0IHN1Y2gg YW4gaW5kZXggYXMgPGxpdGVyYWw+SU5WQUxJRDwvbGl0ZXJhbD46CkBAIC02OTIsMTUgKzY5 NSw2IEBAIEluZGV4ZXM6CiAgICAgY2Fubm90LgogICAgPC9wYXJhPgogCi0gICA8cGFyYT4K LSAgICBDb25jdXJyZW50IGJ1aWxkcyBmb3IgaW5kZXhlcyBvbiBwYXJ0aXRpb25lZCB0YWJs ZXMgYXJlIGN1cnJlbnRseSBub3QKLSAgICBzdXBwb3J0ZWQuICBIb3dldmVyLCB5b3UgbWF5 IGNvbmN1cnJlbnRseSBidWlsZCB0aGUgaW5kZXggb24gZWFjaAotICAgIHBhcnRpdGlvbiBp bmRpdmlkdWFsbHkgYW5kIHRoZW4gZmluYWxseSBjcmVhdGUgdGhlIHBhcnRpdGlvbmVkIGlu ZGV4Ci0gICAgbm9uLWNvbmN1cnJlbnRseSBpbiBvcmRlciB0byByZWR1Y2UgdGhlIHRpbWUg d2hlcmUgd3JpdGVzIHRvIHRoZQotICAgIHBhcnRpdGlvbmVkIHRhYmxlIHdpbGwgYmUgbG9j a2VkIG91dC4gIEluIHRoaXMgY2FzZSwgYnVpbGRpbmcgdGhlCi0gICAgcGFydGl0aW9uZWQg aW5kZXggaXMgYSBtZXRhZGF0YSBvbmx5IG9wZXJhdGlvbi4KLSAgIDwvcGFyYT4KLQogICA8 L3JlZnNlY3QyPgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMK aW5kZXggMzA5Mzg5ZTIwZC4uZGNiNGVhODllOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvaW5kZXhjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhj bWRzLmMKQEAgLTk1LDYgKzk1LDExIEBAIHN0YXRpYyBjaGFyICpDaG9vc2VJbmRleE5hbWUo Y29uc3QgY2hhciAqdGFibmFtZSwgT2lkIG5hbWVzcGFjZUlkLAogCQkJCQkJCSBib29sIHBy aW1hcnksIGJvb2wgaXNjb25zdHJhaW50KTsKIHN0YXRpYyBjaGFyICpDaG9vc2VJbmRleE5h bWVBZGRpdGlvbihjb25zdCBMaXN0ICpjb2xuYW1lcyk7CiBzdGF0aWMgTGlzdCAqQ2hvb3Nl SW5kZXhDb2x1bW5OYW1lcyhjb25zdCBMaXN0ICppbmRleEVsZW1zKTsKK3N0YXRpYyB2b2lk IERlZmluZUluZGV4Q29uY3VycmVudEludGVybmFsKE9pZCByZWxhdGlvbklkLAorCQkJCQkJ CQkJCSAgT2lkIGluZGV4UmVsYXRpb25JZCwKKwkJCQkJCQkJCQkgIEluZGV4SW5mbyAqaW5k ZXhJbmZvLAorCQkJCQkJCQkJCSAgTE9DS1RBRyBoZWFwbG9ja3RhZywKKwkJCQkJCQkJCQkg IExvY2tSZWxJZCBoZWFwcmVsaWQpOwogc3RhdGljIHZvaWQgUmVpbmRleEluZGV4KGNvbnN0 IFJlaW5kZXhTdG10ICpzdG10LCBjb25zdCBSZWluZGV4UGFyYW1zICpwYXJhbXMsCiAJCQkJ CQkgYm9vbCBpc1RvcExldmVsKTsKIHN0YXRpYyB2b2lkIFJhbmdlVmFyQ2FsbGJhY2tGb3JS ZWluZGV4SW5kZXgoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLApAQCAtNTYxLDcgKzU2Niw2 IEBAIERlZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCWJvb2wJCWFtaXNzdW1tYXJpemluZzsK IAlhbW9wdGlvbnNfZnVuY3Rpb24gYW1vcHRpb25zOwogCWJvb2wJCXBhcnRpdGlvbmVkOwot CWJvb2wJCXNhZmVfaW5kZXg7CiAJRGF0dW0JCXJlbG9wdGlvbnM7CiAJaW50MTYJICAgKmNv bG9wdGlvbnM7CiAJSW5kZXhJbmZvICAqaW5kZXhJbmZvOwpAQCAtNTY5LDEyICs1NzMsMTAg QEAgRGVmaW5lSW5kZXgoT2lkIHRhYmxlSWQsCiAJYml0czE2CQljb25zdHJfZmxhZ3M7CiAJ aW50CQkJbnVtYmVyT2ZBdHRyaWJ1dGVzOwogCWludAkJCW51bWJlck9mS2V5QXR0cmlidXRl czsKLQlUcmFuc2FjdGlvbklkIGxpbWl0WG1pbjsKIAlPYmplY3RBZGRyZXNzIGFkZHJlc3M7 CiAJTG9ja1JlbElkCWhlYXByZWxpZDsKIAlMT0NLVEFHCQloZWFwbG9ja3RhZzsKIAlMT0NL TU9ERQlsb2NrbW9kZTsKLQlTbmFwc2hvdAlzbmFwc2hvdDsKIAlPaWQJCQlyb290X3NhdmVf dXNlcmlkOwogCWludAkJCXJvb3Rfc2F2ZV9zZWNfY29udGV4dDsKIAlpbnQJCQlyb290X3Nh dmVfbmVzdGxldmVsOwpAQCAtNzA2LDIwICs3MDgsNiBAQCBEZWZpbmVJbmRleChPaWQgdGFi bGVJZCwKIAkgKiBwYXJ0aXRpb24uCiAJICovCiAJcGFydGl0aW9uZWQgPSByZWwtPnJkX3Jl bC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFOwotCWlmIChwYXJ0aXRp b25lZCkKLQl7Ci0JCS8qCi0JCSAqIE5vdGU6IHdlIGNoZWNrICdzdG10LT5jb25jdXJyZW50 JyByYXRoZXIgdGhhbiAnY29uY3VycmVudCcsIHNvIHRoYXQKLQkJICogdGhlIGVycm9yIGlz IHRocm93biBhbHNvIGZvciB0ZW1wb3JhcnkgdGFibGVzLiAgU2VlbXMgYmV0dGVyIHRvIGJl Ci0JCSAqIGNvbnNpc3RlbnQsIGV2ZW4gdGhvdWdoIHdlIGNvdWxkIGRvIGl0IG9uIHRlbXBv cmFyeSB0YWJsZSBiZWNhdXNlCi0JCSAqIHdlJ3JlIG5vdCBhY3R1YWxseSBkb2luZyBpdCBj b25jdXJyZW50bHkuCi0JCSAqLwotCQlpZiAoc3RtdC0+Y29uY3VycmVudCkKLQkJCWVyZXBv cnQoRVJST1IsCi0JCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVE KSwKLQkJCQkJIGVycm1zZygiY2Fubm90IGNyZWF0ZSBpbmRleCBvbiBwYXJ0aXRpb25lZCB0 YWJsZSBcIiVzXCIgY29uY3VycmVudGx5IiwKLQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpKSkpOwotCX0KIAogCS8qCiAJICogRG9uJ3QgdHJ5IHRvIENSRUFURSBJTkRF WCBvbiB0ZW1wIHRhYmxlcyBvZiBvdGhlciBiYWNrZW5kcy4KQEAgLTExMTYsMTAgKzExMDQs NiBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkJfQogCX0KIAotCS8qIElzIGluZGV4 IHNhZmUgZm9yIG90aGVycyB0byBpZ25vcmU/ICBTZWUgc2V0X2luZGV4c2FmZV9wcm9jZmxh Z3MoKSAqLwotCXNhZmVfaW5kZXggPSBpbmRleEluZm8tPmlpX0V4cHJlc3Npb25zID09IE5J TCAmJgotCQlpbmRleEluZm8tPmlpX1ByZWRpY2F0ZSA9PSBOSUw7Ci0KIAkvKgogCSAqIFJl cG9ydCBpbmRleCBjcmVhdGlvbiBpZiBhcHByb3ByaWF0ZSAoZGVsYXkgdGhpcyB0aWxsIGFm dGVyIG1vc3Qgb2YgdGhlCiAJICogZXJyb3IgY2hlY2tzKQpAQCAtMTE4NCw2ICsxMTY4LDEx IEBAIERlZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCQlpZiAocGQtPm5wYXJ0cyAhPSAwKQog CQkJZmxhZ3MgfD0gSU5ERVhfQ1JFQVRFX0lOVkFMSUQ7CiAJfQorCWVsc2UgaWYgKGNvbmN1 cnJlbnQgJiYgT2lkSXNWYWxpZChwYXJlbnRJbmRleElkKSkKKwl7CisJCS8qIElmIGNvbmN1 cnJlbnQsIGluaXRpYWxseSBidWlsZCBpbmRleCBwYXJ0aXRpb25zIGFzICJpbnZhbGlkIiAq LworCQlmbGFncyB8PSBJTkRFWF9DUkVBVEVfSU5WQUxJRDsKKwl9CiAKIAlpZiAoc3RtdC0+ ZGVmZXJyYWJsZSkKIAkJY29uc3RyX2ZsYWdzIHw9IElOREVYX0NPTlNUUl9DUkVBVEVfREVG RVJSQUJMRTsKQEAgLTE1MzMsMjEgKzE1MjIsNyBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJ ZCwKIAkJCSAqLwogCQkJaWYgKGludmFsaWRhdGVfcGFyZW50KQogCQkJewotCQkJCVJlbGF0 aW9uCXBnX2luZGV4ID0gdGFibGVfb3BlbihJbmRleFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2 ZUxvY2spOwotCQkJCUhlYXBUdXBsZQl0dXAsCi0JCQkJCQkJbmV3dHVwOwotCi0JCQkJdHVw ID0gU2VhcmNoU3lzQ2FjaGUxKElOREVYUkVMSUQsCi0JCQkJCQkJCQkgIE9iamVjdElkR2V0 RGF0dW0oaW5kZXhSZWxhdGlvbklkKSk7Ci0JCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1 cCkpCi0JCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBpbmRleCAl dSIsCi0JCQkJCQkgaW5kZXhSZWxhdGlvbklkKTsKLQkJCQluZXd0dXAgPSBoZWFwX2NvcHl0 dXBsZSh0dXApOwotCQkJCSgoRm9ybV9wZ19pbmRleCkgR0VUU1RSVUNUKG5ld3R1cCkpLT5p bmRpc3ZhbGlkID0gZmFsc2U7Ci0JCQkJQ2F0YWxvZ1R1cGxlVXBkYXRlKHBnX2luZGV4LCAm dHVwLT50X3NlbGYsIG5ld3R1cCk7Ci0JCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7Ci0JCQkJ dGFibGVfY2xvc2UocGdfaW5kZXgsIFJvd0V4Y2x1c2l2ZUxvY2spOwotCQkJCWhlYXBfZnJl ZXR1cGxlKG5ld3R1cCk7CisJCQkJaW5kZXhfc2V0X3N0YXRlX2ZsYWdzKGluZGV4UmVsYXRp b25JZCwgSU5ERVhfRFJPUF9DTEVBUl9WQUxJRCk7CiAKIAkJCQkvKgogCQkJCSAqIENDSSBo ZXJlIHRvIG1ha2UgdGhpcyB1cGRhdGUgdmlzaWJsZSwgaW4gY2FzZSB0aGlzIHJlY3Vyc2Vz CkBAIC0xNTU5LDM3ICsxNTM0LDQ5IEBAIERlZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCiAJ CS8qCiAJCSAqIEluZGV4ZXMgb24gcGFydGl0aW9uZWQgdGFibGVzIGFyZSBub3QgdGhlbXNl bHZlcyBidWlsdCwgc28gd2UncmUKLQkJICogZG9uZSBoZXJlLgorCQkgKiBkb25lIGhlcmUg aW4gdGhlIG5vbi1jb25jdXJyZW50IGNhc2UuCiAJCSAqLwotCQlBdEVPWGFjdF9HVUMoZmFs c2UsIHJvb3Rfc2F2ZV9uZXN0bGV2ZWwpOwotCQlTZXRVc2VySWRBbmRTZWNDb250ZXh0KHJv b3Rfc2F2ZV91c2VyaWQsIHJvb3Rfc2F2ZV9zZWNfY29udGV4dCk7Ci0JCXRhYmxlX2Nsb3Nl KHJlbCwgTm9Mb2NrKTsKLQkJaWYgKCFPaWRJc1ZhbGlkKHBhcmVudEluZGV4SWQpKQotCQkJ cGdzdGF0X3Byb2dyZXNzX2VuZF9jb21tYW5kKCk7Ci0JCWVsc2UKKwkJaWYgKCFjb25jdXJy ZW50KQogCQl7Ci0JCQkvKiBVcGRhdGUgcHJvZ3Jlc3MgZm9yIGFuIGludGVybWVkaWF0ZSBw YXJ0aXRpb25lZCBpbmRleCBpdHNlbGYgKi8KLQkJCXBnc3RhdF9wcm9ncmVzc19pbmNyX3Bh cmFtKFBST0dSRVNTX0NSRUFURUlEWF9QQVJUSVRJT05TX0RPTkUsIDEpOwotCQl9CisJCQlB dEVPWGFjdF9HVUMoZmFsc2UsIHJvb3Rfc2F2ZV9uZXN0bGV2ZWwpOworCQkJU2V0VXNlcklk QW5kU2VjQ29udGV4dChyb290X3NhdmVfdXNlcmlkLCByb290X3NhdmVfc2VjX2NvbnRleHQp OworCQkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwogCi0JCXJldHVybiBhZGRyZXNzOwor CQkJaWYgKCFPaWRJc1ZhbGlkKHBhcmVudEluZGV4SWQpKQorCQkJCXBnc3RhdF9wcm9ncmVz c19lbmRfY29tbWFuZCgpOworCQkJZWxzZQorCQkJeworCQkJCS8qCisJCQkJICogVXBkYXRl IHByb2dyZXNzIGZvciBhbiBpbnRlcm1lZGlhdGUgcGFydGl0aW9uZWQgaW5kZXgKKwkJCQkg KiBpdHNlbGYKKwkJCQkgKi8KKwkJCQlwZ3N0YXRfcHJvZ3Jlc3NfaW5jcl9wYXJhbShQUk9H UkVTU19DUkVBVEVJRFhfUEFSVElUSU9OU19ET05FLCAxKTsKKwkJCX0KKworCQkJcmV0dXJu IGFkZHJlc3M7CisJCX0KIAl9CiAKIAlBdEVPWGFjdF9HVUMoZmFsc2UsIHJvb3Rfc2F2ZV9u ZXN0bGV2ZWwpOwogCVNldFVzZXJJZEFuZFNlY0NvbnRleHQocm9vdF9zYXZlX3VzZXJpZCwg cm9vdF9zYXZlX3NlY19jb250ZXh0KTsKIAotCWlmICghY29uY3VycmVudCkKKwkvKgorCSAq IEFsbCBkb25lIGluIHRoZSBub24tY29uY3VycmVudCBjYXNlLCBhbmQgd2hlbiBidWlsZGlu ZyBjYXRhbG9nIGVudHJpZXMKKwkgKiBvZiBwYXJ0aXRpb25zIGZvciBDSUMuCisJICovCisJ aWYgKCFjb25jdXJyZW50IHx8IE9pZElzVmFsaWQocGFyZW50SW5kZXhJZCkpCiAJewotCQkv KiBDbG9zZSB0aGUgaGVhcCBhbmQgd2UncmUgZG9uZSwgaW4gdGhlIG5vbi1jb25jdXJyZW50 IGNhc2UgKi8KIAkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwogCiAJCS8qCiAJCSAqIElm IHRoaXMgaXMgdGhlIHRvcC1sZXZlbCBpbmRleCwgdGhlIGNvbW1hbmQgaXMgZG9uZSBvdmVy YWxsOwotCQkgKiBvdGhlcndpc2UsIGluY3JlbWVudCBwcm9ncmVzcyB0byByZXBvcnQgb25l IGNoaWxkIGluZGV4IGlzIGRvbmUuCisJCSAqIG90aGVyd2lzZSAod2hlbiBiZWluZyBjYWxs ZWQgcmVjdXJzaXZlbHkpLCBpbmNyZW1lbnQgcHJvZ3Jlc3MgdG8KKwkJICogcmVwb3J0IHRo YXQgb25lIGNoaWxkIGluZGV4IGlzIGRvbmUuICBFeGNlcHQgaW4gdGhlIGNvbmN1cnJlbnQK KwkJICogKGNhdGFsb2ctb25seSkgY2FzZSwgd2hpY2ggaXMgaGFuZGxlZCBsYXRlci4KIAkJ ICovCiAJCWlmICghT2lkSXNWYWxpZChwYXJlbnRJbmRleElkKSkKIAkJCXBnc3RhdF9wcm9n cmVzc19lbmRfY29tbWFuZCgpOwotCQllbHNlCisJCWVsc2UgaWYgKCFjb25jdXJyZW50KQog CQkJcGdzdGF0X3Byb2dyZXNzX2luY3JfcGFyYW0oUFJPR1JFU1NfQ1JFQVRFSURYX1BBUlRJ VElPTlNfRE9ORSwgMSk7CiAKIAkJcmV0dXJuIGFkZHJlc3M7CkBAIC0xNjAwLDYgKzE1ODcs MTQxIEBAIERlZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCVNFVF9MT0NLVEFHX1JFTEFUSU9O KGhlYXBsb2NrdGFnLCBoZWFwcmVsaWQuZGJJZCwgaGVhcHJlbGlkLnJlbElkKTsKIAl0YWJs ZV9jbG9zZShyZWwsIE5vTG9jayk7CiAKKwlpZiAoIXBhcnRpdGlvbmVkKQorCXsKKwkJLyog Q1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBvbiBhIG5vbnBhcnRpdGlvbmVkIHRhYmxlICov CisJCURlZmluZUluZGV4Q29uY3VycmVudEludGVybmFsKHRhYmxlSWQsIGluZGV4UmVsYXRp b25JZCwKKwkJCQkJCQkJCSAgaW5kZXhJbmZvLCBoZWFwbG9ja3RhZywgaGVhcHJlbGlkKTsK KwkJcGdzdGF0X3Byb2dyZXNzX2VuZF9jb21tYW5kKCk7CisJCXJldHVybiBhZGRyZXNzOwor CX0KKwllbHNlCisJeworCQkvKgorCQkgKiBGb3IgQ0lDIG9uIGEgcGFydGl0aW9uZWQgdGFi bGUsIGZpbmlzaCBieSBidWlsZGluZyBpbmRleGVzIG9uCisJCSAqIHBhcnRpdGlvbnMKKwkJ ICovCisKKwkJTGlzdENlbGwgICAqbGM7CisJCUxpc3QJICAgKmNoaWxkczsKKwkJTGlzdAkg ICAqdG9zZXR2YWxpZCA9IE5JTDsKKwkJTWVtb3J5Q29udGV4dCBjaWNfY29udGV4dCwKKwkJ CQkJb2xkX2NvbnRleHQ7CisKKwkJLyogQ3JlYXRlIHNwZWNpYWwgbWVtb3J5IGNvbnRleHQg Zm9yIGNyb3NzLXRyYW5zYWN0aW9uIHN0b3JhZ2UgKi8KKwkJY2ljX2NvbnRleHQgPSBBbGxv Y1NldENvbnRleHRDcmVhdGUoUG9ydGFsQ29udGV4dCwKKwkJCQkJCQkJCQkJIkNyZWF0ZSBp bmRleCBjb25jdXJyZW50bHkiLAorCQkJCQkJCQkJCQlBTExPQ1NFVF9ERUZBVUxUX1NJWkVT KTsKKworCQlvbGRfY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhjaWNfY29udGV4 dCk7CisJCWNoaWxkcyA9IGZpbmRfYWxsX2luaGVyaXRvcnMoaW5kZXhSZWxhdGlvbklkLCBT aGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2ssIE5VTEwpOworCQlNZW1vcnlDb250ZXh0U3dpdGNo VG8ob2xkX2NvbnRleHQpOworCisJCWZvcmVhY2gobGMsIGNoaWxkcykKKwkJeworCQkJT2lk CQkJaW5kcmVsaWQgPSBsZmlyc3Rfb2lkKGxjKTsKKwkJCU9pZAkJCXRhYnJlbGlkOworCQkJ Y2hhcgkJcmVsa2luZDsKKworCQkJLyoKKwkJCSAqIFBhcnRpdGlvbiBjb3VsZCBoYXZlIGJl ZW4gZHJvcHBlZCwgc2luY2Ugd2UgbG9va2VkIGl0IHVwLiBJbgorCQkJICogdGhpcyBjYXNl IGNvbnNpZGVyIGl0IGRvbmUgYW5kIGdvIHRvIHRoZSBuZXh0IG9uZS4KKwkJCSAqLworCQkJ dGFicmVsaWQgPSBJbmRleEdldFJlbGF0aW9uKGluZHJlbGlkLCB0cnVlKTsKKwkJCWlmICgh dGFicmVsaWQpCisJCQl7CisJCQkJcGdzdGF0X3Byb2dyZXNzX2luY3JfcGFyYW0oUFJPR1JF U1NfQ1JFQVRFSURYX1BBUlRJVElPTlNfRE9ORSwgMSk7CisJCQkJY29udGludWU7CisJCQl9 CisJCQlyZWwgPSB0cnlfdGFibGVfb3Blbih0YWJyZWxpZCwgU2hhcmVVcGRhdGVFeGNsdXNp dmVMb2NrKTsKKwkJCWlmICghcmVsKQorCQkJeworCQkJCXBnc3RhdF9wcm9ncmVzc19pbmNy X3BhcmFtKFBST0dSRVNTX0NSRUFURUlEWF9QQVJUSVRJT05TX0RPTkUsIDEpOworCQkJCWNv bnRpbnVlOworCQkJfQorCisJCQkvKgorCQkJICogUHJlLWV4aXN0aW5nIHBhcnRpdGlvbnMg d2hpY2ggd2VyZSBBVFRBQ0hFRCB3ZXJlIGFscmVhZHkKKwkJCSAqIGNvdW50ZWQgaW4gdGhl IHByb2dyZXNzIHJlcG9ydC4KKwkJCSAqLworCQkJaWYgKGdldF9pbmRleF9pc3ZhbGlkKGlu ZHJlbGlkKSkKKwkJCXsKKwkJCQl0YWJsZV9jbG9zZShyZWwsIFNoYXJlVXBkYXRlRXhjbHVz aXZlTG9jayk7CisJCQkJY29udGludWU7CisJCQl9CisKKwkJCS8qCisJCQkgKiBQYXJ0aXRp b25lZCBpbmRleGVzIGFyZSBjb3VudGVkIGluIHRoZSBwcm9ncmVzcyByZXBvcnQsIGJ1dAor CQkJICogZG9uJ3QgbmVlZCB0byBiZSBmdXJ0aGVyIHByb2Nlc3NlZC4KKwkJCSAqLworCQkJ cmVsa2luZCA9IGdldF9yZWxfcmVsa2luZChpbmRyZWxpZCk7CisJCQlpZiAoIVJFTEtJTkRf SEFTX1NUT1JBR0UocmVsa2luZCkpCisJCQl7CisJCQkJLyogVGhlIHRvcGxldmVsIGluZGV4 IGRvZXNuJ3QgY291bnQgdG93YXJkcyAicGFydGl0aW9ucyBkb25lIiAqLworCQkJCWlmIChp bmRyZWxpZCAhPSBpbmRleFJlbGF0aW9uSWQpCisJCQkJCXBnc3RhdF9wcm9ncmVzc19pbmNy X3BhcmFtKFBST0dSRVNTX0NSRUFURUlEWF9QQVJUSVRJT05TX0RPTkUsIDEpOworCisJCQkJ LyoKKwkJCQkgKiBCdWlsZCB1cCBhIGxpc3Qgb2YgYWxsIHRoZSBpbnRlcm1lZGlhdGUgcGFy dGl0aW9uZWQgdGFibGVzCisJCQkJICogd2hpY2ggd2lsbCBsYXRlciBuZWVkIHRvIGJlIHNl dCB2YWxpZC4KKwkJCQkgKi8KKwkJCQlvbGRfY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhjaWNfY29udGV4dCk7CisJCQkJdG9zZXR2YWxpZCA9IGxhcHBlbmRfb2lkKHRvc2V0 dmFsaWQsIGluZHJlbGlkKTsKKwkJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkX2NvbnRl eHQpOworCQkJCXRhYmxlX2Nsb3NlKHJlbCwgU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrKTsK KwkJCQljb250aW51ZTsKKwkJCX0KKworCQkJaGVhcHJlbGlkID0gcmVsLT5yZF9sb2NrSW5m by5sb2NrUmVsSWQ7CisKKwkJCS8qCisJCQkgKiBDbG9zZSB0aGUgdGFibGUgYnV0IHJldGFp biB0aGUgbG9jaywgdGhhdCBzaG91bGQgYmUgZXh0ZW5kZWQgdG8KKwkJCSAqIHNlc3Npb24g bGV2ZWwgaW4gRGVmaW5lSW5kZXhDb25jdXJyZW50SW50ZXJuYWwuCisJCQkgKi8KKwkJCXRh YmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKwkJCVNFVF9MT0NLVEFHX1JFTEFUSU9OKGhlYXBs b2NrdGFnLCBoZWFwcmVsaWQuZGJJZCwgaGVhcHJlbGlkLnJlbElkKTsKKworCQkJLyogUHJv Y2VzcyBlYWNoIHBhcnRpdGlvbiBpbiBhIHNlcGFyYXRlIHRyYW5zYWN0aW9uICovCisJCQlE ZWZpbmVJbmRleENvbmN1cnJlbnRJbnRlcm5hbCh0YWJyZWxpZCwgaW5kcmVsaWQsIGluZGV4 SW5mbywKKwkJCQkJCQkJCQkgIGhlYXBsb2NrdGFnLCBoZWFwcmVsaWQpOworCisJCQlQdXNo QWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsKKwkJCXBnc3RhdF9w cm9ncmVzc19pbmNyX3BhcmFtKFBST0dSRVNTX0NSRUFURUlEWF9QQVJUSVRJT05TX0RPTkUs IDEpOworCQl9CisKKwkJLyogU2V0IGFzIHZhbGlkIGFsbCBwYXJ0aXRpb25lZCBpbmRleGVz LCBpbmNsdWRpbmcgdGhlIHBhcmVudCAqLworCQlmb3JlYWNoKGxjLCB0b3NldHZhbGlkKQor CQl7CisJCQlPaWQJCQlpbmRyZWxpZCA9IGxmaXJzdF9vaWQobGMpOworCQkJUmVsYXRpb24J aW5kcmVsID0gdHJ5X2luZGV4X29wZW4oaW5kcmVsaWQsIFNoYXJlVXBkYXRlRXhjbHVzaXZl TG9jayk7CisKKwkJCWlmICghaW5kcmVsKQorCQkJCWNvbnRpbnVlOworCQkJaW5kZXhfc2V0 X3N0YXRlX2ZsYWdzKGluZHJlbGlkLCBJTkRFWF9DUkVBVEVfU0VUX1JFQURZKTsKKwkJCUNv bW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisJCQlpbmRleF9zZXRfc3RhdGVfZmxhZ3MoaW5k cmVsaWQsIElOREVYX0NSRUFURV9TRVRfVkFMSUQpOworCQkJaW5kZXhfY2xvc2UoaW5kcmVs LCBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2spOworCQl9CisKKwkJTWVtb3J5Q29udGV4dERl bGV0ZShjaWNfY29udGV4dCk7CisJCXBnc3RhdF9wcm9ncmVzc19lbmRfY29tbWFuZCgpOwor CQlQb3BBY3RpdmVTbmFwc2hvdCgpOworCQlyZXR1cm4gYWRkcmVzczsKKwl9Cit9CisKKwor c3RhdGljIHZvaWQKK0RlZmluZUluZGV4Q29uY3VycmVudEludGVybmFsKE9pZCB0YWJsZUlk LCBPaWQgaW5kZXhSZWxhdGlvbklkLCBJbmRleEluZm8gKmluZGV4SW5mbywKKwkJCQkJCQkg IExPQ0tUQUcgaGVhcGxvY2t0YWcsIExvY2tSZWxJZCBoZWFwcmVsaWQpCit7CisJVHJhbnNh Y3Rpb25JZCBsaW1pdFhtaW47CisJU25hcHNob3QJc25hcHNob3Q7CisKKwkvKiBJcyBpbmRl eCBzYWZlIGZvciBvdGhlcnMgdG8gaWdub3JlPyAgU2VlIHNldF9pbmRleHNhZmVfcHJvY2Zs YWdzKCkgKi8KKwlib29sCQlzYWZlX2luZGV4ID0gaW5kZXhJbmZvLT5paV9FeHByZXNzaW9u cyA9PSBOSUwgJiYKKwkJaW5kZXhJbmZvLT5paV9QcmVkaWNhdGUgPT0gTklMOworCiAJLyoK IAkgKiBGb3IgYSBjb25jdXJyZW50IGJ1aWxkLCBpdCdzIGltcG9ydGFudCB0byBtYWtlIHRo ZSBjYXRhbG9nIGVudHJpZXMKIAkgKiB2aXNpYmxlIHRvIG90aGVyIHRyYW5zYWN0aW9ucyBi ZWZvcmUgd2Ugc3RhcnQgdG8gYnVpbGQgdGhlIGluZGV4LiBUaGF0CkBAIC0xNzk1LDEwICsx OTE3LDYgQEAgRGVmaW5lSW5kZXgoT2lkIHRhYmxlSWQsCiAJICogTGFzdCB0aGluZyB0byBk byBpcyByZWxlYXNlIHRoZSBzZXNzaW9uLWxldmVsIGxvY2sgb24gdGhlIHBhcmVudCB0YWJs ZS4KIAkgKi8KIAlVbmxvY2tSZWxhdGlvbklkRm9yU2Vzc2lvbigmaGVhcHJlbGlkLCBTaGFy ZVVwZGF0ZUV4Y2x1c2l2ZUxvY2spOwotCi0JcGdzdGF0X3Byb2dyZXNzX2VuZF9jb21tYW5k KCk7Ci0KLQlyZXR1cm4gYWRkcmVzczsKIH0KIAogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9p c29sYXRpb24vZXhwZWN0ZWQvcGFydGl0aW9uZWQtY2ljLm91dCBiL3NyYy90ZXN0L2lzb2xh dGlvbi9leHBlY3RlZC9wYXJ0aXRpb25lZC1jaWMub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAuLmI2NmFjYzZmNmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvcGFydGl0aW9uZWQtY2ljLm91dApAQCAtMCwwICsx LDEzNSBAQAorUGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDMgc2Vzc2lvbnMKKworc3RhcnRpbmcg cGVybXV0YXRpb246IGxvY2tfcDEgY2ljIGluc2VydCBkcm9wMiBjb21taXQgY2hrX2NvbnRl bnQKK3N0ZXAgbG9ja19wMTogbG9jayBjaWN0YWJfcGFydF8xIGluIHJvdyBleGNsdXNpdmUg bW9kZTsKK3N0ZXAgY2ljOiBDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIE9OIGNpY3RhYihp KTsgPHdhaXRpbmcgLi4uPgorc3RlcCBpbnNlcnQ6IGluc2VydCBpbnRvIGNpY3RhYiB2YWx1 ZXMgKDEsIDEpLCAoMTEsIDEpOworc3RlcCBkcm9wMjogRFJPUCBUQUJMRSBjaWN0YWJfcGFy dF8yOworc3RlcCBjb21taXQ6IENPTU1JVDsKK3N0ZXAgY2ljOiA8Li4uIGNvbXBsZXRlZD4K K3N0ZXAgY2hrX2NvbnRlbnQ6IAorICBzZXQgZW5hYmxlX3NlcXNjYW4gdG8gb2ZmOworICBl eHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gY2ljdGFiIHdoZXJlIGkgPiAwOwor ICBzZWxlY3QgKiBmcm9tIGNpY3RhYiB3aGVyZSBpID4gMDsKKworUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K K0luZGV4IFNjYW4gdXNpbmcgY2ljdGFiX3BhcnRfMV9pX2lkeCBvbiBjaWN0YWJfcGFydF8x IGNpY3RhYgorICBJbmRleCBDb25kOiAoaSA+IDApICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCisoMiByb3dzKQorCitpfGoKKy0rLQorMXwwCisxfDEKKygyIHJv d3MpCisKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxvY2tfcDIgY2ljIGluc2VydCBkcm9w MSBjb21taXQgY2hrX2NvbnRlbnQKK3N0ZXAgbG9ja19wMjogbG9jayBjaWN0YWJfcGFydF8y IGluIHJvdyBleGNsdXNpdmUgbW9kZTsKK3N0ZXAgY2ljOiBDUkVBVEUgSU5ERVggQ09OQ1VS UkVOVExZIE9OIGNpY3RhYihpKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBpbnNlcnQ6IGluc2Vy dCBpbnRvIGNpY3RhYiB2YWx1ZXMgKDEsIDEpLCAoMTEsIDEpOworc3RlcCBkcm9wMTogRFJP UCBUQUJMRSBjaWN0YWJfcGFydF8xOworc3RlcCBjb21taXQ6IENPTU1JVDsKK3N0ZXAgY2lj OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgY2hrX2NvbnRlbnQ6IAorICBzZXQgZW5hYmxlX3Nl cXNjYW4gdG8gb2ZmOworICBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gY2lj dGFiIHdoZXJlIGkgPiAwOworICBzZWxlY3QgKiBmcm9tIGNpY3RhYiB3aGVyZSBpID4gMDsK KworUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KK0luZGV4IFNjYW4gdXNpbmcgY2ljdGFiX3BhcnRfMl9pX2lk eCBvbiBjaWN0YWJfcGFydF8yIGNpY3RhYgorICBJbmRleCBDb25kOiAoaSA+IDApICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisoMiByb3dzKQorCisgaXxqCist LSstCisxMXwwCisxMXwxCisoMiByb3dzKQorCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBs b2NrX3AxIGNpYyBpbnNlcnQgZGV0YWNoMiBjb21taXQgY2hrX2NvbnRlbnQgY2hrX2NvbnRl bnRfcGFydDIKK3N0ZXAgbG9ja19wMTogbG9jayBjaWN0YWJfcGFydF8xIGluIHJvdyBleGNs dXNpdmUgbW9kZTsKK3N0ZXAgY2ljOiBDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIE9OIGNp Y3RhYihpKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBpbnNlcnQ6IGluc2VydCBpbnRvIGNpY3Rh YiB2YWx1ZXMgKDEsIDEpLCAoMTEsIDEpOworc3RlcCBkZXRhY2gyOiBBTFRFUiBUQUJMRSBj aWN0YWIgREVUQUNIIFBBUlRJVElPTiBjaWN0YWJfcGFydF8yOworc3RlcCBjb21taXQ6IENP TU1JVDsKK3N0ZXAgY2ljOiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgY2hrX2NvbnRlbnQ6IAor ICBzZXQgZW5hYmxlX3NlcXNjYW4gdG8gb2ZmOworICBleHBsYWluIChjb3N0cyBvZmYpIHNl bGVjdCAqIGZyb20gY2ljdGFiIHdoZXJlIGkgPiAwOworICBzZWxlY3QgKiBmcm9tIGNpY3Rh YiB3aGVyZSBpID4gMDsKKworUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0luZGV4IFNjYW4gdXNpbmcgY2lj dGFiX3BhcnRfMV9pX2lkeCBvbiBjaWN0YWJfcGFydF8xIGNpY3RhYgorICBJbmRleCBDb25k OiAoaSA+IDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisoMiBy b3dzKQorCitpfGoKKy0rLQorMXwwCisxfDEKKygyIHJvd3MpCisKK3N0ZXAgY2hrX2NvbnRl bnRfcGFydDI6IAorICBzZXQgZW5hYmxlX3NlcXNjYW4gdG8gb2ZmOworICBleHBsYWluIChj b3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gY2ljdGFiX3BhcnRfMiB3aGVyZSBpID4gMDsKKyAg c2VsZWN0ICogZnJvbSBjaWN0YWJfcGFydF8yIHdoZXJlIGkgPiAwOworCitRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0luZGV4IFNj YW4gdXNpbmcgY2ljdGFiX3BhcnRfMl9pX2lkeCBvbiBjaWN0YWJfcGFydF8yCisgIEluZGV4 IENvbmQ6IChpID4gMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorKDIgcm93 cykKKworIGl8agorLS0rLQorMTF8MAorMTF8MQorKDIgcm93cykKKworCitzdGFydGluZyBw ZXJtdXRhdGlvbjogbG9ja19wMiBjaWMgaW5zZXJ0IGRldGFjaDEgY29tbWl0IGNoa19jb250 ZW50IGNoa19jb250ZW50X3BhcnQxCitzdGVwIGxvY2tfcDI6IGxvY2sgY2ljdGFiX3BhcnRf MiBpbiByb3cgZXhjbHVzaXZlIG1vZGU7CitzdGVwIGNpYzogQ1JFQVRFIElOREVYIENPTkNV UlJFTlRMWSBPTiBjaWN0YWIoaSk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgaW5zZXJ0OiBpbnNl cnQgaW50byBjaWN0YWIgdmFsdWVzICgxLCAxKSwgKDExLCAxKTsKK3N0ZXAgZGV0YWNoMTog QUxURVIgVEFCTEUgY2ljdGFiIERFVEFDSCBQQVJUSVRJT04gY2ljdGFiX3BhcnRfMTsKK3N0 ZXAgY29tbWl0OiBDT01NSVQ7CitzdGVwIGNpYzogPC4uLiBjb21wbGV0ZWQ+CitzdGVwIGNo a19jb250ZW50OiAKKyAgc2V0IGVuYWJsZV9zZXFzY2FuIHRvIG9mZjsKKyAgZXhwbGFpbiAo Y29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGNpY3RhYiB3aGVyZSBpID4gMDsKKyAgc2VsZWN0 ICogZnJvbSBjaWN0YWIgd2hlcmUgaSA+IDA7CisKK1FVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitJbmRleCBT Y2FuIHVzaW5nIGNpY3RhYl9wYXJ0XzJfaV9pZHggb24gY2ljdGFiX3BhcnRfMiBjaWN0YWIK KyAgSW5kZXggQ29uZDogKGkgPiAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorKDIgcm93cykKKworIGl8agorLS0rLQorMTF8MAorMTF8MQorKDIgcm93cykK Kworc3RlcCBjaGtfY29udGVudF9wYXJ0MTogCisgIHNldCBlbmFibGVfc2Vxc2NhbiB0byBv ZmY7CisgIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBjaWN0YWJfcGFydF8x IHdoZXJlIGkgPiAwOworICBzZWxlY3QgKiBmcm9tIGNpY3RhYl9wYXJ0XzEgd2hlcmUgaSA+ IDA7CisKK1FVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorSW5kZXggU2NhbiB1c2luZyBjaWN0YWJfcGFydF8xX2lfaWR4IG9uIGNpY3Rh Yl9wYXJ0XzEKKyAgSW5kZXggQ29uZDogKGkgPiAwKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCisoMiByb3dzKQorCitpfGoKKy0rLQorMXwwCisxfDEKKygyIHJvd3MpCisK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgYi9z cmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCmluZGV4IDAzNDJlYjM5ZTQu LjU3Yjc5NDg2ODcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25f c2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQpA QCAtMTE0LDMgKzExNCw0IEBAIHRlc3Q6IHNlcmlhbGl6YWJsZS1wYXJhbGxlbC0yCiB0ZXN0 OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMwogdGVzdDogbWF0dmlldy13cml0ZS1za2V3CiB0 ZXN0OiBsb2NrLW5vd2FpdAordGVzdDogcGFydGl0aW9uZWQtY2ljCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9pc29sYXRpb24vc3BlY3MvcGFydGl0aW9uZWQtY2ljLnNwZWMgYi9zcmMvdGVz dC9pc29sYXRpb24vc3BlY3MvcGFydGl0aW9uZWQtY2ljLnNwZWMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTVmMGJiMmI0NwotLS0gL2Rldi9udWxsCisrKyBi L3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9wYXJ0aXRpb25lZC1jaWMuc3BlYwpAQCAtMCww ICsxLDU3IEBACisjIFRlc3QgdGhlIGFiaWxpdHkgdG8gZHJvcC9kZXRhY2ggcGFydGl0aW9u cyB3aGlsZSBDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlzIHJ1bm5pbmcuCisjIFRvIGFj aGlldmUgdGhpcywgc3RhcnQgYSB0cmFuc2FjdGlvbiB0aGF0IHdpbGwgcGF1c2UgQ0lDIGlu IHByb2dyZXNzIGJ5CisjIGxvY2tpbmcgYSBwYXJ0aXRpb24gaW4gcm93IGV4Y2x1c2l2ZSBt b2RlLCBnaXZpbmcgdXMgYSBjaGFuZ2UgdG8gZHJvcC9kZXRhY2ggYW5vdGhlciBwYXJ0aXRp b24uCisjIERyb3BwaW5nL2RldGFjaGluZyBpcyB0ZXN0ZWQgZm9yIGVhY2ggcGFydGl0aW9u IHRvIHRlc3QgdHdvIHNjZW5hcmlvczoKKyMgd2hlbiB0aGUgcGFydGl0aW9uIGhhcyBhbHJl YWR5IGJlZW4gaW5kZXhlZCBhbmQgd2hlbiBpdCdzIHlldCB0byBiZSBpbmRleGVkLgorCitz ZXR1cCB7CisgIGNyZWF0ZSB0YWJsZSBjaWN0YWIoaSBpbnQsIGogaW50KSBwYXJ0aXRpb24g YnkgcmFuZ2UoaSk7CisgIGNyZWF0ZSB0YWJsZSBjaWN0YWJfcGFydF8xIHBhcnRpdGlvbiBv ZiBjaWN0YWIgZm9yIHZhbHVlcyBmcm9tICgwKSB0byAoMTApOworICBjcmVhdGUgdGFibGUg Y2ljdGFiX3BhcnRfMiBwYXJ0aXRpb24gb2YgY2ljdGFiIGZvciB2YWx1ZXMgZnJvbSAoMTAp IHRvICgyMCk7CisKKyAgaW5zZXJ0IGludG8gY2ljdGFiIHZhbHVlcyAoMSwgMCksICgxMSwg MCk7Cit9CisKK3RlYXJkb3duIHsKKyAgICBkcm9wIHRhYmxlIGlmIGV4aXN0cyBjaWN0YWJf cGFydF8xOworICAgIGRyb3AgdGFibGUgaWYgZXhpc3RzIGNpY3RhYl9wYXJ0XzI7CisgICAg ZHJvcCB0YWJsZSBjaWN0YWI7Cit9CisKK3Nlc3Npb24gczEKK3NldHVwIHtCRUdJTjt9Citz dGVwIGxvY2tfcDEgeyBsb2NrIGNpY3RhYl9wYXJ0XzEgaW4gcm93IGV4Y2x1c2l2ZSBtb2Rl OyB9CitzdGVwIGxvY2tfcDIgeyBsb2NrIGNpY3RhYl9wYXJ0XzIgaW4gcm93IGV4Y2x1c2l2 ZSBtb2RlOyB9CitzdGVwIGNvbW1pdCB7IENPTU1JVDsgfQorCitzZXNzaW9uIHMyCitzdGVw IGNpYyB7IENSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgT04gY2ljdGFiKGkpOyB9CitzdGVw IGNoa19jb250ZW50IHsKKyAgc2V0IGVuYWJsZV9zZXFzY2FuIHRvIG9mZjsKKyAgZXhwbGFp biAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGNpY3RhYiB3aGVyZSBpID4gMDsKKyAgc2Vs ZWN0ICogZnJvbSBjaWN0YWIgd2hlcmUgaSA+IDA7Cit9CisKK3N0ZXAgY2hrX2NvbnRlbnRf cGFydDEgeworICBzZXQgZW5hYmxlX3NlcXNjYW4gdG8gb2ZmOworICBleHBsYWluIChjb3N0 cyBvZmYpIHNlbGVjdCAqIGZyb20gY2ljdGFiX3BhcnRfMSB3aGVyZSBpID4gMDsKKyAgc2Vs ZWN0ICogZnJvbSBjaWN0YWJfcGFydF8xIHdoZXJlIGkgPiAwOworfQorCitzdGVwIGNoa19j b250ZW50X3BhcnQyIHsKKyAgc2V0IGVuYWJsZV9zZXFzY2FuIHRvIG9mZjsKKyAgZXhwbGFp biAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGNpY3RhYl9wYXJ0XzIgd2hlcmUgaSA+IDA7 CisgIHNlbGVjdCAqIGZyb20gY2ljdGFiX3BhcnRfMiB3aGVyZSBpID4gMDsKK30KKworc2Vz c2lvbiBzMworc3RlcCBkZXRhY2gxIHsgQUxURVIgVEFCTEUgY2ljdGFiIERFVEFDSCBQQVJU SVRJT04gY2ljdGFiX3BhcnRfMTsgfQorc3RlcCBkZXRhY2gyIHsgQUxURVIgVEFCTEUgY2lj dGFiIERFVEFDSCBQQVJUSVRJT04gY2ljdGFiX3BhcnRfMjsgfQorc3RlcCBkcm9wMSB7IERS T1AgVEFCTEUgY2ljdGFiX3BhcnRfMTsgfQorc3RlcCBkcm9wMiB7IERST1AgVEFCTEUgY2lj dGFiX3BhcnRfMjsgfQorc3RlcCBpbnNlcnQgeyBpbnNlcnQgaW50byBjaWN0YWIgdmFsdWVz ICgxLCAxKSwgKDExLCAxKTsgfQorCitwZXJtdXRhdGlvbiBsb2NrX3AxIGNpYyBpbnNlcnQg ZHJvcDIgY29tbWl0IGNoa19jb250ZW50CitwZXJtdXRhdGlvbiBsb2NrX3AyIGNpYyBpbnNl cnQgZHJvcDEgY29tbWl0IGNoa19jb250ZW50CitwZXJtdXRhdGlvbiBsb2NrX3AxIGNpYyBp bnNlcnQgZGV0YWNoMiBjb21taXQgY2hrX2NvbnRlbnQgY2hrX2NvbnRlbnRfcGFydDIKK3Bl cm11dGF0aW9uIGxvY2tfcDIgY2ljIGluc2VydCBkZXRhY2gxIGNvbW1pdCBjaGtfY29udGVu dCBjaGtfY29udGVudF9wYXJ0MQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9pbmRleGluZy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luZGV4aW5n Lm91dAppbmRleCBmMjU3MjNkYTkyLi40NGE2Y2YzOWRmIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2luZGV4aW5nLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2luZGV4aW5nLm91dApAQCAtNTAsMTEgKzUwLDEzMCBAQCBzZWxlY3QgcmVs bmFtZSwgcmVsa2luZCwgcmVsaGFzc3ViY2xhc3MsIGluaHBhcmVudDo6cmVnY2xhc3MKICg4 IHJvd3MpCiAKIGRyb3AgdGFibGUgaWR4cGFydDsKLS0tIFNvbWUgdW5zdXBwb3J0ZWQgZmVh dHVyZXMKKy0tIENJQyBvbiBwYXJ0aXRpb25lZCB0YWJsZQogY3JlYXRlIHRhYmxlIGlkeHBh cnQgKGEgaW50LCBiIGludCwgYyB0ZXh0KSBwYXJ0aXRpb24gYnkgcmFuZ2UgKGEpOwotY3Jl YXRlIHRhYmxlIGlkeHBhcnQxIHBhcnRpdGlvbiBvZiBpZHhwYXJ0IGZvciB2YWx1ZXMgZnJv bSAoMCkgdG8gKDEwKTsKLWNyZWF0ZSBpbmRleCBjb25jdXJyZW50bHkgb24gaWR4cGFydCAo YSk7Ci1FUlJPUjogIGNhbm5vdCBjcmVhdGUgaW5kZXggb24gcGFydGl0aW9uZWQgdGFibGUg ImlkeHBhcnQiIGNvbmN1cnJlbnRseQorY3JlYXRlIHRhYmxlIGlkeHBhcnQxIHBhcnRpdGlv biBvZiBpZHhwYXJ0IGZvciB2YWx1ZXMgZnJvbSAoMCkgdG8gKDEwKSBwYXJ0aXRpb24gYnkg cmFuZ2UoYSk7CitjcmVhdGUgdGFibGUgaWR4cGFydDExIHBhcnRpdGlvbiBvZiBpZHhwYXJ0 MSBmb3IgdmFsdWVzIGZyb20gKDApIHRvICgxMCkgcGFydGl0aW9uIGJ5IHJhbmdlKGEpOwor Y3JlYXRlIHRhYmxlIGlkeHBhcnQxMTEgcGFydGl0aW9uIG9mIGlkeHBhcnQxMSBkZWZhdWx0 IHBhcnRpdGlvbiBieSByYW5nZShhKTsKK2NyZWF0ZSB0YWJsZSBpZHhwYXJ0MTExMSBwYXJ0 aXRpb24gb2YgaWR4cGFydDExMSBkZWZhdWx0IHBhcnRpdGlvbiBieSByYW5nZShhKTsKK2Ny ZWF0ZSB0YWJsZSBpZHhwYXJ0MiBwYXJ0aXRpb24gb2YgaWR4cGFydCBmb3IgdmFsdWVzIGZy b20gKDEwKSB0byAoMjApOworY3JlYXRlIHRhYmxlIGlkeHBhcnQzIHBhcnRpdGlvbiBvZiBp ZHhwYXJ0IGZvciB2YWx1ZXMgZnJvbSAoMzApIHRvICg0MCkgcGFydGl0aW9uIGJ5IHJhbmdl KGEpOworY3JlYXRlIHRhYmxlIGlkeHBhcnQzMSBwYXJ0aXRpb24gb2YgaWR4cGFydDMgZGVm YXVsdDsKK2luc2VydCBpbnRvIGlkeHBhcnQyIHZhbHVlcygxMCksKDEwKTsgLS0gbm90IHVu aXF1ZQorY3JlYXRlIGluZGV4IGNvbmN1cnJlbnRseSBvbiBpZHhwYXJ0MTEgKGEpOyAtLSBw YXJ0aXRpb25lZCBhbmQgcGFydGl0aW9uLCB3aXRoIG5vIGxlYXZlcworY3JlYXRlIGluZGV4 IGNvbmN1cnJlbnRseSBvbiBpZHhwYXJ0MSAoYSk7IC0tIHBhcnRpdGlvbmVkIGFuZCBwYXJ0 aXRpb24KK2NyZWF0ZSBpbmRleCBjb25jdXJyZW50bHkgb24gaWR4cGFydDIgKGEpOyAtLSBs ZWFmCitjcmVhdGUgaW5kZXggY29uY3VycmVudGx5IG9uIGlkeHBhcnQgKGEpOyAtLSBwYXJ0 aXRpb25lZAorY3JlYXRlIHVuaXF1ZSBpbmRleCBjb25jdXJyZW50bHkgb24gaWR4cGFydCAo YSk7IC0tIHBhcnRpdGlvbmVkLCB1bmlxdWUgZmFpbHVyZQorRVJST1I6ICBjb3VsZCBub3Qg Y3JlYXRlIHVuaXF1ZSBpbmRleCAiaWR4cGFydDJfYV9pZHgxIgorREVUQUlMOiAgS2V5IChh KT0oMTApIGlzIGR1cGxpY2F0ZWQuCitcZCBpZHhwYXJ0CisgICAgICAgIFBhcnRpdGlvbmVk IHRhYmxlICJwdWJsaWMuaWR4cGFydCIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQYXJ0 aXRpb24ga2V5OiBSQU5HRSAoYSkKK0luZGV4ZXM6CisgICAgImlkeHBhcnRfYV9pZHgiIGJ0 cmVlIChhKQorICAgICJpZHhwYXJ0X2FfaWR4MSIgVU5JUVVFLCBidHJlZSAoYSkgSU5WQUxJ RAorTnVtYmVyIG9mIHBhcnRpdGlvbnM6IDMgKFVzZSBcZCsgdG8gbGlzdCB0aGVtLikKKwor XGQgaWR4cGFydDEKKyAgICAgICAgUGFydGl0aW9uZWQgdGFibGUgInB1YmxpYy5pZHhwYXJ0 MSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0 IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t CisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAg IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAg ICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQYXJ0aXRpb24gb2Y6IGlkeHBhcnQgRk9S IFZBTFVFUyBGUk9NICgwKSBUTyAoMTApCitQYXJ0aXRpb24ga2V5OiBSQU5HRSAoYSkKK0lu ZGV4ZXM6CisgICAgImlkeHBhcnQxX2FfaWR4IiBidHJlZSAoYSkKKyAgICAiaWR4cGFydDFf YV9pZHgxIiBVTklRVUUsIGJ0cmVlIChhKSBJTlZBTElECitOdW1iZXIgb2YgcGFydGl0aW9u czogMSAoVXNlIFxkKyB0byBsaXN0IHRoZW0uKQorCitcZCBpZHhwYXJ0MTEKKyAgICAgICBQ YXJ0aXRpb25lZCB0YWJsZSAicHVibGljLmlkeHBhcnQxMSIKKyBDb2x1bW4gfCAgVHlwZSAg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCitQYXJ0aXRpb24gb2Y6IGlkeHBhcnQxIEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8g KDEwKQorUGFydGl0aW9uIGtleTogUkFOR0UgKGEpCitJbmRleGVzOgorICAgICJpZHhwYXJ0 MTFfYV9pZHgiIGJ0cmVlIChhKQorICAgICJpZHhwYXJ0MTFfYV9pZHgxIiBVTklRVUUsIGJ0 cmVlIChhKSBJTlZBTElECitOdW1iZXIgb2YgcGFydGl0aW9uczogMSAoVXNlIFxkKyB0byBs aXN0IHRoZW0uKQorCitcZCBpZHhwYXJ0MTExCisgICAgICAgUGFydGl0aW9uZWQgdGFibGUg InB1YmxpYy5pZHhwYXJ0MTExIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK KyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BhcnRpdGlv biBvZjogaWR4cGFydDExIERFRkFVTFQKK1BhcnRpdGlvbiBrZXk6IFJBTkdFIChhKQorSW5k ZXhlczoKKyAgICAiaWR4cGFydDExMV9hX2lkeCIgYnRyZWUgKGEpCisgICAgImlkeHBhcnQx MTFfYV9pZHgxIiBVTklRVUUsIGJ0cmVlIChhKSBJTlZBTElECitOdW1iZXIgb2YgcGFydGl0 aW9uczogMSAoVXNlIFxkKyB0byBsaXN0IHRoZW0uKQorCitcZCBpZHhwYXJ0MTExMQorICAg ICAgUGFydGl0aW9uZWQgdGFibGUgInB1YmxpYy5pZHhwYXJ0MTExMSIKKyBDb2x1bW4gfCAg VHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwgaW50 ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCitQYXJ0aXRpb24gb2Y6IGlkeHBhcnQxMTEgREVGQVVMVAorUGFydGl0 aW9uIGtleTogUkFOR0UgKGEpCitJbmRleGVzOgorICAgICJpZHhwYXJ0MTExMV9hX2lkeCIg YnRyZWUgKGEpCisgICAgImlkeHBhcnQxMTExX2FfaWR4MSIgVU5JUVVFLCBidHJlZSAoYSkg SU5WQUxJRAorTnVtYmVyIG9mIHBhcnRpdGlvbnM6IDAKKworXGQgaWR4cGFydDIKKyAgICAg ICAgICAgICAgVGFibGUgInB1YmxpYy5pZHhwYXJ0MiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCitQYXJ0aXRpb24gb2Y6IGlkeHBhcnQgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDIw KQorSW5kZXhlczoKKyAgICAiaWR4cGFydDJfYV9pZHgiIGJ0cmVlIChhKQorICAgICJpZHhw YXJ0Ml9hX2lkeDEiIFVOSVFVRSwgYnRyZWUgKGEpIElOVkFMSUQKKworXGQgaWR4cGFydDMK KyAgICAgICAgUGFydGl0aW9uZWQgdGFibGUgInB1YmxpYy5pZHhwYXJ0MyIKKyBDb2x1bW4g fCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwg aW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCitQYXJ0aXRpb24gb2Y6IGlkeHBhcnQgRk9SIFZBTFVFUyBGUk9N ICgzMCkgVE8gKDQwKQorUGFydGl0aW9uIGtleTogUkFOR0UgKGEpCitJbmRleGVzOgorICAg ICJpZHhwYXJ0M19hX2lkeCIgYnRyZWUgKGEpCisgICAgImlkeHBhcnQzX2FfaWR4MSIgVU5J UVVFLCBidHJlZSAoYSkgSU5WQUxJRAorTnVtYmVyIG9mIHBhcnRpdGlvbnM6IDEgKFVzZSBc ZCsgdG8gbGlzdCB0aGVtLikKKworXGQgaWR4cGFydDMxCisgICAgICAgICAgICAgVGFibGUg InB1YmxpYy5pZHhwYXJ0MzEiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAor IGMgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGFydGl0aW9u IG9mOiBpZHhwYXJ0MyBERUZBVUxUCitJbmRleGVzOgorICAgICJpZHhwYXJ0MzFfYV9pZHgi IGJ0cmVlIChhKQorICAgICJpZHhwYXJ0MzFfYV9pZHgxIiBVTklRVUUsIGJ0cmVlIChhKSBJ TlZBTElECisKIGRyb3AgdGFibGUgaWR4cGFydDsKIC0tIFZlcmlmeSBidWdmaXggd2l0aCBx dWVyeSBvbiBpbmRleGVkIHBhcnRpdGlvbmVkIHRhYmxlIHdpdGggbm8gcGFydGl0aW9ucwog LS0gaHR0cHM6Ly9wb3N0Z3IuZXMvbS8yMDE4MDEyNDE2MjAwNi5wbWFwZml6bmhnbmd3dGpm QGFsdmhlcnJlLnBnc3FsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbmRl eGluZy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbmRleGluZy5zcWwKaW5kZXggNWYx ZjRiODBjOS4uMzhhNzMwZDg3NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv aW5kZXhpbmcuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2luZGV4aW5nLnNxbApA QCAtMjksMTAgKzI5LDMwIEBAIHNlbGVjdCByZWxuYW1lLCByZWxraW5kLCByZWxoYXNzdWJj bGFzcywgaW5ocGFyZW50OjpyZWdjbGFzcwogCXdoZXJlIHJlbG5hbWUgbGlrZSAnaWR4cGFy dCUnIG9yZGVyIGJ5IHJlbG5hbWU7CiBkcm9wIHRhYmxlIGlkeHBhcnQ7CiAKLS0tIFNvbWUg dW5zdXBwb3J0ZWQgZmVhdHVyZXMKKy0tIENJQyBvbiBwYXJ0aXRpb25lZCB0YWJsZQogY3Jl YXRlIHRhYmxlIGlkeHBhcnQgKGEgaW50LCBiIGludCwgYyB0ZXh0KSBwYXJ0aXRpb24gYnkg cmFuZ2UgKGEpOwotY3JlYXRlIHRhYmxlIGlkeHBhcnQxIHBhcnRpdGlvbiBvZiBpZHhwYXJ0 IGZvciB2YWx1ZXMgZnJvbSAoMCkgdG8gKDEwKTsKLWNyZWF0ZSBpbmRleCBjb25jdXJyZW50 bHkgb24gaWR4cGFydCAoYSk7CitjcmVhdGUgdGFibGUgaWR4cGFydDEgcGFydGl0aW9uIG9m IGlkeHBhcnQgZm9yIHZhbHVlcyBmcm9tICgwKSB0byAoMTApIHBhcnRpdGlvbiBieSByYW5n ZShhKTsKK2NyZWF0ZSB0YWJsZSBpZHhwYXJ0MTEgcGFydGl0aW9uIG9mIGlkeHBhcnQxIGZv ciB2YWx1ZXMgZnJvbSAoMCkgdG8gKDEwKSBwYXJ0aXRpb24gYnkgcmFuZ2UoYSk7CitjcmVh dGUgdGFibGUgaWR4cGFydDExMSBwYXJ0aXRpb24gb2YgaWR4cGFydDExIGRlZmF1bHQgcGFy dGl0aW9uIGJ5IHJhbmdlKGEpOworY3JlYXRlIHRhYmxlIGlkeHBhcnQxMTExIHBhcnRpdGlv biBvZiBpZHhwYXJ0MTExIGRlZmF1bHQgcGFydGl0aW9uIGJ5IHJhbmdlKGEpOworY3JlYXRl IHRhYmxlIGlkeHBhcnQyIHBhcnRpdGlvbiBvZiBpZHhwYXJ0IGZvciB2YWx1ZXMgZnJvbSAo MTApIHRvICgyMCk7CitjcmVhdGUgdGFibGUgaWR4cGFydDMgcGFydGl0aW9uIG9mIGlkeHBh cnQgZm9yIHZhbHVlcyBmcm9tICgzMCkgdG8gKDQwKSBwYXJ0aXRpb24gYnkgcmFuZ2UoYSk7 CitjcmVhdGUgdGFibGUgaWR4cGFydDMxIHBhcnRpdGlvbiBvZiBpZHhwYXJ0MyBkZWZhdWx0 OworCitpbnNlcnQgaW50byBpZHhwYXJ0MiB2YWx1ZXMoMTApLCgxMCk7IC0tIG5vdCB1bmlx dWUKK2NyZWF0ZSBpbmRleCBjb25jdXJyZW50bHkgb24gaWR4cGFydDExIChhKTsgLS0gcGFy dGl0aW9uZWQgYW5kIHBhcnRpdGlvbiwgd2l0aCBubyBsZWF2ZXMKK2NyZWF0ZSBpbmRleCBj b25jdXJyZW50bHkgb24gaWR4cGFydDEgKGEpOyAtLSBwYXJ0aXRpb25lZCBhbmQgcGFydGl0 aW9uCitjcmVhdGUgaW5kZXggY29uY3VycmVudGx5IG9uIGlkeHBhcnQyIChhKTsgLS0gbGVh ZgorY3JlYXRlIGluZGV4IGNvbmN1cnJlbnRseSBvbiBpZHhwYXJ0IChhKTsgLS0gcGFydGl0 aW9uZWQKK2NyZWF0ZSB1bmlxdWUgaW5kZXggY29uY3VycmVudGx5IG9uIGlkeHBhcnQgKGEp OyAtLSBwYXJ0aXRpb25lZCwgdW5pcXVlIGZhaWx1cmUKK1xkIGlkeHBhcnQKK1xkIGlkeHBh cnQxCitcZCBpZHhwYXJ0MTEKK1xkIGlkeHBhcnQxMTEKK1xkIGlkeHBhcnQxMTExCitcZCBp ZHhwYXJ0MgorXGQgaWR4cGFydDMKK1xkIGlkeHBhcnQzMQogZHJvcCB0YWJsZSBpZHhwYXJ0 OwogCiAtLSBWZXJpZnkgYnVnZml4IHdpdGggcXVlcnkgb24gaW5kZXhlZCBwYXJ0aXRpb25l ZCB0YWJsZSB3aXRoIG5vIHBhcnRpdGlvbnMKLS0gCjIuNDMuMAoK --------------Xc05atdIG31yq0hPmonzYLQg--