From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pan, Xiuli" Subject: Re: [PATCH v2] ASoC: topology: Fix bclk and fsync inversion in set_link_hw_format() Date: Wed, 14 Mar 2018 17:42:16 +0800 Message-ID: <4e0ebb1a-7926-b3ad-2e08-f14d6b8beb54@linux.intel.com> References: <20180301064556.5387-1-k.marinushkin@gmail.com> <20180301064812.5463-1-k.marinushkin@gmail.com> <0ffee89d-ea0b-2454-d1f2-d5056c85a253@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by alsa0.perex.cz (Postfix) with ESMTP id 0B3172670BE for ; Wed, 14 Mar 2018 10:42:21 +0100 (CET) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Kirill Marinushkin , Mark Brown , Takashi Iwai , Pierre-Louis Bossart Cc: Liam Girdwood , alsa-devel@alsa-project.org List-Id: alsa-devel@alsa-project.org CgpPbiAzLzE0LzIwMTggMDM6NTIsIEtpcmlsbCBNYXJpbnVzaGtpbiB3cm90ZToKPiBPbiAwMy8x My8xOCAwNzo1NywgUGFuLCBYaXVsaSB3cm90ZToKPj4KPj4gT24gMy8xLzIwMTggMTQ6NTMsIEtp cmlsbCBNYXJpbnVzaGtpbiB3cm90ZToKPj4+IFRoaXMgcGF0Y2ggaXMgZm9yIGFsc2EtbGliLiBJ IGZvcmdvdCB0byBtZW50aW9uIGl0IGluIHRoZSBzdWJqZWN0Lgo+Pj4KPj4+Cj4+PiBPbiAwMy8w MS8xOCAwNzo0OCwgS2lyaWxsIE1hcmludXNoa2luIHdyb3RlOgo+Pj4+IFRoZSB2YWx1ZXMgb2Yg YmNsayBhbmQgZnN5bmMgYXJlIGludmVydGVkIFdSVCB0aGUgY29kZWMuIEJ1dCB0aGUgZXhpc3Rp bmcKPj4+PiBzb2x1dGlvbiBhbHJlYWR5IHdvcmtzIGZvciBCcm9hZHdlbGwsIHNlZSB0aGUgYWxz YS1saWIgY29uZmlnOgo+Pj4+Cj4+Pj4gYGFsc2EtbGliL3NyYy9jb25mL3RvcG9sb2d5L2Jyb2Fk d2VsbC9icm9hZHdlbGwuY29uZmAKPj4+Pgo+Pj4+IFRoaXMgY29tbWl0IHByb3ZpZGVzIHRoZSBi YWNrd2FyZHMtY29tcGF0aWJsZSBzb2x1dGlvbiB0byBmaXggdGhpcyBtaXN1c2UuCj4+Pj4gVGhp cyBjb21taXQgZ29lcyBpbiBwYWlyIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcGF0Y2ggZm9yIGxp bnV4Lgo+Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogS2lyaWxsIE1hcmludXNoa2luIDxrLm1hcmlu dXNoa2luQGdtYWlsLmNvbT4KPj4+PiBDYzogTWFyayBCcm93biA8YnJvb25pZUBrZXJuZWwub3Jn Pgo+Pj4+IENjOiBUYWthc2hpIEl3YWkgPHRpd2FpQHN1c2UuZGU+Cj4+Pj4gQ2M6IEphcm9zbGF2 IEt5c2VsYSA8cGVyZXhAcGVyZXguY3o+Cj4+Pj4gQ2M6IFBpZXJyZS1Mb3VpcyBCb3NzYXJ0IDxw aWVycmUtbG91aXMuYm9zc2FydEBsaW51eC5pbnRlbC5jb20+Cj4+Pj4gQ2M6IFBhbiBYaXVsaSA8 eGl1bGkucGFuQGxpbnV4LmludGVsLmNvbT4KPj4+PiBDYzogTGlhbSBHaXJkd29vZCA8bGlhbS5y LmdpcmR3b29kQGxpbnV4LmludGVsLmNvbT4KPj4+PiBDYzogYWxzYS1kZXZlbEBhbHNhLXByb2pl Y3Qub3JnCj4+Pj4gLS0tCj4+Pj4gIMKgIGluY2x1ZGUvc291bmQvYXNvYy5owqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAxNiArKysrKysrKysrKysrKy0tCj4+ Pj4gIMKgIGluY2x1ZGUvdG9wb2xvZ3kuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB8wqAgNCArKy0tCj4+Pj4gIMKgIHNyYy9jb25mL3RvcG9sb2d5L2Jy b2Fkd2VsbC9icm9hZHdlbGwuY29uZiB8wqAgNCArKy0tCj4+Pj4gIMKgIHNyYy90b3BvbG9neS9w Y20uY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDMw ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQo+Pj4+ICDCoCA0IGZpbGVzIGNoYW5nZWQs IDQ0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvc291bmQvYXNvYy5oIGIvaW5jbHVkZS9zb3VuZC9hc29jLmgKPj4+PiBpbmRleCAw ZjVkOWY5YS4uODliMDA3MDMgMTAwNjQ0Cj4+Pj4gLS0tIGEvaW5jbHVkZS9zb3VuZC9hc29jLmgK Pj4+PiArKysgYi9pbmNsdWRlL3NvdW5kL2Fzb2MuaAo+Pj4+IEBAIC0xNTYsNiArMTU2LDE4IEBA Cj4+Pj4gIMKgICNkZWZpbmUgU05EX1NPQ19UUExHX0xOS19GTEdCSVRfU1lNTUVUUklDX1NBTVBM RUJJVFPCoMKgwqAgKDEgPDwgMikKPj4+PiAgwqAgI2RlZmluZSBTTkRfU09DX1RQTEdfTE5LX0ZM R0JJVF9WT0lDRV9XQUtFVVDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICgxIDw8IDMpCj4+Pj4gIMKg ICsvKiBEQUkgdG9wb2xvZ3kgQkNMSyBwYXJhbWV0ZXIKPj4+PiArICogRm9yIHRoZSBiYWNrd2Fy ZHMgY2FwYWJpbGl0eSwgYnkgZGVmYXVsdCBjb2RlYyBpcyBiY2xrIG1hc3Rlcgo+Pj4+ICsgKi8K Pj4+PiArI2RlZmluZSBTTkRfU09DX1RQTEdfQkNMS19DTcKgwqDCoMKgwqDCoMKgwqAgMCAvKiBj b2RlYyBpcyBiY2xrIG1hc3RlciAqLwo+Pj4+ICsjZGVmaW5lIFNORF9TT0NfVFBMR19CQ0xLX0NT wqDCoMKgwqDCoMKgwqDCoCAxIC8qIGNvZGVjIGlzIGJjbGsgc2xhdmUgKi8KPj4+PiArCj4+Pj4g Ky8qIERBSSB0b3BvbG9neSBGU1lOQyBwYXJhbWV0ZXIKPj4+PiArICogRm9yIHRoZSBiYWNrd2Fy ZHMgY2FwYWJpbGl0eSwgYnkgZGVmYXVsdCBjb2RlYyBpcyBmc3luYyBtYXN0ZXIKPj4+PiArICov Cj4+Pj4gKyNkZWZpbmUgU05EX1NPQ19UUExHX0ZTWU5DX0NNwqDCoMKgwqDCoMKgwqDCoCAwIC8q IGNvZGVjIGlzIGZzeW5jIG1hc3RlciAqLwo+Pj4+ICsjZGVmaW5lIFNORF9TT0NfVFBMR19GU1lO Q19DU8KgwqDCoMKgwqDCoMKgwqAgMSAvKiBjb2RlYyBpcyBmc3luYyBzbGF2ZSAqLwo+Pj4+ICsK Pj4+PiAgwqAgLyoKPj4gQ291bGQgd2Uga2VlcCB0aGlzIGFsaWduIHdpdGggdGhlIG9sZCB2YWx1 ZXMuCj4+Cj4+IDEgZm9yIG1hc3RlciBvZiBCQ0xLLCAwIGZvciBzbGF2ZQo+PiAxIGZvciBtYXN0 ZXIgb2YgRlNZTkMsIDAgZm9yIHNsYXZlCj4gV2UgY2Fubm90IGtlZXAgaXQgYWxpZ25lZCB3aXRo IHRoZSBvbGQgKmNvbW1lbnQgZGVzY3JpcHRpb25zKiwgYmVjYXVzZSB3ZSBrZWVwIGl0IGFsaWdu ZWQgd2l0aCB0aGUgb2xkICppbXBsZW1lbnRhdGlvbiouCj4gQXMgeW91IHJlbWVtYmVyLCB0aGUg d2hvbGUgaXNzdWUgd2FzIHdpdGggdGhlIHJldmVydGVkIHZhbHVlcy4KPiBXZSBleGFjdGx5IGtl ZXAgb3VyIG5ldyBzb2x1dGlvbiBhbGlnbmVkIHRvIHRoZSBvbGQgc29sdXRpb24gYnkgZG9pbmcg dGhpczoKClllcywgYnV0IHdoYXQgSSBzdWdnZXN0IGlzIHRoYXQgaWYgd2UgY2FuIG5vdCBtb2Rp ZnkgdGhlIGtlcm5lbCBwYXJ0LiAKQnV0IGp1c3QgdXNlIHRoZSB2YWx1ZSBpbiBhbHNhdHBsZyB0 byBmaXggdGhpcyBwcm9ibGVtLiBXZSBhY3R1YWxseSBub3QgCnBhc3NlZCBhbnkgc3RyaW5nIGlu IHRoZSB0cGxnIGZpbGUsIGJ1dCBvbmx5IHNvbWUgcGFyc2VkIHZhbHVlLgpDb3VsZCB3ZSBhbGln biB0aGUgc3RyaW5nICYgdmFsdWUgbWFwcGluZyB0byBtYWtlIHRoaXMgbW9yZSBlYXNpZXIuCgpU aG91Z2ggSSBrbm93IHRoYXQgdGhlIHZhbHVlIGZvciBiY2xrX21hc3RlciBhbnMgZnN5bmNfbWFz dGVyIGlzIHZlcnkgCmNvbmZ1c2luZy4KCj4gfn5+fgo+ICNkZWZpbmUgU05EX1NPQ19UUExHX0ZT WU5DX0NNwqDCoMKgwqDCoMKgwqDCoCAwIC8qIGNvZGVjIGlzIGZzeW5jIG1hc3RlciAqLwo+ICNk ZWZpbmUgU05EX1NPQ19UUExHX0ZTWU5DX0NTwqDCoMKgwqDCoMKgwqDCoCAxIC8qIGNvZGVjIGlz IGZzeW5jIHNsYXZlICovCj4gfn5+fgo+Cj4+IFRoaXMgd2lsbCBzYXZlIHNvbWUgY2hhbmdlIGZv ciBTT0YgdG9wb2xvZ3kgbG9hZCBwYXJzZSB0byBEU1AuCj4+IE5vdyB3ZSBuZWVkIHRvIG1vZGlm eSBhIGZldyBjb2RlcyB0b28gZml0IHRoaXMgY2hhbmdpbmcuCj4+Cj4gU2VlIGFib3ZlIHdoeSB3 ZSBjYW4ndCBmb2xsb3cgdGhpcyBwcm9wb3NhbC4KPgo+PiBBbmQgdG8gbWFrZSB0aGluZ3MgbW9y ZSBlYXNpZXIuIFdlIGNhbiBqdXN0IGtlZXAgdGhlIG9sZCB2YWx1ZXMgYW5kIG9ubHkgbW9kaWZ5 IGFsc2EtbGliIHRvIGxldCAibWFzdGVyIiA9PSAiY29kZWNfc2xhdmUiLgo+PiBIZXJlIHdlIG9u bHkgbmVlZCB0byBjaGFuZ2UgaG93IHdlIHdyaXRlIHRwbGcgYW5kIG5vIG1vcmUga2VybmVsIHBh dGNoZXMgYXJlIG5lZWQuCj4+Cj4+Pj4gIMKgwqAgKiBCbG9jayBIZWFkZXIuCj4+Pj4gIMKgwqAg KiBUaGlzIGhlYWRlciBwcmVjZWRlcyBhbGwgb2JqZWN0IGFuZCBvYmplY3QgYXJyYXlzIGJlbG93 Lgo+Pj4+IEBAIC0zMTEsOCArMzIzLDggQEAgc3RydWN0IHNuZF9zb2NfdHBsZ19od19jb25maWcg ewo+Pj4+ICDCoMKgwqDCoMKgIF9fdTggY2xvY2tfZ2F0ZWQ7wqDCoMKgIC8qIDEgaWYgY2xvY2sg Y2FuIGJlIGdhdGVkIHRvIHNhdmUgcG93ZXIgKi8KPj4+PiAgwqDCoMKgwqDCoCBfX3U4IGludmVy dF9iY2xrO8KgwqDCoCAvKiAxIGZvciBpbnZlcnRlZCBCQ0xLLCAwIGZvciBub3JtYWwgKi8KPj4+ PiAgwqDCoMKgwqDCoCBfX3U4IGludmVydF9mc3luYzvCoMKgwqAgLyogMSBmb3IgaW52ZXJ0ZWQg ZnJhbWUgY2xvY2ssIDAgZm9yIG5vcm1hbCAqLwo+Pj4+IC3CoMKgwqAgX191OCBiY2xrX21hc3Rl cjvCoMKgwqAgLyogMSBmb3IgbWFzdGVyIG9mIEJDTEssIDAgZm9yIHNsYXZlICovCj4+Pj4gLcKg wqDCoCBfX3U4IGZzeW5jX21hc3RlcjvCoMKgwqAgLyogMSBmb3IgbWFzdGVyIG9mIEZTWU5DLCAw IGZvciBzbGF2ZSAqLwo+Pj4+ICvCoMKgwqAgX191OCBiY2xrX21hc3RlcjvCoMKgwqAgLyogU05E X1NPQ19UUExHX0JDTEtfIHZhbHVlICovCj4+Pj4gK8KgwqDCoCBfX3U4IGZzeW5jX21hc3RlcjvC oMKgwqAgLyogU05EX1NPQ19UUExHX0ZTWU5DXyB2YWx1ZSAqLwo+Pj4+ICDCoMKgwqDCoMKgIF9f dTggbWNsa19kaXJlY3Rpb247wqDCoMKgIC8qIDAgZm9yIGlucHV0LCAxIGZvciBvdXRwdXQgKi8K Pj4+PiAgwqDCoMKgwqDCoCBfX2xlMTYgcmVzZXJ2ZWQ7wqDCoMKgIC8qIGZvciAzMmJpdCBhbGln bm1lbnQgKi8KPj4+PiAgwqDCoMKgwqDCoCBfX2xlMzIgbWNsa19yYXRlO8KgwqDCoCAvKiBNQ0xL IG9yIFNZU0NMSyBmcmVxZW5jeSBpbiBIeiAqLwo+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3Rv cG9sb2d5LmggYi9pbmNsdWRlL3RvcG9sb2d5LmgKPj4+PiBpbmRleCA4Nzc5ZGE0ZC4uNWQ3YjQ2 ZGYgMTAwNjQ0Cj4+Pj4gLS0tIGEvaW5jbHVkZS90b3BvbG9neS5oCj4+Pj4gKysrIGIvaW5jbHVk ZS90b3BvbG9neS5oCj4+Pj4gQEAgLTEwMDAsOCArMTAwMCw4IEBAIHN0cnVjdCBzbmRfdHBsZ19o d19jb25maWdfdGVtcGxhdGUgewo+Pj4+ICDCoMKgwqDCoMKgIHVuc2lnbmVkIGNoYXIgY2xvY2tf Z2F0ZWQ7wqDCoMKgwqDCoCAvKiAxIGlmIGNsb2NrIGNhbiBiZSBnYXRlZCB0byBzYXZlIHBvd2Vy ICovCj4+Pj4gIMKgwqDCoMKgwqAgdW5zaWduZWQgY2hhcsKgIGludmVydF9iY2xrO8KgwqDCoMKg IC8qIDEgZm9yIGludmVydGVkIEJDTEssIDAgZm9yIG5vcm1hbCAqLwo+Pj4+ICDCoMKgwqDCoMKg IHVuc2lnbmVkIGNoYXLCoCBpbnZlcnRfZnN5bmM7wqDCoMKgIC8qIDEgZm9yIGludmVydGVkIGZy YW1lIGNsb2NrLCAwIGZvciBub3JtYWwgKi8KPj4+PiAtwqDCoMKgIHVuc2lnbmVkIGNoYXLCoCBi Y2xrX21hc3RlcjvCoMKgwqDCoCAvKiAxIGZvciBtYXN0ZXIgb2YgQkNMSywgMCBmb3Igc2xhdmUg Ki8KPj4+PiAtwqDCoMKgIHVuc2lnbmVkIGNoYXLCoCBmc3luY19tYXN0ZXI7wqDCoMKgIC8qIDEg Zm9yIG1hc3RlciBvZiBGU1lOQywgMCBmb3Igc2xhdmUgKi8KPj4+PiArwqDCoMKgIHVuc2lnbmVk IGNoYXLCoCBiY2xrX21hc3RlcjvCoMKgwqDCoCAvKiBTTkRfU09DX1RQTEdfQkNMS18gdmFsdWUg Ki8KPj4+PiArwqDCoMKgIHVuc2lnbmVkIGNoYXLCoCBmc3luY19tYXN0ZXI7wqDCoMKgIC8qIFNO RF9TT0NfVFBMR19GU1lOQ18gdmFsdWUgKi8KPj4+PiAgwqDCoMKgwqDCoCB1bnNpZ25lZCBjaGFy wqAgbWNsa19kaXJlY3Rpb247wqAgLyogMCBmb3IgaW5wdXQsIDEgZm9yIG91dHB1dCAqLwo+Pj4+ ICDCoMKgwqDCoMKgIHVuc2lnbmVkIHNob3J0IHJlc2VydmVkO8KgwqDCoMKgwqDCoMKgIC8qIGZv ciAzMmJpdCBhbGlnbm1lbnQgKi8KPj4+PiAgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgbWNsa19y YXRlO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogTUNMSyBvciBTWVNDTEsgZnJlcWVuY3kgaW4g SHogKi8KPj4+PiBkaWZmIC0tZ2l0IGEvc3JjL2NvbmYvdG9wb2xvZ3kvYnJvYWR3ZWxsL2Jyb2Fk d2VsbC5jb25mIGIvc3JjL2NvbmYvdG9wb2xvZ3kvYnJvYWR3ZWxsL2Jyb2Fkd2VsbC5jb25mCj4+ Pj4gaW5kZXggYjg0MDVkOTMuLjA5ZmM0ZGFhIDEwMDY0NAo+Pj4+IC0tLSBhL3NyYy9jb25mL3Rv cG9sb2d5L2Jyb2Fkd2VsbC9icm9hZHdlbGwuY29uZgo+Pj4+ICsrKyBiL3NyYy9jb25mL3RvcG9s b2d5L2Jyb2Fkd2VsbC9icm9hZHdlbGwuY29uZgo+Pj4+IEBAIC0zOTMsOCArMzkzLDggQEAgU2Vj dGlvbkdyYXBoLiJkc3AiIHsKPj4+PiAgwqAgU2VjdGlvbkhXQ29uZmlnLiJDb2RlY0hXQ29uZmln IiB7Cj4+Pj4gIMKgwqDCoMKgwqAgaWQgIjEiCj4+Pj4gIMKgwqDCoMKgwqAgZm9ybWF0ICJJMlMi wqDCoMKgwqDCoMKgwqAgIyBwaHlzaWNhbCBhdWRpbyBmb3JtYXQuCj4+Pj4gLcKgwqDCoCBiY2xr wqDCoCAibWFzdGVyIsKgwqDCoMKgwqDCoMKgICMgUGxhdGZvcm0gaXMgbWFzdGVyIG9mIGJpdCBj bG9jawo+Pj4+IC3CoMKgwqAgZnN5bmPCoCAibWFzdGVyIsKgwqDCoMKgwqDCoMKgICMgcGxhdGZv cm0gaXMgbWFzdGVyIG9mIGZzeW5jCj4+Pj4gK8KgwqDCoCBiY2xrwqDCoCAiY29kZWNfc2xhdmUi wqDCoMKgICMgcGxhdGZvcm0gaXMgbWFzdGVyIG9mIGJpdCBjbG9jayAoY29kZWMgaXMgc2xhdmUp Cj4+Pj4gK8KgwqDCoCBmc3luY8KgICJjb2RlY19zbGF2ZSLCoMKgwqAgIyBwbGF0Zm9ybSBpcyBt YXN0ZXIgb2YgZnN5bmMgKGNvZGVjIGlzIHNsYXZlKQo+Pj4+ICDCoCB9Cj4+Pj4gIMKgIMKgIFNl Y3Rpb25MaW5rLiJDb2RlYyIgewo+Pj4+IGRpZmYgLS1naXQgYS9zcmMvdG9wb2xvZ3kvcGNtLmMg Yi9zcmMvdG9wb2xvZ3kvcGNtLmMKPj4+PiBpbmRleCA1OGNlZTMxZC4uYmRhYjhlZWYgMTAwNjQ0 Cj4+Pj4gLS0tIGEvc3JjL3RvcG9sb2d5L3BjbS5jCj4+Pj4gKysrIGIvc3JjL3RvcG9sb2d5L3Bj bS5jCj4+Pj4gQEAgLTExMzcsOCArMTEzNywxOSBAQCBpbnQgdHBsZ19wYXJzZV9od19jb25maWco c25kX3RwbGdfdCAqdHBsZywgc25kX2NvbmZpZ190ICpjZmcsCj4+Pj4gIMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGlmIChzbmRfY29uZmlnX2dldF9zdHJpbmcobiwgJnZhbCkgPCAwKQo+Pj4+ ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOwo+Pj4+ ICDCoCAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIXN0cmNtcCh2YWwsICJtYXN0ZXIiKSkK Pj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGh3X2NmZy0+YmNsa19tYXN0ZXIg PSB0cnVlOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICghc3RyY21wKHZhbCwgIm1h c3RlciIpKSB7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBGb3IgYmFj a3dhcmRzIGNhcGFiaWxpdHksCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICogIm1hc3RlciIgPT0gImNvZGVjIGlzIHNsYXZlIgo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAqLwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgU05E RVJSKCJ3YXJuaW5nOiBkZXByZWNhdGVkIGJjbGsgdmFsdWUgJyVzJ1xuIiwKPj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmFsKTsKPj4+PiArCj4+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBod19jZmctPmJjbGtfbWFzdGVyID0gU05E X1NPQ19UUExHX0JDTEtfQ1M7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIGlm ICghc3RyY21wKHZhbCwgImNvZGVjX3NsYXZlIikpIHsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGh3X2NmZy0+YmNsa19tYXN0ZXIgPSBTTkRfU09DX1RQTEdfQkNMS19DUzsK Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9IGVsc2UgaWYgKCFzdHJjbXAodmFsLCAiY29k ZWNfbWFzdGVyIikpIHsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGh3X2Nm Zy0+YmNsa19tYXN0ZXIgPSBTTkRfU09DX1RQTEdfQkNMS19DTTsKPj4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB9Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOwo+ Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiAgwqBXaGF0IGlmIHNvbWUgb2xkIHRwbGcgdXNl ZCAic2xhdmUiPyBXaGF0IHNob3VsZCB3ZSBkbyB0byB0aG9zZSB2YWx1ZXMuCj4+Cj4gT2xkIGJl aGF2aW9yOiAic2xhdmUiID0+IG5vdCBtb2RpZmllZCAoaHdfY2ZnLT5iY2xrX21hc3RlciA9IDAp Cj4gTmV3IGJlaGF2aW9yOiAic2xhdmUiID0+IG5vdCBtb2RpZmllZCAoaHdfY2ZnLT5iY2xrX21h c3RlciA9IDApCj4KPiBTbywgd2Uga2VlcCB0aGlzIHVzZS1jYXNlIHVuY2hhbmdlZC4KCldoYXQg SSB3b3JyeSBhYm91dCBpcyB0aGF0IHdlIGhhdmUgbWFrZSBod19jZmctPmJjbGtfbWFzdGVyIHVz YWdlIApkaWZmZXJlbnQgaW4ga2VybmVsIHBhcnQuCkkgdGhpbmsgd2Ugc2hvdWxkIGtlZXAgdGhp cyB0aGUgc2FtZSBub3csIHRoZSBzYW1lIDAgaGF2ZSBkaWZmZXJlbnQgCm1lYW5pbmdzLgpPdGhl cndpc2UsIHdoeSBzaG91bGQgd2UgY2hlY2sgY29kZWNfbWFzdGVyPwo+Pj4+ICDCoCBAQCAtMTE2 Myw4ICsxMTc0LDE5IEBAIGludCB0cGxnX3BhcnNlX2h3X2NvbmZpZyhzbmRfdHBsZ190ICp0cGxn LCBzbmRfY29uZmlnX3QgKmNmZywKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYg KHNuZF9jb25maWdfZ2V0X3N0cmluZyhuLCAmdmFsKSA8IDApCj4+Pj4gIMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+Pj4gIMKgIC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGlmICghc3RyY21wKHZhbCwgIm1hc3RlciIpKQo+Pj4+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaHdfY2ZnLT5mc3luY19tYXN0ZXIgPSB0cnVlOwo+Pj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICghc3RyY21wKHZhbCwgIm1hc3RlciIpKSB7Cj4+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBGb3IgYmFja3dhcmRzIGNhcGFiaWxp dHksCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogIm1hc3RlciIgPT0g ImNvZGVjIGlzIHNsYXZlIgo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAq Lwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgU05ERVJSKCJ3YXJuaW5nOiBk ZXByZWNhdGVkIGZzeW5jIHZhbHVlICclcydcbiIsCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZhbCk7Cj4+Pj4gKwo+Pj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgaHdfY2ZnLT5mc3luY19tYXN0ZXIgPSBTTkRfU09DX1RQTEdfRlNZ TkNfQ1M7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIGlmICghc3RyY21wKHZh bCwgImNvZGVjX3NsYXZlIikpIHsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGh3X2NmZy0+ZnN5bmNfbWFzdGVyID0gU05EX1NPQ19UUExHX0ZTWU5DX0NTOwo+Pj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIH0gZWxzZSBpZiAoIXN0cmNtcCh2YWwsICJjb2RlY19tYXN0ZXIi KSkgewo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaHdfY2ZnLT5mc3luY19t YXN0ZXIgPSBTTkRfU09DX1RQTEdfRlNZTkNfQ007Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfQo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsKPj4+PiAgwqDC oMKgwqDCoMKgwqDCoMKgIH0KPj4+PiAgICAKPj4gVGVzdCB3aXRoIG91ciBTT0YgdG9wb2xvZ3kg YW5kIGZvdW5kIGEgbWlzc2luZyBwYXJ0IG1jbGsuCj4+IFdlIGFsc28gdXNlIG1jbGsgbm93LCBh bmQgSSB0aGluayB0aGVzZSBLRVkgV09SRFMgc2hvdWxkIGFsaWduIHdpdGggdGhlIG5ldyBjaGFu Z2VzLCB0b28uCj4+Cj4gbWNsayBpcyBub3QgcmVsYXRlZCB0byB0aGlzIHBhdGNoIHNlcmllcy4g RmVlbCBmcmVlIHRvIGFkZCBpdCBpbiBhIHNlcGFyYXRlIHBhdGNoLgoKT0ssIHdlIG1heSBhZGQg dGhpcyBzdXBwb3J0IGxhdGVyLgoKVGhhbmtzClhpdWxpCgo+IEJlc3QgUmVnYXJkcywKPiBLaXJp bGwKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEFs c2EtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gQWxzYS1kZXZlbEBhbHNhLXByb2plY3Qub3JnCj4gaHR0 cDovL21haWxtYW4uYWxzYS1wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Fsc2EtZGV2ZWwK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFsc2EtZGV2 ZWwgbWFpbGluZyBsaXN0CkFsc2EtZGV2ZWxAYWxzYS1wcm9qZWN0Lm9yZwpodHRwOi8vbWFpbG1h bi5hbHNhLXByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vYWxzYS1kZXZlbAo=