From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH 13/16] xen: sched: allow for choosing credit2 runqueues configuration at boot Date: Fri, 18 Mar 2016 20:05:38 +0100 Message-ID: <20160318190538.8117.96025.stgit@Solace.station> References: <20160318185524.8117.74837.stgit@Solace.station> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1agziU-0000jz-Tm for xen-devel@lists.xenproject.org; Fri, 18 Mar 2016 19:05:47 +0000 Received: by mail-wm0-f66.google.com with SMTP id l68so8158587wml.3 for ; Fri, 18 Mar 2016 12:05:45 -0700 (PDT) In-Reply-To: <20160318185524.8117.74837.stgit@Solace.station> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: George Dunlap , Juergen Gross , Uma Sharma List-Id: xen-devel@lists.xenproject.org SW4gZmFjdCwgY3JlZGl0MiB1c2VzIENQVSB0b3BvbG9neSB0byBkZWNpZGUgaG93IHRvIGFycmFu Z2UKaXRzIGludGVybmFsIHJ1bnF1ZXVlcy4gQmVmb3JlIHRoaXMgY2hhbmdlLCBvbmx5ICdvbmUg cnVucXVldWUKcGVyIHNvY2tldCcgd2FzIGFsbG93ZWQuIEhvd2V2ZXIsIGV4cGVyaW1lbnRzIGhh dmUgc2hvd24gdGhhdCwKZm9yIGluc3RhbmNlLCBoYXZpbmcgb25lIHJ1bnF1ZXVlIHBlciBwaHlz aWNhbCBjb3JlIGltcHJvdmVzCnBlcmZvcm1hbmNlLCBlc3BlY2lhbGx5IGluIGNhc2UgaHlwZXJ0 aHJlYWRpbmcgaXMgYXZhaWxhYmxlLgoKSW4gZ2VuZXJhbCwgaXQgbWFrZXMgc2Vuc2UgdG8gYWxs b3cgdXNlcnMgdG8gcGljayBvbmUgcnVucXVldWUKYXJyYW5nZW1lbnQgYXQgYm9vdCB0aW1lLCBz byB0aGF0OgogLSBtb3JlIGV4cGVyaW1lbnRzIGNhbiBiZSBlYXNpbHkgcGVyZm9ybWVkIHRvIGV2 ZW4gYmV0dGVyCiAgIGFzc2VzcyBhbmQgaW1wcm92ZSBwZXJmb3JtYW5jZTsKIC0gb25lIGNhbiBz ZWxlY3QgdGhlIGJlc3QgY29uZmlndXJhdGlvbiBmb3IgaGlzIHNwZWNpZmljCiAgIHVzZSBjYXNl IGFuZC9vciBoYXJkd2FyZS4KClRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgYWJvdmUuCgpOb3RlIHRo YXQsIGZvciBjb3JyZWN0bHkgYXJyYW5naW5nIHJ1bnF1ZXVlcyB0byBiZSBwZXItY29yZSwKanVz dCBjaGVja2luZyBjcHVfdG9fY29yZSgpIG9uIHRoZSBob3N0IENQVXMgaXMgbm90IGVub3VnaC4K SW4gZmFjdCwgY29yZXMgKGFuZCBoeXBlcnRocmVhZHMpIG9uIGRpZmZlcmVudCBzb2NrZXRzLCBj YW4KaGF2ZSB0aGUgc2FtZSBjb3JlIChhbmQgdGhyZWFkKSBJRHMhIFdlLCB0aGVyZWZvcmUsIG5l ZWQgdG8KY2hlY2sgd2hldGhlciB0aGUgZnVsbCB0b3BvbG9neSBvZiB0d28gQ1BVcyBtYXRjaGVz LCBmb3IKdGhlbSB0byBiZSBwdXQgaW4gdGhlIHNhbWUgcnVucXVldWUuCgpOb3RlIGFsc28gdGhh dCB0aGUgZGVmYXVsdCAoYWx0aG91Z2ggbm90IGZ1bmN0aW9uYWwpIGZvcgpjcmVkaXQyLCBzaW5j ZSBub3csIGhhcyBiZWVuIHBlci1zb2NrZXQgcnVucXVldWUuIFRoaXMgcGF0Y2gKbGVhdmVzIHRo aW5ncyB0aGF0IHdheSwgdG8gYXZvaWQgbWl4aW5nIHBvbGljeSBhbmQgdGVjaG5pY2FsCmNoYW5n ZXMuCgpGaW5hbGx5LCBpdCB3b3VsZCBiZSBhIG5pY2UgZmVhdHVyZSB0byBiZSBhYmxlIHRvIHNl bGVjdAphIHBhcnRpY3VsYXIgcnVucXVldWUgYXJyYW5nZW1lbnQsIGV2ZW4gd2hlbiBjcmVhdGlu ZyBhCkNyZWRpdDIgY3B1cG9vbC4gVGhpcyBpcyBsZWZ0IGFzIGZ1dHVyZSB3b3JrLgoKU2lnbmVk LW9mZi1ieTogRGFyaW8gRmFnZ2lvbGkgPGRhcmlvLmZhZ2dpb2xpQGNpdHJpeC5jb20+ClNpZ25l ZC1vZmYtYnk6IFVtYSBTaGFybWEgPHVtYS5zaGFybWE1MjNAZ21haWwuY29tPgotLS0KQ2M6IEdl b3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KQ2M6IFVtYSBTaGFybWEg PHVtYS5zaGFybWE1MjNAZ21haWwuY29tPgpDYzogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2Uu Y29tPgotLS0KQ2FobmdlcyBmcm9tIHYxOgogKiBhZGRlZCAnbm9kZScgYW5kICdnbG9iYWwnIHJ1 bnF1ZXVlIGFycmFuZ2VtZW50cywgYXMKICAgc3VnZ2VzdGVkIGR1cmluZyByZXZpZXc7Ci0tLQog ZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gfCAgIDE5ICsrKysrKysrKwogeGVu L2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgICAgICAgICAgfCAgIDc2ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFy a2Rvd24gYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgppbmRleCBjYTc3ZTNi Li4wMDQ3Zjk0IDEwMDY0NAotLS0gYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93 bgorKysgYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgpAQCAtNDY5LDYgKzQ2 OSwyNSBAQCBjb21iaW5hdGlvbiB3aXRoIHRoZSBgbG93X2NyYXNoaW5mb2AgY29tbWFuZCBsaW5l IG9wdGlvbi4KICMjIyBjcmVkaXQyXF9sb2FkXF93aW5kb3dcX3NoaWZ0CiA+IGA9IDxpbnRlZ2Vy PmAKIAorIyMjIGNyZWRpdDJcX3J1bnF1ZXVlCis+IGA9IGNvcmUgfCBzb2NrZXQgfCBub2RlIHwg YWxsYAorCis+IERlZmF1bHQ6IGBzb2NrZXRgCisKK1NwZWNpZnkgaG93IGhvc3QgQ1BVcyBhcmUg YXJyYW5nZWQgaW4gcnVucXVldWVzLiBSdW5xdWV1ZXMgYXJlIGtlcHQKK2JhbGFuY2VkIHdpdGgg cmVzcGVjdCB0byB0aGUgbG9hZCBnZW5lcmF0ZWQgYnkgdGhlIHZDUFVzIHJ1bm5pbmcgb24KK3Ro ZW0uIFNtYWxsZXIgcnVucXVldWVzIChhcyBpbiB3aXRoIGBjb3JlYCkgbWVhbnMgbW9yZSBhY2N1 cmF0ZSBsb2FkCitiYWxhbmNpbmcgKGZvciBpbnN0YW5jZSwgaXQgd2lsbCBkZWFsIGJldHRlciB3 aXRoIGh5cGVydGhyZWFkaW5nKSwKK2J1dCBhbHNvIG1vcmUgb3ZlcmhlYWQuCisKK0F2YWlsYWJs ZSBhbHRlcm5hdGl2ZXMsIHdpdGggdGhlaXIgbWVhbmluZywgYXJlOgorKiBgY29yZWA6IG9uZSBy dW5xdWV1ZSBwZXIgZWFjaCBwaHlzaWNhbCBjb3JlIG9mIHRoZSBob3N0OworKiBgc29ja2V0YDog b25lIHJ1bnF1ZXVlIHBlciBlYWNoIHBoeXNpY2FsIHNvY2tldCAod2hpY2ggb2Z0ZW4sCisgICAg ICAgICAgICBidXQgbm90IGFsd2F5cywgbWF0Y2hlcyBhIE5VTUEgbm9kZSkgb2YgdGhlIGhvc3Q7 CisqIGBub2RlYDogb25lIHJ1bnF1ZXVlIHBlciBlYWNoIE5VTUEgbm9kZSBvZiB0aGUgaG9zdDsK KyogYGFsbGA6IGp1c3Qgb25lIHJ1bnF1ZXVlIHNoYXJlZCBieSBhbGwgdGhlIGxvZ2ljYWwgcENQ VXMgb2YKKyAgICAgICAgIHRoZSBob3N0CisKICMjIyBkYmdwCiA+IGA9IGVoY2lbIDxpbnRlZ2Vy PiB8IEBwY2k8YnVzPjo8c2xvdD4uPGZ1bmM+IF1gCiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24v c2NoZWRfY3JlZGl0Mi5jIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKaW5kZXggNDU2Yjll YS4uYzI0MmRjNCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKKysrIGIv eGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKQEAgLTgxLDEwICs4MSw2IEBACiAgKiBDcmVkaXRz IGFyZSAicmVzZXQiIHdoZW4gdGhlIG5leHQgdmNwdSBpbiB0aGUgcnVucXVldWUgaXMgbGVzcyB0 aGFuCiAgKiBvciBlcXVhbCB0byB6ZXJvLiAgQXQgdGhhdCBwb2ludCwgZXZlcnlvbmUncyBjcmVk aXRzIGFyZSAiY2xpcHBlZCIKICAqIHRvIGEgc21hbGwgdmFsdWUsIGFuZCBhIGZpeGVkIGNyZWRp dCBpcyBhZGRlZCB0byBldmVyeW9uZS4KLSAqCi0gKiBUaGUgcGxhbiBpcyBmb3IgYWxsIGNvcmVz IHRoYXQgc2hhcmUgYW4gTDIgd2lsbCBzaGFyZSB0aGUgc2FtZQotICogcnVucXVldWUuICBBdCB0 aGUgbW9tZW50LCB0aGVyZSBpcyBvbmUgZ2xvYmFsIHJ1bnF1ZXVlIGZvciBhbGwKLSAqIGNvcmVz LgogICovCiAKIC8qCkBAIC0xOTMsNiArMTg5LDU1IEBAIHN0YXRpYyBpbnQgX19yZWFkX21vc3Rs eSBvcHRfb3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2UgPSAtMzsKIGludGVnZXJfcGFyYW0oImNy ZWRpdDJfYmFsYW5jZV9vdmVyIiwgb3B0X292ZXJsb2FkX2JhbGFuY2VfdG9sZXJhbmNlKTsKIAog LyoKKyAqIFJ1bnF1ZXVlIG9yZ2FuaXphdGlvbi4KKyAqCisgKiBUaGUgdmFyaW91cyBjcHVzIGFy ZSB0byBiZSBhc3NpZ25lZCBlYWNoIG9uZSB0byBhIHJ1bnF1ZXVlLCBhbmQgd2UKKyAqIHdhbnQg dGhhdCB0byBoYXBwZW4gYmFzaW5nIG9uIHRvcG9sb2d5LiBBdCB0aGUgbW9tZW50LCBpdCBpcyBw b3NzaWJsZQorICogdG8gY2hvb3NlIHRvIGFycmFuZ2UgcnVucXVldWVzIHRvIGJlOgorICoKKyAq IC0gcGVyLWNvcmU6IG1lYW5pbmcgdGhhdCB0aGVyZSB3aWxsIGJlIG9uZSBydW5xdWV1ZSBwZXIg ZWFjaCBwaHlzaWNhbAorICogICAgICAgICAgICAgY29yZSBvZiB0aGUgaG9zdC4gVGhpcyB3aWxs IGhhcHBlbiBpZiB0aGUgb3B0X3J1bnF1ZXVlCisgKiAgICAgICAgICAgICBwYXJhbWV0ZXIgaXMg c2V0IHRvICdjb3JlJzsKKyAqCisgKiAtIHBlci1ub2RlOiBtZWFuaW5nIHRoYXQgdGhlcmUgd2ls bCBiZSBvbmUgcnVucXVldWUgcGVyIGVhY2ggcGh5c2ljYWwKKyAqICAgICAgICAgICAgIE5VTUEg bm9kZSBvZiB0aGUgaG9zdC4gVGhpcyB3aWxsIGhhcHBlbiBpZiB0aGUgb3B0X3J1bnF1ZXVlCisg KiAgICAgICAgICAgICBwYXJhbWV0ZXIgaXMgc2V0IHRvICdub2RlJzsKKyAqCisgKiAtIHBlci1z b2NrZXQ6IG1lYW5pbmcgdGhhdCB0aGVyZSB3aWxsIGJlIG9uZSBydW5xdWV1ZSBwZXIgZWFjaCBw aHlzaWNhbAorICogICAgICAgICAgICAgICBzb2NrZXQgKEFLQSBwYWNrYWdlLCB3aGljaCBvZnRl biwgYnV0IG5vdCBhbHdheXMsIGFsc28KKyAqICAgICAgICAgICAgICAgbWF0Y2hlcyBhIE5VTUEg bm9kZSkgb2YgdGhlIGhvc3Q7IFRoaXMgd2lsbCBoYXBwZW4gaWYKKyAqICAgICAgICAgICAgICAg dGhlIG9wdF9ydW5xdWV1ZSBwYXJhbWV0ZXIgaXMgc2V0IHRvICdzb2NrZXQnOworICoKKyAqIC0g Z2xvYmFsOiBtZWFuaW5nIHRoYXQgdGhlcmUgd2lsbCBiZSBvbmx5IG9uZSBydW5xdWV1ZSB0byB3 aGljaCBhbGwgdGhlCisgKiAgICAgICAgICAgKGxvZ2ljYWwpIHByb2Nlc3NvcnMgb2YgdGhlIGhv c3QgYmVsb25ncy4gVGhpcyB3aWxsIGhhcHBlbiBpZgorICogICAgICAgICAgIHRoZSBvcHRfcnVu cXVldWUgcGFyYW1ldGVyIGlzIHNldCB0byAnYWxsJy4KKyAqCisgKiBEZXBlbmRpbmcgb24gdGhl IHZhbHVlIG9mIG9wdF9ydW5xdWV1ZSwgdGhlcmVmb3JlLCBjcHVzIHRoYXQgYXJlIHBhcnQgb2YK KyAqIGVpdGhlciB0aGUgc2FtZSBwaHlzaWNhbCBjb3JlLCBvciBvZiB0aGUgc2FtZSBwaHlzaWNh bCBzb2NrZXQsIHdpbGwgYmUKKyAqIHB1dCB0b2dldGhlciB0byBmb3JtIHJ1bnF1ZXVlcy4KKyAq LworI2RlZmluZSBPUFRfUlVOUVVFVUVfQ09SRSAgIDEKKyNkZWZpbmUgT1BUX1JVTlFVRVVFX1NP Q0tFVCAyCisjZGVmaW5lIE9QVF9SVU5RVUVVRV9OT0RFICAgMworI2RlZmluZSBPUFRfUlVOUVVF VUVfQUxMICAgIDQKK3N0YXRpYyBpbnQgX19yZWFkX21vc3RseSBvcHRfcnVucXVldWUgPSBPUFRf UlVOUVVFVUVfU09DS0VUOworCitzdGF0aWMgdm9pZCBwYXJzZV9jcmVkaXQyX3J1bnF1ZXVlKGNv bnN0IGNoYXIgKnMpCit7CisgICAgaWYgKCAhc3RybmNtcChzLCAiY29yZSIsIDQpICYmICFzWzRd ICkKKyAgICAgICAgb3B0X3J1bnF1ZXVlID0gT1BUX1JVTlFVRVVFX0NPUkU7CisgICAgZWxzZSBp ZiAoICFzdHJuY21wKHMsICJzb2NrZXQiLCA2KSAmJiAhc1s2XSApCisgICAgICAgIG9wdF9ydW5x dWV1ZSA9IE9QVF9SVU5RVUVVRV9TT0NLRVQ7CisgICAgZWxzZSBpZiAoICFzdHJuY21wKHMsICJu b2RlIiwgNCkgJiYgIXNbNF0gKQorICAgICAgICBvcHRfcnVucXVldWUgPSBPUFRfUlVOUVVFVUVf Tk9ERTsKKyAgICBlbHNlIGlmICggIXN0cm5jbXAocywgImFsbCIsIDYpICYmICFzWzZdICkKKyAg ICAgICAgb3B0X3J1bnF1ZXVlID0gT1BUX1JVTlFVRVVFX0FMTDsKKyAgICBlbHNlCisgICAgICAg IHByaW50aygiV0FSTklORywgdW5yZWNvZ25pemVkIHZhbHVlIG9mIGNyZWRpdDJfcnVucXVldWUg b3B0aW9uIVxuIik7Cit9CitjdXN0b21fcGFyYW0oImNyZWRpdDJfcnVucXVldWUiLCBwYXJzZV9j cmVkaXQyX3J1bnF1ZXVlKTsKKworLyoKICAqIFBlci1ydW5xdWV1ZSBkYXRhCiAgKi8KIHN0cnVj dCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgewpAQCAtMTk3MSw2ICsyMDE2LDIyIEBAIHN0YXRpYyB2 b2lkIGRlYWN0aXZhdGVfcnVucXVldWUoc3RydWN0IGNzY2hlZDJfcHJpdmF0ZSAqcHJ2LCBpbnQg cnFpKQogICAgIGNwdW1hc2tfY2xlYXJfY3B1KHJxaSwgJnBydi0+YWN0aXZlX3F1ZXVlcyk7CiB9 CiAKK3N0YXRpYyBpbmxpbmUgYm9vbF90IHNhbWVfbm9kZSh1bnNpZ25lZCBpbnQgY3B1YSwgdW5z aWduZWQgaW50IGNwdWIpCit7CisgICAgcmV0dXJuIGNwdV90b19ub2RlKGNwdWEpID09IGNwdV90 b19ub2RlKGNwdWIpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2xfdCBzYW1lX3NvY2tldCh1bnNp Z25lZCBpbnQgY3B1YSwgdW5zaWduZWQgaW50IGNwdWIpCit7CisgICAgcmV0dXJuIGNwdV90b19z b2NrZXQoY3B1YSkgPT0gY3B1X3RvX3NvY2tldChjcHViKTsKK30KKworc3RhdGljIGlubGluZSBi b29sX3Qgc2FtZV9jb3JlKHVuc2lnbmVkIGludCBjcHVhLCB1bnNpZ25lZCBpbnQgY3B1YikKK3sK KyAgICByZXR1cm4gc2FtZV9zb2NrZXQoY3B1YSwgY3B1YikgJiYKKyAgICAgICAgICAgY3B1X3Rv X2NvcmUoY3B1YSkgPT0gY3B1X3RvX2NvcmUoY3B1Yik7Cit9CisKIHN0YXRpYyB1bnNpZ25lZCBp bnQKIGNwdV90b19ydW5xdWV1ZShzdHJ1Y3QgY3NjaGVkMl9wcml2YXRlICpwcnYsIHVuc2lnbmVk IGludCBjcHUpCiB7CkBAIC0yMDAzLDcgKzIwNjQsMTAgQEAgY3B1X3RvX3J1bnF1ZXVlKHN0cnVj dCBjc2NoZWQyX3ByaXZhdGUgKnBydiwgdW5zaWduZWQgaW50IGNwdSkKICAgICAgICAgQlVHX09O KGNwdV90b19zb2NrZXQoY3B1KSA9PSBYRU5fSU5WQUxJRF9TT0NLRVRfSUQgfHwKICAgICAgICAg ICAgICAgIGNwdV90b19zb2NrZXQocGVlcl9jcHUpID09IFhFTl9JTlZBTElEX1NPQ0tFVF9JRCk7 CiAKLSAgICAgICAgaWYgKCBjcHVfdG9fc29ja2V0KGNwdW1hc2tfZmlyc3QoJnJxZC0+YWN0aXZl KSkgPT0gY3B1X3RvX3NvY2tldChjcHUpICkKKyAgICAgICAgaWYgKCBvcHRfcnVucXVldWUgPT0g T1BUX1JVTlFVRVVFX0FMTCB8fAorICAgICAgICAgICAgIChvcHRfcnVucXVldWUgPT0gT1BUX1JV TlFVRVVFX0NPUkUgJiYgc2FtZV9jb3JlKHBlZXJfY3B1LCBjcHUpKSB8fAorICAgICAgICAgICAg IChvcHRfcnVucXVldWUgPT0gT1BUX1JVTlFVRVVFX1NPQ0tFVCAmJiBzYW1lX3NvY2tldChwZWVy X2NwdSwgY3B1KSkgfHwKKyAgICAgICAgICAgICAob3B0X3J1bnF1ZXVlID09IE9QVF9SVU5RVUVV RV9OT0RFICYmIHNhbWVfbm9kZShwZWVyX2NwdSwgY3B1KSkgKQogICAgICAgICAgICAgYnJlYWs7 CiAgICAgfQogCkBAIC0yMTU3LDYgKzIyMjEsOCBAQCBjc2NoZWQyX2luaXQoc3RydWN0IHNjaGVk dWxlciAqb3BzKQogICAgIHByaW50aygiIGxvYWRfd2luZG93X3NoaWZ0OiAlZFxuIiwgb3B0X2xv YWRfd2luZG93X3NoaWZ0KTsKICAgICBwcmludGsoIiB1bmRlcmxvYWRfYmFsYW5jZV90b2xlcmFu Y2U6ICVkXG4iLCBvcHRfdW5kZXJsb2FkX2JhbGFuY2VfdG9sZXJhbmNlKTsKICAgICBwcmludGso IiBvdmVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogJWRcbiIsIG9wdF9vdmVybG9hZF9iYWxhbmNl X3RvbGVyYW5jZSk7CisgICAgcHJpbnRrKCIgcnVucXVldWVzIGFycmFuZ2VtZW50OiBwZXItJXNc biIsCisgICAgICAgICAgIG9wdF9ydW5xdWV1ZSA9PSBPUFRfUlVOUVVFVUVfQ09SRSA/ICJjb3Jl IiA6ICJzb2NrZXQiKTsKIAogICAgIGlmICggb3B0X2xvYWRfd2luZG93X3NoaWZ0IDwgTE9BREFW R19XSU5ET1dfU0hJRlRfTUlOICkKICAgICB7CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK