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 97346C4167B for ; Wed, 6 Dec 2023 15:27:32 +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:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=cCLR/ko06WEo7/e+SM0KKo0Sksq/6stcyeZQ2ZUx+hc=; b=FMnv7HkwnDfQ1r vZIF3stVtAg9AgYefx8VUA2Lw9CHmcsZemwCsJ11OI8EQ3TXeIwQtFehjXvo8Slu+fQUoP5x3XaUc jcj7uf2GUfmcYdWxTOxOQfUAE9Ha0ZBEYx6YsExRZ01gKZxv5+jgpWW347CPwEjsNRTKhSXR4nN6J giFIZropIGj5Ejkq408SughfZ9TI2w3unGwwsXxtubfARdpI+08u4GLOCd3VJnCBkOf38tfUqbD5b qeXqHFsMo54XUKztfwjwUDR72XHqp3lXugAZMdE+m94uv7xsmhmZKS52i8C8Ux3V8DVWteF0K0kB2 WQXZ+Tc+LFRNbnbrAuVQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rAtnh-00Aceq-2s; Wed, 06 Dec 2023 15:27:01 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rAtnf-00Ace0-0C; Wed, 06 Dec 2023 15:27:00 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id E780861D50; Wed, 6 Dec 2023 15:26:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2C7BFC433C8; Wed, 6 Dec 2023 15:26:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701876417; bh=ErOUL0OR4b4hUkNAU5v24U4RXrnfJw3pOrdPFiz7eOk=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=sQ9Iv/tGorGk7fvwR9E+4Z8h5RM1dV3/5S7kwpiBtNtvuNiTNNg36Df+XdZZavqwI mdvSKnon4grfYi5DaWWIyRZ8y61twyzALmuuMxZ9aQodeMBizWht8+vVH8SN1SbyfV 4l8QqzRBrdIw7snA1S/c6e6qr00V4vUxruBRTnV+gbNzeb/PAj3Ej2CfYm/aKwK45n 5vtBcYj5Q+ySjP2GkAVBz264JqHGfUbW4ZALgj+Sl85bten71VVVPeRtHFf8WdGjPY oq2mFIRf9xRm3WdijVp2xkwnJnCjZYcE8G2x7YLzgAFj7Xs7poDQfEfON0Zc9buXnQ 0nR7p0iSSPNJg== Date: Wed, 6 Dec 2023 20:56:46 +0530 From: Manivannan Sadhasivam To: Maramaina Naresh Cc: "James E.J. Bottomley" , "Martin K. Petersen" , Peter Wang , Andy Gross , Bjorn Andersson , Konrad Dybcio , Matthias Brugger , AngeloGioacchino Del Regno , chu.stanley@gmail.com, Alim Akhtar , Avri Altman , Bart Van Assche , linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, quic_cang@quicinc.com, quic_nguyenb@quicinc.com, Nitin Rawat Subject: Re: [PATCH V2 1/3] ufs: core: Add CPU latency QoS support for ufs driver Message-ID: <20231206152646.GH12802@thinkpad> References: <20231204143101.64163-1-quic_mnaresh@quicinc.com> <20231204143101.64163-2-quic_mnaresh@quicinc.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20231204143101.64163-2-quic_mnaresh@quicinc.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231206_072659_190129_87B244FD X-CRM114-Status: GOOD ( 26.65 ) 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 T24gTW9uLCBEZWMgMDQsIDIwMjMgYXQgMDg6MDA6NTlQTSArMDUzMCwgTWFyYW1haW5hIE5hcmVz aCB3cm90ZToKPiBSZWdpc3RlciB1ZnMgZHJpdmVyIHRvIENQVSBsYXRlbmN5IFBNIFFvUyBmcmFt ZXdvcmsgY2FuIGltcHJvdmVzCj4gdWZzIGRldmljZSByYW5kb20gaW8gcGVyZm9ybWFuY2UuCj4g Cj4gUE0gUW9TIGluaXRpYWxpemF0aW9uIHdpbGwgaW5zZXJ0IG5ldyBRb1MgcmVxdWVzdCBpbnRv IHRoZSBDUFUKPiBsYXRlbmN5IFFvUyBsaXN0IHdpdGggdGhlIG1heGltdW0gbGF0ZW5jeSBQTV9R T1NfREVGQVVMVF9WQUxVRQo+IHZhbHVlLgo+IAo+IFVGUyBkcml2ZXIgd2lsbCB2b3RlIGZvciBw ZXJmb3JtYW5jZSBtb2RlIG9uIHNjYWxlIHVwIGFuZCBwb3dlcgo+IHNhdmUgbW9kZSBmb3Igc2Nh bGUgZG93bi4KPiAKPiBJZiBjbG9jayBzY2FsaW5nIGZlYXR1cmUgaXMgbm90IGVuYWJsZWQgdGhl biB2b3Rpbmcgd2lsbCBiZSBiYXNlZAo+IG9uIGNsb2NrIG9uIG9yIG9mZiBjb25kaXRpb24uCj4g Cj4gdGlvdGVzdCBiZW5jaG1hcmsgdG9vbCBpbyBwZXJmb3JtYW5jZSByZXN1bHRzIG9uIHNtODU1 MCBwbGF0Zm9ybToKPiAKPiAxLiBXaXRob3V0IFBNIFFvUyBzdXBwb3J0Cj4gCVR5cGUgKFNwZWVk IGluKSAgICB8IEF2ZXJhZ2Ugb2YgMTggaXRlcmF0aW9ucwo+IAlSYW5kb20gV3JpdGUoSVBPUykg fCA0MTA2NS4xMwo+IAlSYW5kb20gUmVhZChJUE9TKSAgfCAzNzEwMS4zCj4gCj4gMi4gV2l0aCBQ TSBRb1Mgc3VwcG9ydAo+IAlUeXBlIChTcGVlZCBpbikgICAgfCBBdmVyYWdlIG9mIDE4IGl0ZXJh dGlvbnMKPiAJUmFuZG9tIFdyaXRlKElQT1MpIHwgNDY3ODQuOQo+IAlSYW5kb20gUmVhZChJUE9T KSAgfCA0Mjk0My40Cj4gKEltcHJvdmVtZW50ICUgd2l0aCBQTSBRb1MgPSB+MTUlKS4KPiAKPiBD by1kZXZlbG9wZWQtYnk6IE5pdGluIFJhd2F0IDxxdWljX25pdGlyYXdhQHF1aWNpbmMuY29tPgo+ IFNpZ25lZC1vZmYtYnk6IE5pdGluIFJhd2F0IDxxdWljX25pdGlyYXdhQHF1aWNpbmMuY29tPgo+ IFNpZ25lZC1vZmYtYnk6IE5hdmVlbiBLdW1hciBHb3VkIEFyZXBhbGxpIDxxdWljX25hcmVwYWxs QHF1aWNpbmMuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1hcmFtYWluYSBOYXJlc2ggPHF1aWNfbW5h cmVzaEBxdWljaW5jLmNvbT4KPiAtLS0KPiAgZHJpdmVycy91ZnMvY29yZS91ZnNoY2QtcHJpdi5o IHwgIDggKysrKysKPiAgZHJpdmVycy91ZnMvY29yZS91ZnNoY2QuYyAgICAgIHwgNjIgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL3Vmcy91ZnNoY2QuaCAgICAg ICAgICAgfCAxNiArKysrKysrKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCsp Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdWZzL2NvcmUvdWZzaGNkLXByaXYuaCBiL2RyaXZl cnMvdWZzL2NvcmUvdWZzaGNkLXByaXYuaAo+IGluZGV4IGY0MmQ5OWNlNWJmMS4uNTM2ODA1ZjZj NGUxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdWZzL2NvcmUvdWZzaGNkLXByaXYuaAo+ICsrKyBi L2RyaXZlcnMvdWZzL2NvcmUvdWZzaGNkLXByaXYuaAo+IEBAIC0yNDEsNiArMjQxLDE0IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCB1ZnNoY2Rfdm9wc19jb25maWdfc2NhbGluZ19wYXJhbShzdHJ1Y3Qg dWZzX2hiYSAqaGJhLAo+ICAJCWhiYS0+dm9wcy0+Y29uZmlnX3NjYWxpbmdfcGFyYW0oaGJhLCBw LCBkYXRhKTsKPiAgfQo+ICAKPiArc3RhdGljIGlubGluZSB1MzIgdWZzaGNkX3ZvcHNfY29uZmln X3Fvc192b3RlKHN0cnVjdCB1ZnNfaGJhICpoYmEpCj4gK3sKPiArCWlmIChoYmEtPnZvcHMgJiYg aGJhLT52b3BzLT5jb25maWdfcW9zX3ZvdGUpCj4gKwkJcmV0dXJuIGhiYS0+dm9wcy0+Y29uZmln X3Fvc192b3RlKGhiYSk7CgpQbGVhc2UgcmVtb3ZlIHRoaXMgY2FsbGJhY2sgYXMgQmFydCBub3Rl ZC4KCj4gKwo+ICsJcmV0dXJuIFVGU0hDRF9RT1NfREVGQVVMVF9WT1RFOwo+ICt9Cj4gKwo+ICBz dGF0aWMgaW5saW5lIHZvaWQgdWZzaGNkX3ZvcHNfcmVpbml0X25vdGlmeShzdHJ1Y3QgdWZzX2hi YSAqaGJhKQo+ICB7Cj4gIAlpZiAoaGJhLT52b3BzICYmIGhiYS0+dm9wcy0+cmVpbml0X25vdGlm eSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91ZnMvY29yZS91ZnNoY2QuYyBiL2RyaXZlcnMvdWZz L2NvcmUvdWZzaGNkLmMKPiBpbmRleCBhZTk5MzZmYzZmZmIuLjEzMzcwZmViZDJiNSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL3Vmcy9jb3JlL3Vmc2hjZC5jCj4gKysrIGIvZHJpdmVycy91ZnMvY29y ZS91ZnNoY2QuYwo+IEBAIC0xMDAxLDYgKzEwMDEsMjAgQEAgc3RhdGljIGJvb2wgdWZzaGNkX2lz X3VuaXByb19wYV9wYXJhbXNfdHVuaW5nX3JlcShzdHJ1Y3QgdWZzX2hiYSAqaGJhKQo+ICAJcmV0 dXJuIHVmc2hjZF9nZXRfbG9jYWxfdW5pcHJvX3ZlcihoYmEpIDwgVUZTX1VOSVBST19WRVJfMV82 Owo+ICB9Cj4gIAo+ICsvKioKPiArICogdWZzaGNkX3BtX3Fvc19wZXJmIC0gdm90ZSBmb3IgUE0g UW9TIHBlcmZvcm1hbmNlIG9yIHBvd2VyIHNhdmUgbW9kZQoKdWZzaGNkX3BtX3Fvc191cGRhdGUo KSAtIFVwZGF0ZSBQTSBRb1MgcmVxdWVzdAoKPiArICogQGhiYTogcGVyIGFkYXB0ZXIgaW5zdGFu Y2UKPiArICogQG9uOiBJZiBUcnVlLCB2b3RlIGZvciBwZXJmIFBNIFFvUyBtb2RlIG90aGVyd2lz ZSBwb3dlciBzYXZlIG1vZGUKPiArICovCj4gK3N0YXRpYyB2b2lkIHVmc2hjZF9wbV9xb3NfcGVy ZihzdHJ1Y3QgdWZzX2hiYSAqaGJhLCBib29sIG9uKQo+ICt7Cj4gKwlpZiAoIWhiYS0+cG1fcW9z X2luaXQpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWNwdV9sYXRlbmN5X3Fvc191cGRhdGVfcmVxdWVz dCgmaGJhLT5wbV9xb3NfcmVxLCBvbiA/IGhiYS0+cW9zX3ZvdGUKPiArCQkJCQkJCTogUE1fUU9T X0RFRkFVTFRfVkFMVUUpOwo+ICt9Cj4gKwo+ICAvKioKPiAgICogdWZzaGNkX3NldF9jbGtfZnJl cSAtIHNldCBVRlMgY29udHJvbGxlciBjbG9jayBmcmVxdWVuY2llcwo+ICAgKiBAaGJhOiBwZXIg YWRhcHRlciBpbnN0YW5jZQo+IEBAIC0xMTUzLDYgKzExNjcsMTAgQEAgc3RhdGljIGludCB1ZnNo Y2Rfc2NhbGVfY2xrcyhzdHJ1Y3QgdWZzX2hiYSAqaGJhLCB1bnNpZ25lZCBsb25nIGZyZXEsCj4g IAl0cmFjZV91ZnNoY2RfcHJvZmlsZV9jbGtfc2NhbGluZyhkZXZfbmFtZShoYmEtPmRldiksCj4g IAkJCShzY2FsZV91cCA/ICJ1cCIgOiAiZG93biIpLAo+ICAJCQlrdGltZV90b191cyhrdGltZV9z dWIoa3RpbWVfZ2V0KCksIHN0YXJ0KSksIHJldCk7Cj4gKwo+ICsJaWYgKCFyZXQpCj4gKwkJdWZz aGNkX3BtX3Fvc19wZXJmKGhiYSwgc2NhbGVfdXApOwoKQ2FuJ3QgeW91IGp1c3QgbW92ZSB0aGlz IGJlZm9yZSB0cmFjZV91ZnNoY2RfcHJvZmlsZV9jbGtfc2NhbGluZygpPyBUaGlzIGFsc28KYXZv aWRzIGNoZWNraW5nIGZvciAhcmV0LgoKPiArCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+IEBA IC05MjA0LDYgKzkyMjIsOCBAQCBzdGF0aWMgaW50IHVmc2hjZF9zZXR1cF9jbG9ja3Moc3RydWN0 IHVmc19oYmEgKmhiYSwgYm9vbCBvbikKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiAg Cj4gKwlpZiAoIXVmc2hjZF9pc19jbGtzY2FsaW5nX3N1cHBvcnRlZChoYmEpKQo+ICsJCXVmc2hj ZF9wbV9xb3NfcGVyZihoYmEsIG9uKTsKPiAgb3V0Ogo+ICAJaWYgKHJldCkgewo+ICAJCWxpc3Rf Zm9yX2VhY2hfZW50cnkoY2xraSwgaGVhZCwgbGlzdCkgewo+IEBAIC05Mjk2LDYgKzkzMTYsNDUg QEAgc3RhdGljIGludCB1ZnNoY2RfaW5pdF9jbG9ja3Moc3RydWN0IHVmc19oYmEgKmhiYSkKPiAg CXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gKy8qKgo+ICsgKiB1ZnNoY2RfcG1fcW9zX2luaXQgLSBp bml0aWFsaXplIFBNIFFvUyBpbnN0YW5jZQoKIkluaXRpYWxpemUgUE0gUW9TIHJlcXVlc3QiCgo+ ICsgKiBAaGJhOiBwZXIgYWRhcHRlciBpbnN0YW5jZQo+ICsgKi8KPiArc3RhdGljIHZvaWQgdWZz aGNkX3BtX3Fvc19pbml0KHN0cnVjdCB1ZnNfaGJhICpoYmEpCj4gK3sKPiArCWlmICghKGhiYS0+ Y2FwcyAmIFVGU0hDRF9DQVBfUE1fUU9TKSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJLyoKPiArCSAq IGNhbGxlZCB0byBjb25maWd1cmUgUE0gUW9TIHZvdGUgdmFsdWUgZm9yIFVGUyBob3N0LAo+ICsJ ICogZXhwZWN0aW5nIHFvcyB2b3RlIHJldHVybiB2YWx1ZSBmcm9tIGNhbGxlciBlbHNlCj4gKwkg KiBkZWZhdWx0IHZvdGUgdmFsdWUgd2lsbCBiZSByZXR1cm4uCj4gKwkgKi8KPiArCWhiYS0+cW9z X3ZvdGUgPSB1ZnNoY2Rfdm9wc19jb25maWdfcW9zX3ZvdGUoaGJhKTsKCk5vIG5lZWQgb2YgdGhp cyB2YXJpYWJsZSB0b28gaWYgeW91IGdldCByaWQgb2YgdGhlIGNhbGxiYWNrLgoKPiArCWNwdV9s YXRlbmN5X3Fvc19hZGRfcmVxdWVzdCgmaGJhLT5wbV9xb3NfcmVxLAo+ICsJCQkJCVBNX1FPU19E RUZBVUxUX1ZBTFVFKTsKPiArCj4gKwlpZiAoY3B1X2xhdGVuY3lfcW9zX3JlcXVlc3RfYWN0aXZl KCZoYmEtPnBtX3Fvc19yZXEpKQo+ICsJCWhiYS0+cG1fcW9zX2luaXQgPSB0cnVlOwoKV2h5IGRv IHlvdSBuZWVkIHRoaXMgZmxhZz8KCj4gKwo+ICsJZGV2X2RiZyhoYmEtPmRldiwgIiVzOiBRb1Mg JXMsIHFvc192b3RlOiAldVxuIiwgX19mdW5jX18sCj4gKwkJaGJhLT5wbV9xb3NfaW5pdCA/ICJp bml0aWFsaXplZCIgOiAidW5pbml0aWFsaXplZCIsCj4gKwkJaGJhLT5xb3Nfdm90ZSk7Cj4gK30K PiArCj4gKy8qKgo+ICsgKiB1ZnNoY2RfcG1fcW9zX2V4aXQgLSByZW1vdmUgaW5zdGFuY2UgZnJv bSBQTSBRb1MKPiArICogQGhiYTogcGVyIGFkYXB0ZXIgaW5zdGFuY2UKPiArICovCj4gK3N0YXRp YyB2b2lkIHVmc2hjZF9wbV9xb3NfZXhpdChzdHJ1Y3QgdWZzX2hiYSAqaGJhKQo+ICt7Cj4gKwlp ZiAoIWhiYS0+cG1fcW9zX2luaXQpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWNwdV9sYXRlbmN5X3Fv c19yZW1vdmVfcmVxdWVzdCgmaGJhLT5wbV9xb3NfcmVxKTsKPiArCWhiYS0+cG1fcW9zX2luaXQg PSBmYWxzZTsKPiArfQo+ICsKClsuLi5dCgo+ICAvKioKPiAgICogc3RydWN0IHVmc19oYmEgLSBw ZXIgYWRhcHRlciBwcml2YXRlIHN0cnVjdHVyZQo+ICAgKiBAbW1pb19iYXNlOiBVRlNIQ0kgYmFz ZSByZWdpc3RlciBhZGRyZXNzCj4gQEAgLTkxMiw2ICs5MjMsOCBAQCBlbnVtIHVmc2hjZF9tY3Ff b3ByIHsKPiAgICogQG1jcV9iYXNlOiBNdWx0aSBjaXJjdWxhciBxdWV1ZSByZWdpc3RlcnMgYmFz ZSBhZGRyZXNzCj4gICAqIEB1aHE6IGFycmF5IG9mIHN1cHBvcnRlZCBoYXJkd2FyZSBxdWV1ZXMK PiAgICogQGRldl9jbWRfcXVldWU6IFF1ZXVlIGZvciBpc3N1aW5nIGRldmljZSBtYW5hZ2VtZW50 IGNvbW1hbmRzCj4gKyAqIEBwbV9xb3NfcmVxOiBQTSBRb1MgcmVxdWVzdCBoYW5kbGUKPiArICog QHBtX3Fvc19pbml0OiBmbGFnIHRvIGNoZWNrIGlmIHBtIHFvcyBpbml0IGNvbXBsZXRlZAo+ICAg Ki8KPiAgc3RydWN0IHVmc19oYmEgewo+ICAJdm9pZCBfX2lvbWVtICptbWlvX2Jhc2U7Cj4gQEAg LTEwNzYsNiArMTA4OSw5IEBAIHN0cnVjdCB1ZnNfaGJhIHsKPiAgCXN0cnVjdCB1ZnNfaHdfcXVl dWUgKnVocTsKPiAgCXN0cnVjdCB1ZnNfaHdfcXVldWUgKmRldl9jbWRfcXVldWU7Cj4gIAlzdHJ1 Y3QgdWZzaGNkX21jcV9vcHJfaW5mb190IG1jcV9vcHJbT1BSX01BWF07Cj4gKwlzdHJ1Y3QgcG1f cW9zX3JlcXVlc3QgcG1fcW9zX3JlcTsKPiArCWJvb2wgcG1fcW9zX2luaXQ7Cj4gKwl1MzIgcW9z X3ZvdGU7CgpPcmRlciBkb2Vzbid0IG1hdGNoIEtkb2MuCgotIE1hbmkKCi0tIArgrq7grqPgrr/g rrXgrqPgr43grqPgrqngr40g4K6a4K6k4K6+4K6a4K6/4K614K6u4K+NCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==