From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kirill Marinushkin Subject: Re: [PATCH v2] ASoC: topology: Fix bclk and fsync inversion in set_link_hw_format() Date: Mon, 19 Mar 2018 07:25:41 +0100 Message-ID: References: <20180301064556.5387-1-k.marinushkin@gmail.com> <20180301064812.5463-1-k.marinushkin@gmail.com> <0ffee89d-ea0b-2454-d1f2-d5056c85a253@linux.intel.com> <4e0ebb1a-7926-b3ad-2e08-f14d6b8beb54@linux.intel.com> <2f8b5ee2-78f4-8f2e-34cd-78b22c9ab2e8@linux.intel.com> <2617665f-f1eb-1129-d067-65a4551284e2@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by alsa0.perex.cz (Postfix) with ESMTP id EDC72267294 for ; Mon, 19 Mar 2018 07:25:14 +0100 (CET) Received: by mail-wm0-f67.google.com with SMTP id l9so3831458wmh.2 for ; Sun, 18 Mar 2018 23:25:14 -0700 (PDT) In-Reply-To: <2617665f-f1eb-1129-d067-65a4551284e2@linux.intel.com> 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: "Pan, Xiuli" , Pierre-Louis Bossart , Mark Brown , Takashi Iwai Cc: Liam Girdwood , alsa-devel@alsa-project.org List-Id: alsa-devel@alsa-project.org SGVsbG8gTWFyaywgVGFrYXNoaS4KClRoaXMgcGF0Y2ggc2VyaWVzIGZpeGVzIGFuIGlzc3VlIHdo aWNoIGNhdXNlcyB0cm91YmxlcyBhdCBTb3VuZCBPcGVuIEZpcm13YXJlLgpJdCBpcyBhbHJlYWR5 IHJldmlld2VkIGFuZCBhZ3JlZWQgYnkgdGhlIFNPRiBlbmdpbmVlcnMKUGFuLCBYaXVsaSA8eGl1 bGkucGFuQGxpbnV4LmludGVsLmNvbT4gYW5kIFBpZXJyZS1Mb3VpcyBCb3NzYXJ0IDxwaWVycmUt bG91aXMuYm9zc2FydEBsaW51eC5pbnRlbC5jb20+CgpQbGVhc2UgaGF2ZSBhIGxvb2suCgpOb3Rp Y2U6IHRoaXMgcGF0Y2ggc2VyaWVzIGluY2x1ZGVzIDEgcGF0Y2ggZm9yIGxpbnV4ICsgMSBwYXRj aCBmb3IgYWxzYS1saWIuCgpCZXN0IFJlZ2FyZHMsCktpcmlsbAoKT24gMDMvMTUvMTggMDQ6MDEs IFBhbiwgWGl1bGkgd3JvdGU6Cj4KPgo+IE9uIDMvMTUvMjAxOCAwMjozNywgUGllcnJlLUxvdWlz IEJvc3NhcnQgd3JvdGU6Cj4+Cj4+Cj4+IE9uIDAzLzE0LzIwMTggMDQ6NDIgQU0sIFBhbiwgWGl1 bGkgd3JvdGU6Cj4+Pgo+Pj4KPj4+IE9uIDMvMTQvMjAxOCAwMzo1MiwgS2lyaWxsIE1hcmludXNo a2luIHdyb3RlOgo+Pj4+IE9uIDAzLzEzLzE4IDA3OjU3LCBQYW4sIFhpdWxpIHdyb3RlOgo+Pj4+ Pgo+Pj4+PiBPbiAzLzEvMjAxOCAxNDo1MywgS2lyaWxsIE1hcmludXNoa2luIHdyb3RlOgo+Pj4+ Pj4gVGhpcyBwYXRjaCBpcyBmb3IgYWxzYS1saWIuIEkgZm9yZ290IHRvIG1lbnRpb24gaXQgaW4g dGhlIHN1YmplY3QuCj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IE9uIDAzLzAxLzE4IDA3OjQ4LCBLaXJp bGwgTWFyaW51c2hraW4gd3JvdGU6Cj4+Pj4+Pj4gVGhlIHZhbHVlcyBvZiBiY2xrIGFuZCBmc3lu YyBhcmUgaW52ZXJ0ZWQgV1JUIHRoZSBjb2RlYy4gQnV0IHRoZSBleGlzdGluZwo+Pj4+Pj4+IHNv bHV0aW9uIGFscmVhZHkgd29ya3MgZm9yIEJyb2Fkd2VsbCwgc2VlIHRoZSBhbHNhLWxpYiBjb25m aWc6Cj4+Pj4+Pj4KPj4+Pj4+PiBgYWxzYS1saWIvc3JjL2NvbmYvdG9wb2xvZ3kvYnJvYWR3ZWxs L2Jyb2Fkd2VsbC5jb25mYAo+Pj4+Pj4+Cj4+Pj4+Pj4gVGhpcyBjb21taXQgcHJvdmlkZXMgdGhl IGJhY2t3YXJkcy1jb21wYXRpYmxlIHNvbHV0aW9uIHRvIGZpeCB0aGlzIG1pc3VzZS4KPj4+Pj4+ PiBUaGlzIGNvbW1pdCBnb2VzIGluIHBhaXIgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBwYXRjaCBm b3IgbGludXguCj4+Pj4+Pj4KPj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBLaXJpbGwgTWFyaW51c2hr aW4gPGsubWFyaW51c2hraW5AZ21haWwuY29tPgo+Pj4+Pj4+IENjOiBNYXJrIEJyb3duIDxicm9v bmllQGtlcm5lbC5vcmc+Cj4+Pj4+Pj4gQ2M6IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5kZT4K Pj4+Pj4+PiBDYzogSmFyb3NsYXYgS3lzZWxhIDxwZXJleEBwZXJleC5jej4KPj4+Pj4+PiBDYzog UGllcnJlLUxvdWlzIEJvc3NhcnQgPHBpZXJyZS1sb3Vpcy5ib3NzYXJ0QGxpbnV4LmludGVsLmNv bT4KPj4+Pj4+PiBDYzogUGFuIFhpdWxpIDx4aXVsaS5wYW5AbGludXguaW50ZWwuY29tPgo+Pj4+ Pj4+IENjOiBMaWFtIEdpcmR3b29kIDxsaWFtLnIuZ2lyZHdvb2RAbGludXguaW50ZWwuY29tPgo+ Pj4+Pj4+IENjOiBhbHNhLWRldmVsQGFsc2EtcHJvamVjdC5vcmcKPj4+Pj4+PiAtLS0KPj4+Pj4+ PiDCoMKgIGluY2x1ZGUvc291bmQvYXNvYy5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfCAxNiArKysrKysrKysrKysrKy0tCj4+Pj4+Pj4gwqDCoCBpbmNsdWRl L3RvcG9sb2d5LmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfMKgIDQgKystLQo+Pj4+Pj4+IMKgwqAgc3JjL2NvbmYvdG9wb2xvZ3kvYnJvYWR3ZWxsL2Jy b2Fkd2VsbC5jb25mIHzCoCA0ICsrLS0KPj4+Pj4+PiDCoMKgIHNyYy90b3BvbG9neS9wY20uY8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDMwICsrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLQo+Pj4+Pj4+IMKgwqAgNCBmaWxlcyBjaGFuZ2VkLCA0 NCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKPj4+Pj4+Pgo+Pj4+Pj4+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL3NvdW5kL2Fzb2MuaCBiL2luY2x1ZGUvc291bmQvYXNvYy5oCj4+Pj4+Pj4g aW5kZXggMGY1ZDlmOWEuLjg5YjAwNzAzIDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2luY2x1ZGUvc291 bmQvYXNvYy5oCj4+Pj4+Pj4gKysrIGIvaW5jbHVkZS9zb3VuZC9hc29jLmgKPj4+Pj4+PiBAQCAt MTU2LDYgKzE1NiwxOCBAQAo+Pj4+Pj4+IMKgwqAgI2RlZmluZSBTTkRfU09DX1RQTEdfTE5LX0ZM R0JJVF9TWU1NRVRSSUNfU0FNUExFQklUUyAoMSA8PCAyKQo+Pj4+Pj4+IMKgwqAgI2RlZmluZSBT TkRfU09DX1RQTEdfTE5LX0ZMR0JJVF9WT0lDRV9XQUtFVVAgKDEgPDwgMykKPj4+Pj4+PiDCoMKg ICsvKiBEQUkgdG9wb2xvZ3kgQkNMSyBwYXJhbWV0ZXIKPj4+Pj4+PiArICogRm9yIHRoZSBiYWNr d2FyZHMgY2FwYWJpbGl0eSwgYnkgZGVmYXVsdCBjb2RlYyBpcyBiY2xrIG1hc3Rlcgo+Pj4+Pj4+ ICsgKi8KPj4+Pj4+PiArI2RlZmluZSBTTkRfU09DX1RQTEdfQkNMS19DTcKgwqDCoMKgwqDCoMKg wqAgMCAvKiBjb2RlYyBpcyBiY2xrIG1hc3RlciAqLwo+Pj4+Pj4+ICsjZGVmaW5lIFNORF9TT0Nf VFBMR19CQ0xLX0NTwqDCoMKgwqDCoMKgwqDCoCAxIC8qIGNvZGVjIGlzIGJjbGsgc2xhdmUgKi8K Pj4+Pj4+PiArCj4+Pj4+Pj4gKy8qIERBSSB0b3BvbG9neSBGU1lOQyBwYXJhbWV0ZXIKPj4+Pj4+ PiArICogRm9yIHRoZSBiYWNrd2FyZHMgY2FwYWJpbGl0eSwgYnkgZGVmYXVsdCBjb2RlYyBpcyBm c3luYyBtYXN0ZXIKPj4+Pj4+PiArICovCj4+Pj4+Pj4gKyNkZWZpbmUgU05EX1NPQ19UUExHX0ZT WU5DX0NNwqDCoMKgwqDCoMKgwqDCoCAwIC8qIGNvZGVjIGlzIGZzeW5jIG1hc3RlciAqLwo+Pj4+ Pj4+ICsjZGVmaW5lIFNORF9TT0NfVFBMR19GU1lOQ19DU8KgwqDCoMKgwqDCoMKgwqAgMSAvKiBj b2RlYyBpcyBmc3luYyBzbGF2ZSAqLwo+Pj4+Pj4+ICsKPj4+Pj4+PiDCoMKgIC8qCj4+Pj4+IENv dWxkIHdlIGtlZXAgdGhpcyBhbGlnbiB3aXRoIHRoZSBvbGQgdmFsdWVzLgo+Pj4+Pgo+Pj4+PiAx IGZvciBtYXN0ZXIgb2YgQkNMSywgMCBmb3Igc2xhdmUKPj4+Pj4gMSBmb3IgbWFzdGVyIG9mIEZT WU5DLCAwIGZvciBzbGF2ZQo+Pj4+IFdlIGNhbm5vdCBrZWVwIGl0IGFsaWduZWQgd2l0aCB0aGUg b2xkICpjb21tZW50IGRlc2NyaXB0aW9ucyosIGJlY2F1c2Ugd2Uga2VlcCBpdCBhbGlnbmVkIHdp dGggdGhlIG9sZCAqaW1wbGVtZW50YXRpb24qLgo+Pj4+IEFzIHlvdSByZW1lbWJlciwgdGhlIHdo b2xlIGlzc3VlIHdhcyB3aXRoIHRoZSByZXZlcnRlZCB2YWx1ZXMuCj4+Pj4gV2UgZXhhY3RseSBr ZWVwIG91ciBuZXcgc29sdXRpb24gYWxpZ25lZCB0byB0aGUgb2xkIHNvbHV0aW9uIGJ5IGRvaW5n IHRoaXM6Cj4+Pgo+Pj4gWWVzLCBidXQgd2hhdCBJIHN1Z2dlc3QgaXMgdGhhdCBpZiB3ZSBjYW4g bm90IG1vZGlmeSB0aGUga2VybmVsIHBhcnQuIEJ1dCBqdXN0IHVzZSB0aGUgdmFsdWUgaW4gYWxz YXRwbGcgdG8gZml4IHRoaXMgcHJvYmxlbS4gV2UgYWN0dWFsbHkgbm90IHBhc3NlZCBhbnkgc3Ry aW5nIGluIHRoZSB0cGxnIGZpbGUsIGJ1dCBvbmx5IHNvbWUgcGFyc2VkIHZhbHVlLgo+Pj4gQ291 bGQgd2UgYWxpZ24gdGhlIHN0cmluZyAmIHZhbHVlIG1hcHBpbmcgdG8gbWFrZSB0aGlzIG1vcmUg ZWFzaWVyLgo+Pj4KPj4+IFRob3VnaCBJIGtub3cgdGhhdCB0aGUgdmFsdWUgZm9yIGJjbGtfbWFz dGVyIGFucyBmc3luY19tYXN0ZXIgaXMgdmVyeSBjb25mdXNpbmcuCj4+Cj4+IFhpdWxpLCBJIHdh cyBub3QgYWJsZSB0byB1bmRlcnN0YW5kIGFueSBvZiB5b3VyIHBvaW50cy4uLgo+PiBSdWxlICMx IGlzIHdlIGRvbid0IGJyZWFrIHVzZXJzcGFjZS4gSWYgcGVvcGxlIGdlbmVyYXRlZCBhIC50cGxn IGZpbGUgd2l0aCBhbiBvbGQgdmVyc2lvbiBvZiBhbHNhdHBsZyBvciBhbiBpbnZlcnNpb24gaW4g dGhlIC5jb25mIGZpbGUsIHRoZW4gd2UgaGF2ZSB0byBwcm92aWRlIGEgYmFja3dhcmRzLWNvbXBh dGlibGUgc29sdXRpb24uCj4+Cj4KPiBPSywgSSBnb3QgdGhlIHBvaW50LiBXZSBtdXN0IG1ha2Ug ZW5vdWdoIGNoYW5nZXMgZm9yIHRoZSBvbGQgdmVyc2lvbiBmaWxlcyB0byBiZSBhY2NlcHRlZC4K PiBUaGUgU09GIG5lZWQgc29tZSBwYXRjaGVzIHRvIHdvcmsgd2l0aCB0aGVzZSBwYXRjaGVzLiBJ IHdpbGwgc2VuZCB0aGVtIG9uY2UgdGhlc2UgYXJlIG1lcmdlZCBpbi4KPgo+IFRoYW5rcwo+IFhp dWxpCj4KPj4+Cj4+Pj4gfn5+fgo+Pj4+ICNkZWZpbmUgU05EX1NPQ19UUExHX0ZTWU5DX0NNwqDC oMKgwqDCoMKgwqDCoCAwIC8qIGNvZGVjIGlzIGZzeW5jIG1hc3RlciAqLwo+Pj4+ICNkZWZpbmUg U05EX1NPQ19UUExHX0ZTWU5DX0NTwqDCoMKgwqDCoMKgwqDCoCAxIC8qIGNvZGVjIGlzIGZzeW5j IHNsYXZlICovCj4+Pj4gfn5+fgo+Pj4+Cj4+Pj4+IFRoaXMgd2lsbCBzYXZlIHNvbWUgY2hhbmdl IGZvciBTT0YgdG9wb2xvZ3kgbG9hZCBwYXJzZSB0byBEU1AuCj4+Pj4+IE5vdyB3ZSBuZWVkIHRv IG1vZGlmeSBhIGZldyBjb2RlcyB0b28gZml0IHRoaXMgY2hhbmdpbmcuCj4+Pj4+Cj4+Pj4gU2Vl IGFib3ZlIHdoeSB3ZSBjYW4ndCBmb2xsb3cgdGhpcyBwcm9wb3NhbC4KPj4+Pgo+Pj4+PiBBbmQg dG8gbWFrZSB0aGluZ3MgbW9yZSBlYXNpZXIuIFdlIGNhbiBqdXN0IGtlZXAgdGhlIG9sZCB2YWx1 ZXMgYW5kIG9ubHkgbW9kaWZ5IGFsc2EtbGliIHRvIGxldCAibWFzdGVyIiA9PSAiY29kZWNfc2xh dmUiLgo+Pj4+PiBIZXJlIHdlIG9ubHkgbmVlZCB0byBjaGFuZ2UgaG93IHdlIHdyaXRlIHRwbGcg YW5kIG5vIG1vcmUga2VybmVsIHBhdGNoZXMgYXJlIG5lZWQuCj4+Pj4+Cj4+Pj4+Pj4gwqDCoMKg ICogQmxvY2sgSGVhZGVyLgo+Pj4+Pj4+IMKgwqDCoCAqIFRoaXMgaGVhZGVyIHByZWNlZGVzIGFs bCBvYmplY3QgYW5kIG9iamVjdCBhcnJheXMgYmVsb3cuCj4+Pj4+Pj4gQEAgLTMxMSw4ICszMjMs OCBAQCBzdHJ1Y3Qgc25kX3NvY190cGxnX2h3X2NvbmZpZyB7Cj4+Pj4+Pj4gwqDCoMKgwqDCoMKg IF9fdTggY2xvY2tfZ2F0ZWQ7wqDCoMKgIC8qIDEgaWYgY2xvY2sgY2FuIGJlIGdhdGVkIHRvIHNh dmUgcG93ZXIgKi8KPj4+Pj4+PiDCoMKgwqDCoMKgwqAgX191OCBpbnZlcnRfYmNsazvCoMKgwqAg LyogMSBmb3IgaW52ZXJ0ZWQgQkNMSywgMCBmb3Igbm9ybWFsICovCj4+Pj4+Pj4gwqDCoMKgwqDC oMKgIF9fdTggaW52ZXJ0X2ZzeW5jO8KgwqDCoCAvKiAxIGZvciBpbnZlcnRlZCBmcmFtZSBjbG9j aywgMCBmb3Igbm9ybWFsICovCj4+Pj4+Pj4gLcKgwqDCoCBfX3U4IGJjbGtfbWFzdGVyO8KgwqDC oCAvKiAxIGZvciBtYXN0ZXIgb2YgQkNMSywgMCBmb3Igc2xhdmUgKi8KPj4+Pj4+PiAtwqDCoMKg IF9fdTggZnN5bmNfbWFzdGVyO8KgwqDCoCAvKiAxIGZvciBtYXN0ZXIgb2YgRlNZTkMsIDAgZm9y IHNsYXZlICovCj4+Pj4+Pj4gK8KgwqDCoCBfX3U4IGJjbGtfbWFzdGVyO8KgwqDCoCAvKiBTTkRf U09DX1RQTEdfQkNMS18gdmFsdWUgKi8KPj4+Pj4+PiArwqDCoMKgIF9fdTggZnN5bmNfbWFzdGVy O8KgwqDCoCAvKiBTTkRfU09DX1RQTEdfRlNZTkNfIHZhbHVlICovCj4+Pj4+Pj4gwqDCoMKgwqDC oMKgIF9fdTggbWNsa19kaXJlY3Rpb247wqDCoMKgIC8qIDAgZm9yIGlucHV0LCAxIGZvciBvdXRw dXQgKi8KPj4+Pj4+PiDCoMKgwqDCoMKgwqAgX19sZTE2IHJlc2VydmVkO8KgwqDCoCAvKiBmb3Ig MzJiaXQgYWxpZ25tZW50ICovCj4+Pj4+Pj4gwqDCoMKgwqDCoMKgIF9fbGUzMiBtY2xrX3JhdGU7 wqDCoMKgIC8qIE1DTEsgb3IgU1lTQ0xLIGZyZXFlbmN5IGluIEh6ICovCj4+Pj4+Pj4gZGlmZiAt LWdpdCBhL2luY2x1ZGUvdG9wb2xvZ3kuaCBiL2luY2x1ZGUvdG9wb2xvZ3kuaAo+Pj4+Pj4+IGlu ZGV4IDg3NzlkYTRkLi41ZDdiNDZkZiAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9pbmNsdWRlL3RvcG9s b2d5LmgKPj4+Pj4+PiArKysgYi9pbmNsdWRlL3RvcG9sb2d5LmgKPj4+Pj4+PiBAQCAtMTAwMCw4 ICsxMDAwLDggQEAgc3RydWN0IHNuZF90cGxnX2h3X2NvbmZpZ190ZW1wbGF0ZSB7Cj4+Pj4+Pj4g wqDCoMKgwqDCoMKgIHVuc2lnbmVkIGNoYXIgY2xvY2tfZ2F0ZWQ7wqDCoMKgwqDCoCAvKiAxIGlm IGNsb2NrIGNhbiBiZSBnYXRlZCB0byBzYXZlIHBvd2VyICovCj4+Pj4+Pj4gwqDCoMKgwqDCoMKg IHVuc2lnbmVkIGNoYXLCoCBpbnZlcnRfYmNsazvCoMKgwqDCoCAvKiAxIGZvciBpbnZlcnRlZCBC Q0xLLCAwIGZvciBub3JtYWwgKi8KPj4+Pj4+PiDCoMKgwqDCoMKgwqAgdW5zaWduZWQgY2hhcsKg IGludmVydF9mc3luYzvCoMKgwqAgLyogMSBmb3IgaW52ZXJ0ZWQgZnJhbWUgY2xvY2ssIDAgZm9y IG5vcm1hbCAqLwo+Pj4+Pj4+IC3CoMKgwqAgdW5zaWduZWQgY2hhcsKgIGJjbGtfbWFzdGVyO8Kg wqDCoMKgIC8qIDEgZm9yIG1hc3RlciBvZiBCQ0xLLCAwIGZvciBzbGF2ZSAqLwo+Pj4+Pj4+IC3C oMKgwqAgdW5zaWduZWQgY2hhcsKgIGZzeW5jX21hc3RlcjvCoMKgwqAgLyogMSBmb3IgbWFzdGVy IG9mIEZTWU5DLCAwIGZvciBzbGF2ZSAqLwo+Pj4+Pj4+ICvCoMKgwqAgdW5zaWduZWQgY2hhcsKg IGJjbGtfbWFzdGVyO8KgwqDCoMKgIC8qIFNORF9TT0NfVFBMR19CQ0xLXyB2YWx1ZSAqLwo+Pj4+ Pj4+ICvCoMKgwqAgdW5zaWduZWQgY2hhcsKgIGZzeW5jX21hc3RlcjvCoMKgwqAgLyogU05EX1NP Q19UUExHX0ZTWU5DXyB2YWx1ZSAqLwo+Pj4+Pj4+IMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBjaGFy wqAgbWNsa19kaXJlY3Rpb247wqAgLyogMCBmb3IgaW5wdXQsIDEgZm9yIG91dHB1dCAqLwo+Pj4+ Pj4+IMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBzaG9ydCByZXNlcnZlZDvCoMKgwqDCoMKgwqDCoCAv KiBmb3IgMzJiaXQgYWxpZ25tZW50ICovCj4+Pj4+Pj4gwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGlu dCBtY2xrX3JhdGU7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBNQ0xLIG9yIFNZU0NMSyBmcmVx ZW5jeSBpbiBIeiAqLwo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9zcmMvY29uZi90b3BvbG9neS9icm9h ZHdlbGwvYnJvYWR3ZWxsLmNvbmYgYi9zcmMvY29uZi90b3BvbG9neS9icm9hZHdlbGwvYnJvYWR3 ZWxsLmNvbmYKPj4+Pj4+PiBpbmRleCBiODQwNWQ5My4uMDlmYzRkYWEgMTAwNjQ0Cj4+Pj4+Pj4g LS0tIGEvc3JjL2NvbmYvdG9wb2xvZ3kvYnJvYWR3ZWxsL2Jyb2Fkd2VsbC5jb25mCj4+Pj4+Pj4g KysrIGIvc3JjL2NvbmYvdG9wb2xvZ3kvYnJvYWR3ZWxsL2Jyb2Fkd2VsbC5jb25mCj4+Pj4+Pj4g QEAgLTM5Myw4ICszOTMsOCBAQCBTZWN0aW9uR3JhcGguImRzcCIgewo+Pj4+Pj4+IMKgwqAgU2Vj dGlvbkhXQ29uZmlnLiJDb2RlY0hXQ29uZmlnIiB7Cj4+Pj4+Pj4gwqDCoMKgwqDCoMKgIGlkICIx Igo+Pj4+Pj4+IMKgwqDCoMKgwqDCoCBmb3JtYXQgIkkyUyLCoMKgwqDCoMKgwqDCoCAjIHBoeXNp Y2FsIGF1ZGlvIGZvcm1hdC4KPj4+Pj4+PiAtwqDCoMKgIGJjbGvCoMKgICJtYXN0ZXIiwqDCoMKg wqDCoMKgwqAgIyBQbGF0Zm9ybSBpcyBtYXN0ZXIgb2YgYml0IGNsb2NrCj4+Pj4+Pj4gLcKgwqDC oCBmc3luY8KgICJtYXN0ZXIiwqDCoMKgwqDCoMKgwqAgIyBwbGF0Zm9ybSBpcyBtYXN0ZXIgb2Yg ZnN5bmMKPj4+Pj4+PiArwqDCoMKgIGJjbGvCoMKgICJjb2RlY19zbGF2ZSLCoMKgwqAgIyBwbGF0 Zm9ybSBpcyBtYXN0ZXIgb2YgYml0IGNsb2NrIChjb2RlYyBpcyBzbGF2ZSkKPj4+Pj4+PiArwqDC oMKgIGZzeW5jwqAgImNvZGVjX3NsYXZlIsKgwqDCoCAjIHBsYXRmb3JtIGlzIG1hc3RlciBvZiBm c3luYyAoY29kZWMgaXMgc2xhdmUpCj4+Pj4+Pj4gwqDCoCB9Cj4+Pj4+Pj4gwqDCoCDCoCBTZWN0 aW9uTGluay4iQ29kZWMiIHsKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvc3JjL3RvcG9sb2d5L3BjbS5j IGIvc3JjL3RvcG9sb2d5L3BjbS5jCj4+Pj4+Pj4gaW5kZXggNThjZWUzMWQuLmJkYWI4ZWVmIDEw MDY0NAo+Pj4+Pj4+IC0tLSBhL3NyYy90b3BvbG9neS9wY20uYwo+Pj4+Pj4+ICsrKyBiL3NyYy90 b3BvbG9neS9wY20uYwo+Pj4+Pj4+IEBAIC0xMTM3LDggKzExMzcsMTkgQEAgaW50IHRwbGdfcGFy c2VfaHdfY29uZmlnKHNuZF90cGxnX3QgKnRwbGcsIHNuZF9jb25maWdfdCAqY2ZnLAo+Pj4+Pj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHNuZF9jb25maWdfZ2V0X3N0cmluZyhu LCAmdmFsKSA8IDApCj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHJldHVybiAtRUlOVkFMOwo+Pj4+Pj4+IMKgwqAgLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYg KCFzdHJjbXAodmFsLCAibWFzdGVyIikpCj4+Pj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBod19jZmctPmJjbGtfbWFzdGVyID0gdHJ1ZTsKPj4+Pj4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBpZiAoIXN0cmNtcCh2YWwsICJtYXN0ZXIiKSkgewo+Pj4+Pj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogRm9yIGJhY2t3YXJkcyBjYXBhYmlsaXR5LAo+Pj4+ Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqICJtYXN0ZXIiID09ICJjb2Rl YyBpcyBzbGF2ZSIKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKi8K Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFNOREVSUigid2FybmluZzog ZGVwcmVjYXRlZCBiY2xrIHZhbHVlICclcydcbiIsCj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZhbCk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaHdfY2ZnLT5iY2xrX21hc3RlciA9IFNORF9TT0Nf VFBMR19CQ0xLX0NTOwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0gZWxzZSBpZiAo IXN0cmNtcCh2YWwsICJjb2RlY19zbGF2ZSIpKSB7Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBod19jZmctPmJjbGtfbWFzdGVyID0gU05EX1NPQ19UUExHX0JDTEtfQ1M7 Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIGlmICghc3RyY21wKHZhbCwg ImNvZGVjX21hc3RlciIpKSB7Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBod19jZmctPmJjbGtfbWFzdGVyID0gU05EX1NPQ19UUExHX0JDTEtfQ007Cj4+Pj4+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgY29udGludWU7Cj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+Pj4+PiDCoMKgV2hh dCBpZiBzb21lIG9sZCB0cGxnIHVzZWQgInNsYXZlIj8gV2hhdCBzaG91bGQgd2UgZG8gdG8gdGhv c2UgdmFsdWVzLgo+Pj4+Pgo+Pj4+IE9sZCBiZWhhdmlvcjogInNsYXZlIiA9PiBub3QgbW9kaWZp ZWQgKGh3X2NmZy0+YmNsa19tYXN0ZXIgPSAwKQo+Pj4+IE5ldyBiZWhhdmlvcjogInNsYXZlIiA9 PiBub3QgbW9kaWZpZWQgKGh3X2NmZy0+YmNsa19tYXN0ZXIgPSAwKQo+Pj4+Cj4+Pj4gU28sIHdl IGtlZXAgdGhpcyB1c2UtY2FzZSB1bmNoYW5nZWQuCj4+Pgo+Pj4gV2hhdCBJIHdvcnJ5IGFib3V0 IGlzIHRoYXQgd2UgaGF2ZSBtYWtlIGh3X2NmZy0+YmNsa19tYXN0ZXIgdXNhZ2UgZGlmZmVyZW50 IGluIGtlcm5lbCBwYXJ0Lgo+Pj4gSSB0aGluayB3ZSBzaG91bGQga2VlcCB0aGlzIHRoZSBzYW1l IG5vdywgdGhlIHNhbWUgMCBoYXZlIGRpZmZlcmVudCBtZWFuaW5ncy4KPj4+IE90aGVyd2lzZSwg d2h5IHNob3VsZCB3ZSBjaGVjayBjb2RlY19tYXN0ZXI/Cj4+Pj4+Pj4gwqDCoCBAQCAtMTE2Myw4 ICsxMTc0LDE5IEBAIGludCB0cGxnX3BhcnNlX2h3X2NvbmZpZyhzbmRfdHBsZ190ICp0cGxnLCBz bmRfY29uZmlnX3QgKmNmZywKPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlm IChzbmRfY29uZmlnX2dldF9zdHJpbmcobiwgJnZhbCkgPCAwKQo+Pj4+Pj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsKPj4+Pj4+PiDCoMKgIC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICghc3RyY21wKHZhbCwgIm1hc3RlciIpKQo+Pj4+Pj4+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaHdfY2ZnLT5mc3luY19tYXN0ZXIgPSB0 cnVlOwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICghc3RyY21wKHZhbCwgIm1h c3RlciIpKSB7Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBGb3Ig YmFja3dhcmRzIGNhcGFiaWxpdHksCj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICogIm1hc3RlciIgPT0gImNvZGVjIGlzIHNsYXZlIgo+Pj4+Pj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgU05ERVJSKCJ3YXJuaW5nOiBkZXByZWNhdGVkIGZzeW5jIHZhbHVlICclcydcbiIs Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZh bCk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaHdf Y2ZnLT5mc3luY19tYXN0ZXIgPSBTTkRfU09DX1RQTEdfRlNZTkNfQ1M7Cj4+Pj4+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIGlmICghc3RyY21wKHZhbCwgImNvZGVjX3NsYXZlIikp IHsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGh3X2NmZy0+ZnN5bmNf bWFzdGVyID0gU05EX1NPQ19UUExHX0ZTWU5DX0NTOwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIH0gZWxzZSBpZiAoIXN0cmNtcCh2YWwsICJjb2RlY19tYXN0ZXIiKSkgewo+Pj4+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaHdfY2ZnLT5mc3luY19tYXN0ZXIgPSBT TkRfU09DX1RQTEdfRlNZTkNfQ007Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29udGludWU7Cj4+Pj4+Pj4gwqDC oMKgwqDCoMKgwqDCoMKgwqAgfQo+Pj4+PiBUZXN0IHdpdGggb3VyIFNPRiB0b3BvbG9neSBhbmQg Zm91bmQgYSBtaXNzaW5nIHBhcnQgbWNsay4KPj4+Pj4gV2UgYWxzbyB1c2UgbWNsayBub3csIGFu ZCBJIHRoaW5rIHRoZXNlIEtFWSBXT1JEUyBzaG91bGQgYWxpZ24gd2l0aCB0aGUgbmV3IGNoYW5n ZXMsIHRvby4KPj4+Pj4KPj4+PiBtY2xrIGlzIG5vdCByZWxhdGVkIHRvIHRoaXMgcGF0Y2ggc2Vy aWVzLiBGZWVsIGZyZWUgdG8gYWRkIGl0IGluIGEgc2VwYXJhdGUgcGF0Y2guCj4+Pgo+Pj4gT0ss IHdlIG1heSBhZGQgdGhpcyBzdXBwb3J0IGxhdGVyLgo+Pj4KPj4+IFRoYW5rcwo+Pj4gWGl1bGkK Pj4+Cj4+Pj4gQmVzdCBSZWdhcmRzLAo+Pj4+IEtpcmlsbAo+Pj4+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4gQWxzYS1kZXZlbCBtYWlsaW5nIGxp c3QKPj4+PiBBbHNhLWRldmVsQGFsc2EtcHJvamVjdC5vcmcKPj4+PiBodHRwOi8vbWFpbG1hbi5h bHNhLXByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vYWxzYS1kZXZlbAo+Pj4KPj4KPgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWxzYS1kZXZlbCBt YWlsaW5nIGxpc3QKQWxzYS1kZXZlbEBhbHNhLXByb2plY3Qub3JnCmh0dHA6Ly9tYWlsbWFuLmFs c2EtcHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbHNhLWRldmVsCg==