From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D5E34C61DA4 for ; Sun, 5 Mar 2023 09:49:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229713AbjCEJtT (ORCPT ); Sun, 5 Mar 2023 04:49:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42956 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229535AbjCEJtP (ORCPT ); Sun, 5 Mar 2023 04:49:15 -0500 Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A23AD313 for ; Sun, 5 Mar 2023 01:49:13 -0800 (PST) Received: by mail-ed1-x529.google.com with SMTP id x3so26835349edb.10 for ; Sun, 05 Mar 2023 01:49:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678009752; h=content-transfer-encoding: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=i1NXWkshbGfkpUPFum76bHknO/vpxYG/pfk6G3wkE88=; b=f28fzSBPdgs5Vsb2eBhafb9P8Iqi42pAXvvHC7L57u9epmuuckD3RLBz/3lG9XnZIw lRCSB1mUeoyoY+ow1Ly0K8DoVHnaGj2t+J97AeLA1OT03/nn+Ddnb4p6YzfPOofKOYPI 7bD8AfVZs1+YrbglfnVA04eIHswEP+EM7XPZlGBnoQbhA3rBDnpq7OfvXIScCwNCNgLz c3DzpW0+VMEzPbI4/HSMK7s9pV/IvSbJY1q0PIE9HXqn/lySdr81a9M6sOD4W51All0p i40QrQmFWlbaAnEpS3T0Jd6MDwxUu21YAIQKCJrv8XeMPeVzbE1Jj7pjWuopBgj+8N3J IamA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678009752; h=content-transfer-encoding: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=i1NXWkshbGfkpUPFum76bHknO/vpxYG/pfk6G3wkE88=; b=3a53vvSRJpVN53zkndSGdfvGngydhhSRQdTrb901cNmive9TePF55YhKOHrA2MhaW5 RFP6b5C4PwZhgcd6Ym0MmIznbsZrtwGlsgjSI0T7G8s6pbsUT8usrZWPhokHMRLxNhr/ 4encHdAbsjemWrh4VC4EWqwoy7q78S51/i9kwlajZ4xHw8MotvQ9KHLzpMGnQYZuDSLh PUIIe08nIEYI0bPYIZGBHjp756obVmGMGqpvPVek4RL9rIuIohqIXd1WCcz/WSUEENcy B4DAqWFef+L/0GDwpxS4Hqx8BaT2lQsFH8H8YWWa8jGy9ReAqRcNoMZVVTV6B6Jc3t/L uFSQ== X-Gm-Message-State: AO0yUKWMrYHtBBClH78ifxFrQLmeFdqGohfuvP5++2LhX9jryK5W9WKq yAZdI/s1yLRRzNTSpLBuIZvCmg== X-Google-Smtp-Source: AK7set/RzEpkk4lrGOln6MgcBlaSXb7zQQnXLiHe5Cc4QQ0OSXcLQu4ok9B1u/IwUOSEJ++kxYvapw== X-Received: by 2002:a17:906:178f:b0:878:72d0:2817 with SMTP id t15-20020a170906178f00b0087872d02817mr7044006eje.29.1678009751796; Sun, 05 Mar 2023 01:49:11 -0800 (PST) Received: from ?IPV6:2a02:810d:15c0:828:71e7:13d:1c29:505f? ([2a02:810d:15c0:828:71e7:13d:1c29:505f]) by smtp.gmail.com with ESMTPSA id t16-20020a170906949000b008b30e2a450csm3058517ejx.144.2023.03.05.01.49.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 05 Mar 2023 01:49:11 -0800 (PST) Message-ID: Date: Sun, 5 Mar 2023 10:49:09 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v6 1/2] dt-bindings: i2c: aspeed: support for AST2600-i2cv2 To: Ryan Chen , Wolfram Sang Cc: Joel Stanley , Brendan Higgins , Krzysztof Kozlowski , Andrew Jeffery , "devicetree@vger.kernel.org" , Philipp Zabel , Rob Herring , Benjamin Herrenschmidt , "linux-aspeed@lists.ozlabs.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "openbmc@lists.ozlabs.org" , "linux-i2c@vger.kernel.org" References: <20230226031321.3126756-1-ryan_chen@aspeedtech.com> <20230226031321.3126756-2-ryan_chen@aspeedtech.com> <53090449-58c9-bc03-56df-aa8ae93c0c26@linaro.org> Content-Language: en-US From: Krzysztof Kozlowski In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/03/2023 02:33, Ryan Chen wrote: > Hello Krzysztof, > >> -----Original Message----- >> From: Krzysztof Kozlowski >> Sent: Friday, March 3, 2023 6:41 PM >> To: Ryan Chen ; Wolfram Sang >> >> Cc: Joel Stanley ; Brendan Higgins >> ; Krzysztof Kozlowski >> ; Andrew Jeffery ; >> devicetree@vger.kernel.org; Philipp Zabel ; Rob >> Herring ; Benjamin Herrenschmidt >> ; linux-aspeed@lists.ozlabs.org; >> linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; >> openbmc@lists.ozlabs.org; linux-i2c@vger.kernel.org >> Subject: Re: [PATCH v6 1/2] dt-bindings: i2c: aspeed: support for AST2600-i2cv2 >> >> On 03/03/2023 11:16, Ryan Chen wrote: >>>>>>>>> aspeed,timout properites: >>>>>>>>> For example I2C controller as slave mode, and suddenly >>>> disconnected. >>>>>>>>> Slave state machine will keep waiting for master clock in for >>>>>>>>> rx/tx >>>>>> transmit. >>>>>>>>> So it need timeout setting to enable timeout unlock controller state. >>>>>>>>> And in another side. In Master side also need avoid suddenly >>>>>>>>> slave >>>>>>>> miss(un-plug), Master will timeout and release the SDA/SCL. >>>>>>>>> >>>>>>>>> Do you mean add those description into ore aspeed,timout >>>>>>>>> properites >>>>>>>> description? >>>>>>>> >>>>>>>> You are describing here one particular feature you want to enable >>>>>>>> in the driver which looks non-scalable and more difficult to >>>> configure/use. >>>>>>>> What I was looking for is to describe the actual configuration >>>>>>>> you have >>>> (e.g. >>>>>>>> multi-master) which leads to enable or disable such feature in >>>>>>>> your >>>>>> hardware. >>>>>>>> Especially that bool value does not scale later to actual timeout >>>>>>>> values in time (ms)... >>>>>>>> >>>>>>>> I don't know I2C that much, but I wonder - why this should be >>>>>>>> specific to Aspeed I2C and no other I2C controllers implement it? >>>>>>>> IOW, this looks quite generic and every I2C controller should >>>>>>>> have it. Adding it specific to Aspeed suggests that either we >>>>>>>> miss a generic property or this should not be in DT at all >>>>>>>> (because no one else has >>>>>> it...). >>>>>>>> >>>>>>>> Also I wonder, why you wouldn't enable timeout always... >>>>>>>> >>>>>>>> +Cc Wolfram, >>>>>>>> Maybe you know whether bool "timeout" property for one controller >>>>>>>> makes sense? Why we do not have it for all controllers? >>>>>>>> >>>>>>> Because, i2c bus didn’t specific timeout. >>>>>>> But SMBus defines a clock low time-out, TIMEOUT of 35 ms. >>>>>>> >>>>>>> It have definition in SMBus specification. >>>>>>> http://smbus.org/specs/SMBus_3_1_20180319.pdf >>>>>>> You can check Page 18, Note3 that have timeout description. >>>>>> >>>>>> Then you have already property for this - "smbus"? >>>>> To be a property "smbus", that would be a big topic, I saw fsl i2c >>>>> also have this. >>>>> https://github.com/torvalds/linux/blob/master/Documentation/devicetr >>>>> ee >>>>> /bindings/i2c/i2c-mpc.yaml#L43-L47 >>>>> So, I just think the "timeout" property. >>>> >>>> Yeah and this is the only place. It also differs because it allows >>>> actual timeout values. >>> Thanks, So can I still keep the property "aspeed,timeout" here? >>> It is the only place. >> >> No, because none of my concerns above are addressed. >> > Thanks, I realize your concerns. > > So, I modify it like i2c-mpc.yaml > https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/i2c/i2c-mpc.yaml#L43-L47 > > aspeed,timeout: > $ref: /schemas/types.yaml#/definitions/uint32 > description: | > I2C bus timeout in microseconds > Is this way acceptable? So, let's repeat my last questions: 1. Why you wouldn't enable timeout always... You wrote: > http://smbus.org/specs/SMBus_3_1_20180319.pdf > You can check Page 18, Note3 that have timeout description. which indicates you should always use timeout, doesn't it? 2. Why we do not have it for all controllers with SMBus v3? Why this one is special? Best regards, Krzysztof From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 68932C61DA4 for ; Sun, 5 Mar 2023 09:50:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+0gUGkPIT8qTWB+cx6iHWlAz5fWQ8Pm5M0RAwv5/n2g=; b=qBEJOFRh4LUMxY LlP0LsetewmcWzzteZZvXPjpqPQFybaBHVkCp4gIC+D6lgr/gau+mZvN87x20xMEGA1XUL/BLQgBl dO9aNOAJMYmOJLVfnXoyYxVRZw3h3ErX5pENJok8uq9/h6QVEIkZq8gmk8ofKwwUTh0MlutZrnef/ GYVIfApV86hiFReT/V9lIPg7vGKrPwzSbpjqTgF2yFPqmHgKu1JDK9RS0QAub0r/sgXlqFJ9W4VRn UkMMpkpsiycCT1dkdKa/2oLm9ia3kGVOwJWA/h+EUL3PsnET+C89ZaPZkYKYOt4rzAcw0CiOYmPBK pmQjU52iFden3iavHtnQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pYkzV-00A2ik-O1; Sun, 05 Mar 2023 09:49:17 +0000 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pYkzS-00A2iD-Aa for linux-arm-kernel@lists.infradead.org; Sun, 05 Mar 2023 09:49:16 +0000 Received: by mail-ed1-x529.google.com with SMTP id a25so27197577edb.0 for ; Sun, 05 Mar 2023 01:49:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678009752; h=content-transfer-encoding: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=i1NXWkshbGfkpUPFum76bHknO/vpxYG/pfk6G3wkE88=; b=f28fzSBPdgs5Vsb2eBhafb9P8Iqi42pAXvvHC7L57u9epmuuckD3RLBz/3lG9XnZIw lRCSB1mUeoyoY+ow1Ly0K8DoVHnaGj2t+J97AeLA1OT03/nn+Ddnb4p6YzfPOofKOYPI 7bD8AfVZs1+YrbglfnVA04eIHswEP+EM7XPZlGBnoQbhA3rBDnpq7OfvXIScCwNCNgLz c3DzpW0+VMEzPbI4/HSMK7s9pV/IvSbJY1q0PIE9HXqn/lySdr81a9M6sOD4W51All0p i40QrQmFWlbaAnEpS3T0Jd6MDwxUu21YAIQKCJrv8XeMPeVzbE1Jj7pjWuopBgj+8N3J IamA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678009752; h=content-transfer-encoding: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=i1NXWkshbGfkpUPFum76bHknO/vpxYG/pfk6G3wkE88=; b=JZndU6MEoH29ubnwcISZ9RZy+S2jGWzQJrgx4ClrOkcmSLD8f0gnu9RSkWUYGaSvso MKeC+9AzkZUnZexro5jkc+n+IgT+QWM1eYbr2H8vjrXDv99p0hLBFyBc+uRwm/XM2ksQ mLyqVVNuE2IkOZ3ZwJ1dQWrXRGLvQN/1uy6NZgML5oZcKKGxrpoUoR22VdvmuVmn7tK3 yfbB5k54meJ0HuBXZSYnwDv6Y3dp6ejUaWmXmoG1+nkOurqGlpQVTIW1EK8CT9xIwaUb NX50TeULERTA/Iz/BRUyT//u/1t3n992QDsOIW0EAB9Fk46l8rxI38cenZOtC5yot/hk +biQ== X-Gm-Message-State: AO0yUKXLQJ4ByvolA4Mkm1aq9F7cPCVBy26RIkMZ7M3aXWwa+0qlG4pr 8SpFjAVziRNbyti3NUXIg1txRg== X-Google-Smtp-Source: AK7set/RzEpkk4lrGOln6MgcBlaSXb7zQQnXLiHe5Cc4QQ0OSXcLQu4ok9B1u/IwUOSEJ++kxYvapw== X-Received: by 2002:a17:906:178f:b0:878:72d0:2817 with SMTP id t15-20020a170906178f00b0087872d02817mr7044006eje.29.1678009751796; Sun, 05 Mar 2023 01:49:11 -0800 (PST) Received: from ?IPV6:2a02:810d:15c0:828:71e7:13d:1c29:505f? ([2a02:810d:15c0:828:71e7:13d:1c29:505f]) by smtp.gmail.com with ESMTPSA id t16-20020a170906949000b008b30e2a450csm3058517ejx.144.2023.03.05.01.49.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 05 Mar 2023 01:49:11 -0800 (PST) Message-ID: Date: Sun, 5 Mar 2023 10:49:09 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v6 1/2] dt-bindings: i2c: aspeed: support for AST2600-i2cv2 To: Ryan Chen , Wolfram Sang Cc: Joel Stanley , Brendan Higgins , Krzysztof Kozlowski , Andrew Jeffery , "devicetree@vger.kernel.org" , Philipp Zabel , Rob Herring , Benjamin Herrenschmidt , "linux-aspeed@lists.ozlabs.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "openbmc@lists.ozlabs.org" , "linux-i2c@vger.kernel.org" References: <20230226031321.3126756-1-ryan_chen@aspeedtech.com> <20230226031321.3126756-2-ryan_chen@aspeedtech.com> <53090449-58c9-bc03-56df-aa8ae93c0c26@linaro.org> Content-Language: en-US From: Krzysztof Kozlowski In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230305_014914_411017_5DDDC084 X-CRM114-Status: GOOD ( 18.92 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMDQvMDMvMjAyMyAwMjozMywgUnlhbiBDaGVuIHdyb3RlOgo+IEhlbGxvIEtyenlzenRvZiwK PiAKPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4gRnJvbTogS3J6eXN6dG9mIEtvemxv d3NraSA8a3J6eXN6dG9mLmtvemxvd3NraUBsaW5hcm8ub3JnPgo+PiBTZW50OiBGcmlkYXksIE1h cmNoIDMsIDIwMjMgNjo0MSBQTQo+PiBUbzogUnlhbiBDaGVuIDxyeWFuX2NoZW5AYXNwZWVkdGVj aC5jb20+OyBXb2xmcmFtIFNhbmcKPj4gPHdzYUBrZXJuZWwub3JnPgo+PiBDYzogSm9lbCBTdGFu bGV5IDxqb2VsQGptcy5pZC5hdT47IEJyZW5kYW4gSGlnZ2lucwo+PiA8YnJlbmRhbi5oaWdnaW5z QGxpbnV4LmRldj47IEtyenlzenRvZiBLb3psb3dza2kKPj4gPGtyenlzenRvZi5rb3psb3dza2kr ZHRAbGluYXJvLm9yZz47IEFuZHJldyBKZWZmZXJ5IDxhbmRyZXdAYWouaWQuYXU+Owo+PiBkZXZp Y2V0cmVlQHZnZXIua2VybmVsLm9yZzsgUGhpbGlwcCBaYWJlbCA8cC56YWJlbEBwZW5ndXRyb25p eC5kZT47IFJvYgo+PiBIZXJyaW5nIDxyb2JoK2R0QGtlcm5lbC5vcmc+OyBCZW5qYW1pbiBIZXJy ZW5zY2htaWR0Cj4+IDxiZW5oQGtlcm5lbC5jcmFzaGluZy5vcmc+OyBsaW51eC1hc3BlZWRAbGlz dHMub3psYWJzLm9yZzsKPj4gbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyBs aW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOwo+PiBvcGVuYm1jQGxpc3RzLm96bGFicy5vcmc7 IGxpbnV4LWkyY0B2Z2VyLmtlcm5lbC5vcmcKPj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NiAxLzJd IGR0LWJpbmRpbmdzOiBpMmM6IGFzcGVlZDogc3VwcG9ydCBmb3IgQVNUMjYwMC1pMmN2Mgo+Pgo+ PiBPbiAwMy8wMy8yMDIzIDExOjE2LCBSeWFuIENoZW4gd3JvdGU6Cj4+Pj4+Pj4+PiBhc3BlZWQs dGltb3V0IHByb3Blcml0ZXM6Cj4+Pj4+Pj4+PiBGb3IgZXhhbXBsZSBJMkMgY29udHJvbGxlciBh cyBzbGF2ZSBtb2RlLCBhbmQgc3VkZGVubHkKPj4+PiBkaXNjb25uZWN0ZWQuCj4+Pj4+Pj4+PiBT bGF2ZSBzdGF0ZSBtYWNoaW5lIHdpbGwga2VlcCB3YWl0aW5nIGZvciBtYXN0ZXIgY2xvY2sgaW4g Zm9yCj4+Pj4+Pj4+PiByeC90eAo+Pj4+Pj4gdHJhbnNtaXQuCj4+Pj4+Pj4+PiBTbyBpdCBuZWVk IHRpbWVvdXQgc2V0dGluZyB0byBlbmFibGUgdGltZW91dCB1bmxvY2sgY29udHJvbGxlciBzdGF0 ZS4KPj4+Pj4+Pj4+IEFuZCBpbiBhbm90aGVyIHNpZGUuIEluIE1hc3RlciBzaWRlIGFsc28gbmVl ZCBhdm9pZCBzdWRkZW5seQo+Pj4+Pj4+Pj4gc2xhdmUKPj4+Pj4+Pj4gbWlzcyh1bi1wbHVnKSwg TWFzdGVyIHdpbGwgdGltZW91dCBhbmQgcmVsZWFzZSB0aGUgU0RBL1NDTC4KPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+PiBEbyB5b3UgbWVhbiBhZGQgdGhvc2UgZGVzY3JpcHRpb24gaW50byBvcmUgYXNwZWVk LHRpbW91dAo+Pj4+Pj4+Pj4gcHJvcGVyaXRlcwo+Pj4+Pj4+PiBkZXNjcmlwdGlvbj8KPj4+Pj4+ Pj4KPj4+Pj4+Pj4gWW91IGFyZSBkZXNjcmliaW5nIGhlcmUgb25lIHBhcnRpY3VsYXIgZmVhdHVy ZSB5b3Ugd2FudCB0byBlbmFibGUKPj4+Pj4+Pj4gaW4gdGhlIGRyaXZlciB3aGljaCBsb29rcyBu b24tc2NhbGFibGUgYW5kIG1vcmUgZGlmZmljdWx0IHRvCj4+Pj4gY29uZmlndXJlL3VzZS4KPj4+ Pj4+Pj4gV2hhdCBJIHdhcyBsb29raW5nIGZvciBpcyB0byBkZXNjcmliZSB0aGUgYWN0dWFsIGNv bmZpZ3VyYXRpb24KPj4+Pj4+Pj4geW91IGhhdmUKPj4+PiAoZS5nLgo+Pj4+Pj4+PiBtdWx0aS1t YXN0ZXIpIHdoaWNoIGxlYWRzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHN1Y2ggZmVhdHVyZSBpbgo+ Pj4+Pj4+PiB5b3VyCj4+Pj4+PiBoYXJkd2FyZS4KPj4+Pj4+Pj4gRXNwZWNpYWxseSB0aGF0IGJv b2wgdmFsdWUgZG9lcyBub3Qgc2NhbGUgbGF0ZXIgdG8gYWN0dWFsIHRpbWVvdXQKPj4+Pj4+Pj4g dmFsdWVzIGluIHRpbWUgKG1zKS4uLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBJIGRvbid0IGtub3cgSTJD IHRoYXQgbXVjaCwgYnV0IEkgd29uZGVyIC0gd2h5IHRoaXMgc2hvdWxkIGJlCj4+Pj4+Pj4+IHNw ZWNpZmljIHRvIEFzcGVlZCBJMkMgYW5kIG5vIG90aGVyIEkyQyBjb250cm9sbGVycyBpbXBsZW1l bnQgaXQ/Cj4+Pj4+Pj4+IElPVywgdGhpcyBsb29rcyBxdWl0ZSBnZW5lcmljIGFuZCBldmVyeSBJ MkMgY29udHJvbGxlciBzaG91bGQKPj4+Pj4+Pj4gaGF2ZSBpdC4gQWRkaW5nIGl0IHNwZWNpZmlj IHRvIEFzcGVlZCBzdWdnZXN0cyB0aGF0IGVpdGhlciB3ZQo+Pj4+Pj4+PiBtaXNzIGEgZ2VuZXJp YyBwcm9wZXJ0eSBvciB0aGlzIHNob3VsZCBub3QgYmUgaW4gRFQgYXQgYWxsCj4+Pj4+Pj4+IChi ZWNhdXNlIG5vIG9uZSBlbHNlIGhhcwo+Pj4+Pj4gaXQuLi4pLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBB bHNvIEkgd29uZGVyLCB3aHkgeW91IHdvdWxkbid0IGVuYWJsZSB0aW1lb3V0IGFsd2F5cy4uLgo+ Pj4+Pj4+Pgo+Pj4+Pj4+PiArQ2MgV29sZnJhbSwKPj4+Pj4+Pj4gTWF5YmUgeW91IGtub3cgd2hl dGhlciBib29sICJ0aW1lb3V0IiBwcm9wZXJ0eSBmb3Igb25lIGNvbnRyb2xsZXIKPj4+Pj4+Pj4g bWFrZXMgc2Vuc2U/IFdoeSB3ZSBkbyBub3QgaGF2ZSBpdCBmb3IgYWxsIGNvbnRyb2xsZXJzPwo+ Pj4+Pj4+Pgo+Pj4+Pj4+IEJlY2F1c2UsIGkyYyBidXMgZGlkbuKAmXQgc3BlY2lmaWMgdGltZW91 dC4KPj4+Pj4+PiBCdXQgU01CdXMgZGVmaW5lcyBhIGNsb2NrIGxvdyB0aW1lLW91dCwgVElNRU9V VCBvZiAzNSBtcy4KPj4+Pj4+Pgo+Pj4+Pj4+IEl0IGhhdmUgZGVmaW5pdGlvbiBpbiBTTUJ1cyBz cGVjaWZpY2F0aW9uLgo+Pj4+Pj4+IGh0dHA6Ly9zbWJ1cy5vcmcvc3BlY3MvU01CdXNfM18xXzIw MTgwMzE5LnBkZgo+Pj4+Pj4+IFlvdSBjYW4gY2hlY2sgUGFnZSAxOCwgTm90ZTMgdGhhdCBoYXZl IHRpbWVvdXQgZGVzY3JpcHRpb24uCj4+Pj4+Pgo+Pj4+Pj4gVGhlbiB5b3UgaGF2ZSBhbHJlYWR5 IHByb3BlcnR5IGZvciB0aGlzIC0gInNtYnVzIj8KPj4+Pj4gVG8gYmUgYSBwcm9wZXJ0eSAic21i dXMiLCB0aGF0IHdvdWxkIGJlIGEgYmlnIHRvcGljLCBJIHNhdyBmc2wgaTJjCj4+Pj4+IGFsc28g aGF2ZSB0aGlzLgo+Pj4+PiBodHRwczovL2dpdGh1Yi5jb20vdG9ydmFsZHMvbGludXgvYmxvYi9t YXN0ZXIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cgo+Pj4+PiBlZQo+Pj4+PiAvYmluZGluZ3MvaTJj L2kyYy1tcGMueWFtbCNMNDMtTDQ3Cj4+Pj4+IFNvLCBJIGp1c3QgdGhpbmsgdGhlICJ0aW1lb3V0 IiBwcm9wZXJ0eS4KPj4+Pgo+Pj4+IFllYWggYW5kIHRoaXMgaXMgdGhlIG9ubHkgcGxhY2UuIEl0 IGFsc28gZGlmZmVycyBiZWNhdXNlIGl0IGFsbG93cwo+Pj4+IGFjdHVhbCB0aW1lb3V0IHZhbHVl cy4KPj4+IFRoYW5rcywgU28gY2FuIEkgc3RpbGwga2VlcCB0aGUgcHJvcGVydHkgImFzcGVlZCx0 aW1lb3V0IiBoZXJlPwo+Pj4gSXQgaXMgdGhlIG9ubHkgcGxhY2UuCj4+Cj4+IE5vLCBiZWNhdXNl IG5vbmUgb2YgbXkgY29uY2VybnMgYWJvdmUgYXJlIGFkZHJlc3NlZC4KPj4KPiBUaGFua3MsIEkg cmVhbGl6ZSB5b3VyIGNvbmNlcm5zLgo+IAo+IFNvLCBJIG1vZGlmeSBpdCBsaWtlIGkyYy1tcGMu eWFtbCAKPiBodHRwczovL2dpdGh1Yi5jb20vdG9ydmFsZHMvbGludXgvYmxvYi9tYXN0ZXIvRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9pMmMtbXBjLnlhbWwjTDQzLUw0Nwo+ IAo+ICAgYXNwZWVkLHRpbWVvdXQ6Cj4gICAgICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2Rl ZmluaXRpb25zL3VpbnQzMgo+ICAgICBkZXNjcmlwdGlvbjogfAo+ICAgICAgIEkyQyBidXMgdGlt ZW91dCBpbiBtaWNyb3NlY29uZHMKPiBJcyB0aGlzIHdheSBhY2NlcHRhYmxlPyAKClNvLCBsZXQn cyByZXBlYXQgbXkgbGFzdCBxdWVzdGlvbnM6CgoxLiBXaHkgeW91IHdvdWxkbid0IGVuYWJsZSB0 aW1lb3V0IGFsd2F5cy4uLgoKWW91IHdyb3RlOgo+IGh0dHA6Ly9zbWJ1cy5vcmcvc3BlY3MvU01C dXNfM18xXzIwMTgwMzE5LnBkZgo+IFlvdSBjYW4gY2hlY2sgUGFnZSAxOCwgTm90ZTMgdGhhdCBo YXZlIHRpbWVvdXQgZGVzY3JpcHRpb24uCgp3aGljaCBpbmRpY2F0ZXMgeW91IHNob3VsZCBhbHdh eXMgdXNlIHRpbWVvdXQsIGRvZXNuJ3QgaXQ/CgoyLiBXaHkgd2UgZG8gbm90IGhhdmUgaXQgZm9y IGFsbCBjb250cm9sbGVycyB3aXRoIFNNQnVzIHYzPyBXaHkgdGhpcyBvbmUKaXMgc3BlY2lhbD8K CkJlc3QgcmVnYXJkcywKS3J6eXN6dG9mCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=