From nobody Tue Dec 16 20:02:09 2025 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 1D9C1C3DA6F for ; Thu, 24 Aug 2023 21:25:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243682AbjHXVYk (ORCPT ); Thu, 24 Aug 2023 17:24:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41866 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243689AbjHXVYL (ORCPT ); Thu, 24 Aug 2023 17:24:11 -0400 Received: from mail-qv1-xf29.google.com (mail-qv1-xf29.google.com [IPv6:2607:f8b0:4864:20::f29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E6281BC9 for ; Thu, 24 Aug 2023 14:24:09 -0700 (PDT) Received: by mail-qv1-xf29.google.com with SMTP id 6a1803df08f44-64c2e2572f7so1638496d6.1 for ; Thu, 24 Aug 2023 14:24:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1692912248; x=1693517048; h=mime-version:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=tKFg3Mf7L0O9puBteBI6SR7YJvpN7KDNGtfNM+fOV8E=; b=ThkJQ7412ENtHd+ie1nAfpD8qvNttwuH21PeNa26/15H75MMgQjbZ6ezepIt3rgcGC U4fq81qepyEpAplwLXv8cTPDK351namjMzRxqL77MrWsMylxcqO+nrd41aywCxu1D654 LjYhtpTLHL1zud455kJXbVwYNbA9WwljLjq6k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692912248; x=1693517048; h=mime-version:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=tKFg3Mf7L0O9puBteBI6SR7YJvpN7KDNGtfNM+fOV8E=; b=KRAjyvMuZktnhy/eWJ4xQpcankdn0DYJfAZXrdUcJRCpMGUhatwKdmlunmC7zf/U8A paPg6Wc0/kSweFXvTIZYggKWJpql3qBNha1KctVhvez16k91dHpLugwWcl/j6mUL3V2m 8BqIKNGGx71tFw+IG9KfPiXWZqt3mXM7r2smKh1moUJIzq7g49Q5jKXHEwm4lpQMiyCD 0IdfpjbQWrds/GC77A66ZlLk8Bp+DN+hrVrkzTwN9q1cDcQXtwnktCRqWHK4mBdbiNFl S3E4/vmX+ON9I0g7bG7YdjoHE8LMp1kzSvmf79IdCi+PWjnA0XDWR+PQlINQnKgodhl5 Mnfg== X-Gm-Message-State: AOJu0YwE5U970f156lv15d/9OcSuNE8VfGUMsLsKq2THjjo9oExSaXvM lKU+VQN3DvgsjLpyp6q7OAFc3sxNv80E3NuAzQN9dyTSlWLnXzgBuBHzW0bTO+3isfwP35mKAJh 7CDwgOrzZzyFiAb0= X-Google-Smtp-Source: AGHT+IGWCYDrAVN1oLpPDbDF+nFArybQctWBj3Hy38VvwWk0SHX6eJ20UUVcTL/OVWcTHYiAvOgdlw== X-Received: by 2002:ad4:5149:0:b0:631:f426:a4ab with SMTP id g9-20020ad45149000000b00631f426a4abmr16429962qvq.49.1692912248472; Thu, 24 Aug 2023 14:24:08 -0700 (PDT) Received: from HDYH7M3.Broadcom.net ([192.19.161.248]) by smtp.gmail.com with ESMTPSA id j15-20020a0ce00f000000b0064713c8fab7sm75769qvk.59.2023.08.24.14.24.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Aug 2023 14:24:07 -0700 (PDT) From: roman.bacik@broadcom.com To: andi.shyti@kernel.org, rjui@broadcom.com, sbranden@broadcom.com Cc: bcm-kernel-feedback-list@broadcom.com, linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Roman Bacik Subject: [PATCH] i2c: iproc: handle invalid slave state Date: Thu, 24 Aug 2023 14:23:51 -0700 Message-Id: <20230824212351.24346-1-roman.bacik@broadcom.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000003949760603b1d91c" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --0000000000003949760603b1d91c MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RnJvbTogUm9tYW4gQmFjaWsgPHJvbWFuLmJhY2lrQGJyb2FkY29tLmNvbT4KCkFkZCB0aGUgY29k ZSB0byBoYW5kbGUgYW4gaW52YWxpZCBzdGF0ZSB3aGVuIGJvdGggYml0cyBTX1JYX0VWRU5UCihp bmRpY2F0aW5nIGEgdHJhbnNhY3Rpb24pIGFuZCBTX1NUQVJUX0JVU1kgKGluZGljYXRpbmcgdGhl IGVuZApvZiB0cmFuc2FjdGlvbiAtIHRyYW5zaXRpb24gb2YgU1RBUlRfQlVTWSBmcm9tIDEgdG8g MCkgYXJlIHNldCBpbgp0aGUgaW50ZXJydXB0IHN0YXR1cyByZWdpc3RlciBkdXJpbmcgYSBzbGF2 ZSByZWFkLgoKU2lnbmVkLW9mZi1ieTogUm9tYW4gQmFjaWsgPHJvbWFuLmJhY2lrQGJyb2FkY29t LmNvbT4KRml4ZXM6IDFjYTFiNDUxNjA4OCAoImkyYzogaXByb2M6IGhhbmRsZSBNYXN0ZXIgYWJv cnRlZCBlcnJvciIpCkFja2VkLWJ5OiBSYXkgSnVpIDxyYXkuanVpQGJyb2FkY29tLmNvbT4KLS0t CiBkcml2ZXJzL2kyYy9idXNzZXMvaTJjLWJjbS1pcHJvYy5jIHwgMTMzICsrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKSwgNTggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1iY20taXByb2Mu YyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYmM9Cm0taXByb2MuYwppbmRleCAwNWM4MDY4MGRm ZjQuLjY4NDM4ZDRlNWQ3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1iY20t aXByb2MuYworKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWJjbS1pcHJvYy5jCkBAIC0zMTYs MjYgKzMxNiw0NCBAQCBzdGF0aWMgdm9pZCBiY21faXByb2NfaTJjX3NsYXZlX2luaXQoCiAJaXBy b2NfaTJjX3dyX3JlZyhpcHJvY19pMmMsIElFX09GRlNFVCwgdmFsKTsKIH0KPTIwCi1zdGF0aWMg dm9pZCBiY21faXByb2NfaTJjX2NoZWNrX3NsYXZlX3N0YXR1cygKLQlzdHJ1Y3QgYmNtX2lwcm9j X2kyY19kZXYgKmlwcm9jX2kyYykKK3N0YXRpYyBib29sIGJjbV9pcHJvY19pMmNfY2hlY2tfc2xh dmVfc3RhdHVzCisJKHN0cnVjdCBiY21faXByb2NfaTJjX2RldiAqaXByb2NfaTJjLCB1MzIgc3Rh dHVzKQogewogCXUzMiB2YWw7CisJYm9vbCByZWNvdmVyID0zRCBmYWxzZTsKPTIwCi0JdmFsID0z RCBpcHJvY19pMmNfcmRfcmVnKGlwcm9jX2kyYywgU19DTURfT0ZGU0VUKTsKLQkvKiBzdGF0dXMg aXMgdmFsaWQgb25seSB3aGVuIFNUQVJUX0JVU1kgaXMgY2xlYXJlZCBhZnRlciBpdCB3YXMgc2V0 ICovCi0JaWYgKHZhbCAmIEJJVChTX0NNRF9TVEFSVF9CVVNZX1NISUZUKSkKLQkJcmV0dXJuOwor CS8qIGNoZWNrIHNsYXZlIHRyYW5zbWl0IHN0YXR1cyBvbmx5IGlmIHNsYXZlIGlzIHRyYW5zbWl0 dGluZyAqLworCWlmICghaXByb2NfaTJjLT5zbGF2ZV9yeF9vbmx5KSB7CisJCXZhbCA9M0QgaXBy b2NfaTJjX3JkX3JlZyhpcHJvY19pMmMsIFNfQ01EX09GRlNFVCk7CisJCS8qIHN0YXR1cyBpcyB2 YWxpZCBvbmx5IHdoZW4gU1RBUlRfQlVTWSBpcyBjbGVhcmVkICovCisJCWlmICghKHZhbCAmIEJJ VChTX0NNRF9TVEFSVF9CVVNZX1NISUZUKSkpIHsKKwkJCXZhbCA9M0QgKHZhbCA+PiBTX0NNRF9T VEFUVVNfU0hJRlQpICYgU19DTURfU1RBVFVTX01BU0s7CisJCQlpZiAodmFsID0zRD0zRCBTX0NN RF9TVEFUVVNfVElNRU9VVCB8fAorCQkJICAgIHZhbCA9M0Q9M0QgU19DTURfU1RBVFVTX01BU1RF Ul9BQk9SVCkgeworCQkJCWRldl93YXJuKGlwcm9jX2kyYy0+ZGV2aWNlLAorCQkJCQkgKHZhbCA9 M0Q9M0QgU19DTURfU1RBVFVTX1RJTUVPVVQpID8KKwkJCQkJICJzbGF2ZSByYW5kb20gc3RyZXRj aCB0aW1lIHRpbWVvdXRcbiIgOgorCQkJCQkgIk1hc3RlciBhYm9ydGVkIHJlYWQgdHJhbnNhY3Rp b25cbiIpOworCQkJCXJlY292ZXIgPTNEIHRydWU7CisJCQl9CisJCX0KKwl9CisKKwkvKiBSWF9F VkVOVCBpcyBub3QgdmFsaWQgd2hlbiBTVEFSVF9CVVNZIGlzIHNldCAqLworCWlmICgoc3RhdHVz ICYgQklUKElTX1NfUlhfRVZFTlRfU0hJRlQpKSAmJgorCSAgICAoc3RhdHVzICYgQklUKElTX1Nf U1RBUlRfQlVTWV9TSElGVCkpKSB7CisJCWRldl93YXJuKGlwcm9jX2kyYy0+ZGV2aWNlLCAiU2xh dmUgYWJvcnRlZCByZWFkIHRyYW5zYWN0aW9uXG4iKTsKKwkJcmVjb3ZlciA9M0QgdHJ1ZTsKKwl9 Cj0yMAotCXZhbCA9M0QgKHZhbCA+PiBTX0NNRF9TVEFUVVNfU0hJRlQpICYgU19DTURfU1RBVFVT X01BU0s7Ci0JaWYgKHZhbCA9M0Q9M0QgU19DTURfU1RBVFVTX1RJTUVPVVQgfHwgdmFsID0zRD0z RCBTX0NNRF9TVEFUVVNfTUFTVEVSX0FCTz0KUlQpIHsKLQkJZGV2X2VycihpcHJvY19pMmMtPmRl dmljZSwgKHZhbCA9M0Q9M0QgU19DTURfU1RBVFVTX1RJTUVPVVQpID8KLQkJCSJzbGF2ZSByYW5k b20gc3RyZXRjaCB0aW1lIHRpbWVvdXRcbiIgOgotCQkJIk1hc3RlciBhYm9ydGVkIHJlYWQgdHJh bnNhY3Rpb25cbiIpOworCWlmIChyZWNvdmVyKSB7CiAJCS8qIHJlLWluaXRpYWxpemUgaTJjIGZv ciByZWNvdmVyeSAqLwogCQliY21faXByb2NfaTJjX2VuYWJsZV9kaXNhYmxlKGlwcm9jX2kyYywg ZmFsc2UpOwogCQliY21faXByb2NfaTJjX3NsYXZlX2luaXQoaXByb2NfaTJjLCB0cnVlKTsKIAkJ YmNtX2lwcm9jX2kyY19lbmFibGVfZGlzYWJsZShpcHJvY19pMmMsIHRydWUpOwogCX0KKworCXJl dHVybiByZWNvdmVyOwogfQo9MjAKIHN0YXRpYyB2b2lkIGJjbV9pcHJvY19pMmNfc2xhdmVfcmVh ZChzdHJ1Y3QgYmNtX2lwcm9jX2kyY19kZXYgKmlwcm9jX2kyYykKQEAgLTQyMCw0OCArNDM4LDYg QEAgc3RhdGljIGJvb2wgYmNtX2lwcm9jX2kyY19zbGF2ZV9pc3Ioc3RydWN0IGJjbV9pcHJvY19p PQoyY19kZXYgKmlwcm9jX2kyYywKIAl1MzIgdmFsOwogCXU4IHZhbHVlOwo9MjAKLQkvKgotCSAq IFNsYXZlIGV2ZW50cyBpbiBjYXNlIG9mIG1hc3Rlci13cml0ZSwgbWFzdGVyLXdyaXRlLXJlYWQg YW5kLAotCSAqIG1hc3Rlci1yZWFkCi0JICoKLQkgKiBNYXN0ZXItd3JpdGUgICAgIDogb25seSBJ U19TX1JYX0VWRU5UX1NISUZUIGV2ZW50Ci0JICogTWFzdGVyLXdyaXRlLXJlYWQ6IGJvdGggSVNf U19SWF9FVkVOVF9TSElGVCBhbmQgSVNfU19SRF9FVkVOVF9TSElGVAotCSAqICAgICAgICAgICAg ICAgICAgICBldmVudHMKLQkgKiBNYXN0ZXItcmVhZCAgICAgIDogYm90aCBJU19TX1JYX0VWRU5U X1NISUZUIGFuZCBJU19TX1JEX0VWRU5UX1NISUZUCi0JICogICAgICAgICAgICAgICAgICAgIGV2 ZW50cyBvciBvbmx5IElTX1NfUkRfRVZFTlRfU0hJRlQKLQkgKgotCSAqIGlwcm9jIGhhcyBhIHNs YXZlIHJ4IGZpZm8gc2l6ZSBvZiA2NCBieXRlcy4gUnggZmlmbyBmdWxsIGludGVycnVwdAotCSAq IChJU19TX1JYX0ZJRk9fRlVMTF9TSElGVCkgd2lsbCBiZSBnZW5lcmF0ZWQgd2hlbiBSWCBmaWZv IGJlY29tZXMKLQkgKiBmdWxsLiBUaGlzIGNhbiBoYXBwZW4gaWYgTWFzdGVyIGlzc3VlcyB3cml0 ZSByZXF1ZXN0cyBvZiBtb3JlIHRoYW4KLQkgKiA2NCBieXRlcy4KLQkgKi8KLQlpZiAoc3RhdHVz ICYgQklUKElTX1NfUlhfRVZFTlRfU0hJRlQpIHx8Ci0JICAgIHN0YXR1cyAmIEJJVChJU19TX1JE X0VWRU5UX1NISUZUKSB8fAotCSAgICBzdGF0dXMgJiBCSVQoSVNfU19SWF9GSUZPX0ZVTExfU0hJ RlQpKSB7Ci0JCS8qIGRpc2FibGUgc2xhdmUgaW50ZXJydXB0cyAqLwotCQl2YWwgPTNEIGlwcm9j X2kyY19yZF9yZWcoaXByb2NfaTJjLCBJRV9PRkZTRVQpOwotCQl2YWwgJj0zRCB+aXByb2NfaTJj LT5zbGF2ZV9pbnRfbWFzazsKLQkJaXByb2NfaTJjX3dyX3JlZyhpcHJvY19pMmMsIElFX09GRlNF VCwgdmFsKTsKLQotCQlpZiAoc3RhdHVzICYgQklUKElTX1NfUkRfRVZFTlRfU0hJRlQpKQotCQkJ LyogTWFzdGVyLXdyaXRlLXJlYWQgcmVxdWVzdCAqLwotCQkJaXByb2NfaTJjLT5zbGF2ZV9yeF9v bmx5ID0zRCBmYWxzZTsKLQkJZWxzZQotCQkJLyogTWFzdGVyLXdyaXRlIHJlcXVlc3Qgb25seSAq LwotCQkJaXByb2NfaTJjLT5zbGF2ZV9yeF9vbmx5ID0zRCB0cnVlOwotCi0JCS8qIHNjaGVkdWxl IHRhc2tsZXQgdG8gcmVhZCBkYXRhIGxhdGVyICovCi0JCXRhc2tsZXRfc2NoZWR1bGUoJmlwcm9j X2kyYy0+c2xhdmVfcnhfdGFza2xldCk7Ci0KLQkJLyoKLQkJICogY2xlYXIgb25seSBJU19TX1JY X0VWRU5UX1NISUZUIGFuZAotCQkgKiBJU19TX1JYX0ZJRk9fRlVMTF9TSElGVCBpbnRlcnJ1cHQu Ci0JCSAqLwotCQl2YWwgPTNEIEJJVChJU19TX1JYX0VWRU5UX1NISUZUKTsKLQkJaWYgKHN0YXR1 cyAmIEJJVChJU19TX1JYX0ZJRk9fRlVMTF9TSElGVCkpCi0JCQl2YWwgfD0zRCBCSVQoSVNfU19S WF9GSUZPX0ZVTExfU0hJRlQpOwotCQlpcHJvY19pMmNfd3JfcmVnKGlwcm9jX2kyYywgSVNfT0ZG U0VULCB2YWwpOwotCX0KPTIwCiAJaWYgKHN0YXR1cyAmIEJJVChJU19TX1RYX1VOREVSUlVOX1NI SUZUKSkgewogCQlpcHJvY19pMmMtPnR4X3VuZGVycnVuKys7CkBAIC00OTMsOCArNDY5LDkgQEAg c3RhdGljIGJvb2wgYmNtX2lwcm9jX2kyY19zbGF2ZV9pc3Ioc3RydWN0IGJjbV9pcHJvY19pMj0K Y19kZXYgKmlwcm9jX2kyYywKIAkJICogbGVzcyB0aGFuIFBLVF9MRU5HVEggYnl0ZXMgd2VyZSBv dXRwdXQgb24gdGhlIFNNQlVTCiAJCSAqLwogCQlpcHJvY19pMmMtPnNsYXZlX2ludF9tYXNrICY9 M0QgfkJJVChJRV9TX1RYX1VOREVSUlVOX1NISUZUKTsKLQkJaXByb2NfaTJjX3dyX3JlZyhpcHJv Y19pMmMsIElFX09GRlNFVCwKLQkJCQkgaXByb2NfaTJjLT5zbGF2ZV9pbnRfbWFzayk7CisJCXZh bCA9M0QgaXByb2NfaTJjX3JkX3JlZyhpcHJvY19pMmMsIElFX09GRlNFVCk7CisJCXZhbCAmPTNE IH5CSVQoSUVfU19UWF9VTkRFUlJVTl9TSElGVCk7CisJCWlwcm9jX2kyY193cl9yZWcoaXByb2Nf aTJjLCBJRV9PRkZTRVQsIHZhbCk7Cj0yMAogCQkvKiBFbmQgb2YgU01CVVMgZm9yIE1hc3RlciBS ZWFkICovCiAJCXZhbCA9M0QgQklUKFNfVFhfV1JfU1RBVFVTX1NISUZUKTsKQEAgLTUxNSw5ICs0 OTIsNDkgQEAgc3RhdGljIGJvb2wgYmNtX2lwcm9jX2kyY19zbGF2ZV9pc3Ioc3RydWN0IGJjbV9p cHJvY19pPQoyY19kZXYgKmlwcm9jX2kyYywKIAkJCQkgQklUKElTX1NfU1RBUlRfQlVTWV9TSElG VCkpOwogCX0KPTIwCi0JLyogY2hlY2sgc2xhdmUgdHJhbnNtaXQgc3RhdHVzIG9ubHkgaWYgc2xh dmUgaXMgdHJhbnNtaXR0aW5nICovCi0JaWYgKCFpcHJvY19pMmMtPnNsYXZlX3J4X29ubHkpCi0J CWJjbV9pcHJvY19pMmNfY2hlY2tfc2xhdmVfc3RhdHVzKGlwcm9jX2kyYyk7CisJLyogaWYgdGhl IGNvbnRyb2xsZXIgaGFzIGJlZW4gcmVzZXQsIGltbWVkaWF0ZWx5IHJldHVybiBmcm9tIHRoZSBJ U1IgKi8KKwlpZiAoYmNtX2lwcm9jX2kyY19jaGVja19zbGF2ZV9zdGF0dXMoaXByb2NfaTJjLCBz dGF0dXMpKQorCQlyZXR1cm4gdHJ1ZTsKKworCS8qCisJICogU2xhdmUgZXZlbnRzIGluIGNhc2Ug b2YgbWFzdGVyLXdyaXRlLCBtYXN0ZXItd3JpdGUtcmVhZCBhbmQsCisJICogbWFzdGVyLXJlYWQK KwkgKgorCSAqIE1hc3Rlci13cml0ZSAgICAgOiBvbmx5IElTX1NfUlhfRVZFTlRfU0hJRlQgZXZl bnQKKwkgKiBNYXN0ZXItd3JpdGUtcmVhZDogYm90aCBJU19TX1JYX0VWRU5UX1NISUZUIGFuZCBJ U19TX1JEX0VWRU5UX1NISUZUCisJICogICAgICAgICAgICAgICAgICAgIGV2ZW50cworCSAqIE1h c3Rlci1yZWFkICAgICAgOiBib3RoIElTX1NfUlhfRVZFTlRfU0hJRlQgYW5kIElTX1NfUkRfRVZF TlRfU0hJRlQKKwkgKiAgICAgICAgICAgICAgICAgICAgZXZlbnRzIG9yIG9ubHkgSVNfU19SRF9F VkVOVF9TSElGVAorCSAqCisJICogaXByb2MgaGFzIGEgc2xhdmUgcnggZmlmbyBzaXplIG9mIDY0 IGJ5dGVzLiBSeCBmaWZvIGZ1bGwgaW50ZXJydXB0CisJICogKElTX1NfUlhfRklGT19GVUxMX1NI SUZUKSB3aWxsIGJlIGdlbmVyYXRlZCB3aGVuIFJYIGZpZm8gYmVjb21lcworCSAqIGZ1bGwuIFRo aXMgY2FuIGhhcHBlbiBpZiBNYXN0ZXIgaXNzdWVzIHdyaXRlIHJlcXVlc3RzIG9mIG1vcmUgdGhh bgorCSAqIDY0IGJ5dGVzLgorCSAqLworCWlmIChzdGF0dXMgJiBCSVQoSVNfU19SWF9FVkVOVF9T SElGVCkgfHwKKwkgICAgc3RhdHVzICYgQklUKElTX1NfUkRfRVZFTlRfU0hJRlQpIHx8CisJICAg IHN0YXR1cyAmIEJJVChJU19TX1JYX0ZJRk9fRlVMTF9TSElGVCkpIHsKKwkJLyogZGlzYWJsZSBz bGF2ZSBpbnRlcnJ1cHRzICovCisJCXZhbCA9M0QgaXByb2NfaTJjX3JkX3JlZyhpcHJvY19pMmMs IElFX09GRlNFVCk7CisJCXZhbCAmPTNEIH5pcHJvY19pMmMtPnNsYXZlX2ludF9tYXNrOworCQlp cHJvY19pMmNfd3JfcmVnKGlwcm9jX2kyYywgSUVfT0ZGU0VULCB2YWwpOworCisJCWlmIChzdGF0 dXMgJiBCSVQoSVNfU19SRF9FVkVOVF9TSElGVCkpCisJCQkvKiBNYXN0ZXItd3JpdGUtcmVhZCBy ZXF1ZXN0ICovCisJCQlpcHJvY19pMmMtPnNsYXZlX3J4X29ubHkgPTNEIGZhbHNlOworCQllbHNl CisJCQkvKiBNYXN0ZXItd3JpdGUgcmVxdWVzdCBvbmx5ICovCisJCQlpcHJvY19pMmMtPnNsYXZl X3J4X29ubHkgPTNEIHRydWU7CisKKwkJLyogc2NoZWR1bGUgdGFza2xldCB0byByZWFkIGRhdGEg bGF0ZXIgKi8KKwkJdGFza2xldF9zY2hlZHVsZSgmaXByb2NfaTJjLT5zbGF2ZV9yeF90YXNrbGV0 KTsKKworCQkvKiBjbGVhciBJU19TX1JYX0ZJRk9fRlVMTF9TSElGVCBpbnRlcnJ1cHQgKi8KKwkJ aWYgKHN0YXR1cyAmIEJJVChJU19TX1JYX0ZJRk9fRlVMTF9TSElGVCkpIHsKKwkJCXZhbCA9M0Qg QklUKElTX1NfUlhfRklGT19GVUxMX1NISUZUKTsKKwkJCWlwcm9jX2kyY193cl9yZWcoaXByb2Nf aTJjLCBJU19PRkZTRVQsIHZhbCk7CisJCX0KKwl9Cj0yMAogCXJldHVybiB0cnVlOwogfQotLT0y MAoyLjQxLjAKCgotLT0yMApUaGlzIGVsZWN0cm9uaWMgY29tbXVuaWNhdGlvbiBhbmQgdGhlIGlu Zm9ybWF0aW9uIGFuZCBhbnkgZmlsZXMgdHJhbnNtaXR0ZWQ9MjAKd2l0aCBpdCwgb3IgYXR0YWNo ZWQgdG8gaXQsIGFyZSBjb25maWRlbnRpYWwgYW5kIGFyZSBpbnRlbmRlZCBzb2xlbHkgZm9yPTIw CnRoZSB1c2Ugb2YgdGhlIGluZGl2aWR1YWwgb3IgZW50aXR5IHRvIHdob20gaXQgaXMgYWRkcmVz c2VkIGFuZCBtYXkgY29udGFpbj0yMAppbmZvcm1hdGlvbiB0aGF0IGlzIGNvbmZpZGVudGlhbCwg bGVnYWxseSBwcml2aWxlZ2VkLCBwcm90ZWN0ZWQgYnkgcHJpdmFjeT0yMApsYXdzLCBvciBvdGhl cndpc2UgcmVzdHJpY3RlZCBmcm9tIGRpc2Nsb3N1cmUgdG8gYW55b25lIGVsc2UuIElmIHlvdSBh cmU9MjAKbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQgb3IgdGhlIHBlcnNvbiByZXNwb25zaWJs ZSBmb3IgZGVsaXZlcmluZyB0aGU9MjAKZS1tYWlsIHRvIHRoZSBpbnRlbmRlZCByZWNpcGllbnQs IHlvdSBhcmUgaGVyZWJ5IG5vdGlmaWVkIHRoYXQgYW55IHVzZSw9MjAKY29weWluZywgZGlzdHJp YnV0aW5nLCBkaXNzZW1pbmF0aW9uLCBmb3J3YXJkaW5nLCBwcmludGluZywgb3IgY29weWluZyBv Zj0yMAp0aGlzIGUtbWFpbCBpcyBzdHJpY3RseSBwcm9oaWJpdGVkLiBJZiB5b3UgcmVjZWl2ZWQg dGhpcyBlLW1haWwgaW4gZXJyb3IsPTIwCnBsZWFzZSByZXR1cm4gdGhlIGUtbWFpbCB0byB0aGUg c2VuZGVyLCBkZWxldGUgaXQgZnJvbSB5b3VyIGNvbXB1dGVyLCBhbmQ9MjAKZGVzdHJveSBhbnkg cHJpbnRlZCBjb3B5IG9mIGl0Lg== --0000000000003949760603b1d91c Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 kVemjZNSIF6M0772/HY5U+poXfKriD5OwRc4OQKNOj5JPlWbPqGsBLPV3V84TEHFB/HS8b9kLhFt /xJ8Oeq/cEcWTmUM3U7zxYP7gTg2ZyQhjuU7R8c3AgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGHJvbWFuLmJhY2lrQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQU6LrAS5I+9MU+uZwBN1CpwPA8t/cw DQYJKoZIhvcNAQELBQADggEBAFiR/8JScXcG5YSdUPk9otK4e6MFHqMm34r8qarOQZhvIHcQjzIc dSiFQXZ1rzMKLBkCEl5Rk72sXriIx3Wq0e20xrYGPgl2XG416Az6wrq9s8t0+BhtmMHy5+x3qORa yboad+vil8QhKeW3km9+fuK/s4hKXBn/S+0sxxgA8FcGod8oCC0kBeLLVL28uXkbSg6JFiIbEVvq 8wipUVlpKabf+g30ppnXT/3yGzraM/w8j/b2YbX4ZXrLRAyn0Gp2V+dHicsFy5Yqtd1IgU/xOw97 cBjJw8R9iSSnZYz3GrNX3DlIknplnG7jYK6OgWWuVdXi/TpH2muDOK2P8YF1+TsxggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgxQq66/g6f3ySKbXX0wDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIH+HHG3HLlKAeuMxRDnaj2VpvJ/ARR8fleXQ Xs05ek2eMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDgyNDIx MjQwOFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQAe9vhrb935VRJEYUuHOFwbzn760UkI1ReWYsPL3f1OimU6b94Fb4rK TIEN1nAdtNLyXUUXYlEehkW94h5rYAwV/bt1+OLkp8AgDMr1aq8T7lav96vPdat1Hr2WiszpM/j8 c+3hg/fetnAmFfnsI2E4gRE2ob0Fjtmz3/DVa4egd8N4It2DLDjueFqJV5/XHQ/is5VzSB14W4F7 sbC2j9UmKXBFqkdQNz99rXJmxLRTVfU/ELgCbDpA+sViKGGJ6cPSPRoG/xPvW2BrX4XT8bdEjwyG KsfLcKBWmvlTNu3dUWFSK/vKy3oXuqa724aQPPkloizUCsZTVeHJrFb86DRA --0000000000003949760603b1d91c--