From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [RFC 01/16] docs: create Memory Bandwidth Allocation (MBA) feature document. Date: Tue, 10 Jan 2017 15:42:20 +0800 Message-ID: <1484034155-4521-2-git-send-email-yi.y.sun@linux.intel.com> References: <1484034155-4521-1-git-send-email-yi.y.sun@linux.intel.com> 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 1cQr5Q-0003lN-6N for xen-devel@lists.xenproject.org; Tue, 10 Jan 2017 07:43:16 +0000 In-Reply-To: <1484034155-4521-1-git-send-email-yi.y.sun@linux.intel.com> 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: wei.liu2@citrix.com, he.chen@linux.intel.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, Yi Sun , jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBjcmVhdGVzIE1CQSBmZWF0dXJlIGRvY3VtZW50IGluIGRvYy9mZWF0dXJlcy8u IEl0CmRlc2NyaWJlcyBkZXRhaWxzIGZvciBNQkEuCgpTaWduZWQtb2ZmLWJ5OiBZaSBTdW4gPHlp Lnkuc3VuQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkb2NzL2ZlYXR1cmVzL2ludGVsX3Bzcl9tYmEu cGFuZG9jIHwgMjI2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmls ZSBjaGFuZ2VkLCAyMjYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvY3MvZmVh dHVyZXMvaW50ZWxfcHNyX21iYS5wYW5kb2MKCmRpZmYgLS1naXQgYS9kb2NzL2ZlYXR1cmVzL2lu dGVsX3Bzcl9tYmEucGFuZG9jIGIvZG9jcy9mZWF0dXJlcy9pbnRlbF9wc3JfbWJhLnBhbmRvYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzA0ZjAxCi0tLSAvZGV2L251bGwK KysrIGIvZG9jcy9mZWF0dXJlcy9pbnRlbF9wc3JfbWJhLnBhbmRvYwpAQCAtMCwwICsxLDIyNiBA QAorJSBJbnRlbCBNZW1vcnkgQmFuZHdpZHRoIEFsbG9jYXRpb24gKE1CQSkgRmVhdHVyZQorJSBS ZXZpc2lvbiAxLjAKKworXGNsZWFycGFnZQorCisjIEJhc2ljcworCistLS0tLS0tLS0tLS0tLS0t IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgIFN0YXR1czogKipUZWNoIFByZXZpZXcqKgorCitBcmNoaXRlY3R1cmUocyk6IEludGVs IHg4NgorCisgICBDb21wb25lbnQocyk6IEh5cGVydmlzb3IsIHRvb2xzdGFjaworCisgICAgICAg SGFyZHdhcmU6IE1CQSBpcyBzdXBwb3J0ZWQgb24gU2t5bGFrZSBTZXJ2ZXIgYW5kIGJleW9uZAor LS0tLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisKKyMgT3ZlcnZpZXcKKworVGhlIE1lbW9yeSBCYW5kd2lkdGggQWxsb2Nh dGlvbiAoTUJBKSBmZWF0dXJlIHByb3ZpZGVzIGluZGlyZWN0IGFuZCBhcHByb3hpbWF0ZQorY29u dHJvbCBvdmVyIG1lbW9yeSBiYW5kd2lkdGggYXZhaWxhYmxlIHBlci1jb3JlLiBUaGlzIGZlYXR1 cmUgcHJvdmlkZXMgT1MvVk1NcwordGhlIGFiaWxpdHkgdG8gc2xvdyBtaXNiZWhhdmluZyBhcHBz L1ZNcyBvciBjcmVhdGUgYWR2YW5jZWQgY2xvc2VkLWxvb3AgY29udHJvbAorc3lzdGVtIHZpYSBl eHBvc2luZyBjb250cm9sIG92ZXIgYSBjcmVkaXQtYmFzZWQgdGhyb3R0bGluZyBtZWNoYW5pc20u CisKKyMjIFRlcm1pbm9sb2d5CisKKyogQ0FUICAgICAgICAgQ2FjaGUgQWxsb2NhdGlvbiBUZWNo bm9sb2d5CisqIENPUy9DTE9TICAgIENsYXNzIG9mIFNlcnZpY2UKKyogTVNScyAgICAgICAgTWFj aGluZSBTcGVjaWZpYyBSZWdpc3RlcnMKKyogUFNSICAgICAgICAgSW50ZWwgUGxhdGZvcm0gU2hh cmVkIFJlc291cmNlCisqIFZNTSAgICAgICAgIFZpcnR1YWwgTWFjaGluZSBNb25pdG9yCisqIFRI UlRMICAgICAgIFRocm90dGxlIHZhbHVlIG9yIGRlbGF5IHZhbHVlCisKKyMgVXNlciBkZXRhaWxz CisKKyogRmVhdHVyZSBFbmFibGluZzoKKworICBBZGQgInBzcj1tYmEiIHRvIGJvb3QgbGluZSBw YXJhbWV0ZXIgdG8gZW5hYmxlIE1CQSBmZWF0dXJlLgorCisqIHhsIGludGVyZmFjZXM6CisKKyAg MS4gYHBzci1tYmEtc2hvdyBbZG9tYWluLWlkXWA6CisKKyAgICAgU2hvdyBzeXN0ZW0vZG9tYWlu IE1CQSBpbmZvcm1hdGlvbi4KKworICAyLiBgcHNyLW1iYS1zZXQgW09QVElPTlNdIGRvbWFpbi1p ZCB0aHJvdHRsaW5nYDoKKworICAgICBTZXQgbWVtb3J5IGJhbmR3aWR0aCB0aHJvdHRsaW5nIGZv ciBkb21haW4uCisKKyAgICAgT3B0aW9uczoKKyAgICAgJy1zJzogU3BlY2lmeSB0aGUgc29ja2V0 IHRvIHByb2Nlc3MsIG90aGVyd2lzZSBhbGwgc29ja2V0cyBhcmUgcHJvY2Vzc2VkLgorCisgICAg IFRocm90dGxpbmcgdmFsdWUgc2V0IGluIHJlZ2lzdGVyIGltcGxpZXMgbWVtb3J5IGJhbmR3aWR0 aCBibG9ja2VkLCBpLmUuCisgICAgIGhpZ2hlciB0aHJvdHRsaW5nIHZhbHVlIHJlc3VsdHMgaW4g bG93ZXIgYmFuZHdpZHRoLiBUaGUgbWF4IHRocm90dGxpbmcKKyAgICAgdmFsdWUgY2FuIGJlIGdv dCB0aHJvdWdoIENQVUlELgorCisgICAgIFRoZSByZXNwb25zZSBvZiB0aGUgdGhyb3R0bGluZyB2 YWx1ZSBjb3VsZCBiZSBsaW5lYXIgbW9kZSBvciBub24tbGluZWFyCisgICAgIG1vZGUuCisKKyAg ICAgTGluZWFyIG1vZGU6IHRoZSBpbnB1dCBwcmVjaXNpb24gaXMgZGVmaW5lZCBhcyAxMDAtKE1C QV9NQVgpLiBGb3IgaW5zdGFuY2UsCisgICAgIGlmIHRoZSBNQkFfTUFYIHZhbHVlIGlzIDkwLCB0 aGUgaW5wdXQgcHJlY2lzaW9uIGlzIDEwJS4gVmFsdWVzIG5vdCBhbiBldmVuCisgICAgIG11bHRp cGxlIG9mIHRoZSBwcmVjaXNpb24gKGUuZy4sIDEyJSkgd2lsbCBiZSByb3VuZGVkIGRvd24gKGUu Zy4sIHRvIDEwJQorICAgICBkZWxheSBhcHBsaWVkKSBieSBIVyBhdXRvbWF0aWNhbGx5LgorCisg ICAgIE5vbi1saW5lYXIgbW9kZTogaW5wdXQgZGVsYXkgdmFsdWVzIGFyZSBwb3dlcnMtb2YtdHdv IGZyb20gemVybyB0byB0aGUKKyAgICAgTUJBX01BWCB2YWx1ZSBmcm9tIENQVUlELiBJbiB0aGlz IGNhc2UgYW55IHZhbHVlcyBub3QgYSBwb3dlciBvZiB0d28gd2lsbAorICAgICBiZSByb3VuZGVk IGRvd24gdGhlIG5leHQgbmVhcmVzdCBwb3dlciBvZiB0d28gYnkgSFcgYXV0b21hdGljYWxseS4K KworIyBUZWNobmljYWwgZGV0YWlscworCitNQkEgaXMgYSBtZW1iZXIgb2YgSW50ZWwgUFNSIGZl YXR1cmVzLCBpdCB3b3VsZCBzaGFyZSBzb21lIGJhc2UgUFNSCitpbmZyYXN0cnVjdHVyZSBpbiBY ZW4uCisKKyMjIEhhcmR3YXJlIHBlcnNwZWN0aXZlCisKK01CQSBwcm92aWRlcyBhbiBhcmNoaXRl Y3R1cmFsIGNvbnNpc3RlbnQgbWV0aG9kIHRvIG1hcCBjb3Jlc+KAmSB0byBhIENsYXNzCitvZiBT ZXJ2aWNlIChDT1MpLiBUaGlzIGluZnJhc3RydWN0dXJlIHdpbGwgYmUgc2hhcmVkIHdpdGggdGhl IHByZXZpb3VzbHkKK2ludHJvZHVjZWQgQ0FUIHRlY2hub2xvZ2llcy4KKworRnVydGhlcm1vcmUs IE1CQSBhbHNvIGRlZmluZXMgYSBuZXcgcmFuZ2UgTVNScyB0byBzdXBwb3J0IHNwZWNpZnlpbmcg YQorZGVsYXkgdmFsdWUgKFRocnRsKSBwZXIgQ09TLCB3aXRoIGRldGFpbHMgYmVsb3cuCisKKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCit8IE1TUiAocGVy IHNvY2tldCkgICAgICAgICAgIHwgICAgQWRkcmVzcyAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKK3wgSUEzMl9MMl9RT1NfRXh0X0JXX1RocnRs XzAgfCAgICAgMHhENTAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKworfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICB8ICAuLi4gICAgICAg ICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCit8 IElBMzJfTDJfUU9TX0V4dF9CV19UaHJ0bF9uIHwgMHhENTArbiAobjw2NCkgfAorKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKworV2hlbiBjb250ZXh0IHN3 aXRjaCBoYXBwZW5zLCB0aGUgQ09TIG9mIFZDUFUgaXMgd3JpdHRlbiB0byBwZXItdGhyZWFkCitN U1IgYElBMzJfUFFSX0FTU09DYCwgYW5kIHRoZW4gaGFyZHdhcmUgZW5mb3JjZXMgYmFuZHdpZHRo IGFsbG9jYXRpb24KK2FjY29yZGluZyB0byB0aGUgdGhyb3R0bGluZyB2YWx1ZSBjb3JyZXNwb25k aW5nIHRvIHRoZSBDT1MuCisKKyMjIFRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBNQkEgYW5kIENB VC9DRFAKKworR2VuZXJhbGx5IHNwZWFraW5nLCBNQkEgaXMgY29tcGxldGVseSBpbmRlcGVuZGVu dCBvZiBDQVQvQ0RQLCBhbmQgYW55Citjb21iaW5hdGlvbiBtYXkgYmUgYXBwbGllZCBhdCBhbnkg dGltZSwgZS5nLiBlbmFibGluZyBNQkEgd2l0aCBDQVQgCitkaXNhYmxlZC4KKworQnV0IGl0IG5l ZWRzIHRvIGJlIG5vdGljZWQgdGhhdCBNQkEgc2hhcmVzIENPUyBpbmZyYXN0cnVjdHVyZSB3aXRo IENBVCwKK2FsdGhvdWdoIE1CQSBpcyBlbnVtZXJhdGVkIGJ5IGRpZmZlcmVudCBDUFVJRCBsZWFm IGZyb20gQ0FUICh3aGljaAoraW5kaWNhdGVzIHRoYXQgdGhlIG1heCBDT1Mgb2YgTUJBIG1heSBi ZSBkaWZmZXJlbnQgZnJvbSBDQVQpLgorCisjIyBEZXNpZ24gT3ZlcnZpZXcKKworKiBDb3JlIENP Uy9UaHJ0bCBhc3NvY2lhdGlvbgorCisgIFdoZW4gZW5mb3JjaW5nIE1lbW9yeSBCYW5kd2lkdGgg QWxsb2NhdGlvbiwgYWxsIGNvcmVzIG9mIGRvbWFpbnMgaGF2ZQorICB0aGUgc2FtZSBkZWZhdWx0 IENPUyAoQ09TMCkgd2hpY2ggY29ycmVzcG9uZCB0byB0aGUgc2FtZSBUaHJ0bCAoMCkuCisgIFRo ZSBkZWZhdWx0IENPUyBpcyB1c2VkIG9ubHkgaW4gaHlwZXJ2aXNvciBhbmQgaXMgdHJhbnNwYXJl bnQgdG8gdG9vbAorICBzdGFjayBhbmQgdXNlci4KKworICBTeXN0ZW0gYWRtaW5pc3RyYXRvciBj YW4gY2hhbmdlIFBTUiBhbGxvY2F0aW9uIHBvbGljeSBhdCBydW50aW1lIGJ5CisgIHRvb2wgc3Rh Y2suIFNpbmNlIE1CQSBzaGFyZXMgQ09TIHdpdGggQ0FUL0NEUCwgYSBDT1MgY29ycmVzcG9uZHMg dG8gYQorICAyLXR1cGxlLCBsaWtlIFtDQk0sIFRocnRsXSB3aXRoIG9ubHktQ0FUIGVuYWxiZWQs IHdoZW4gQ0RQIGlzIGVuYWJsZSwKKyAgdGhlIENPUyBjb3JyZXNwb25kcyB0byBhIDMtdHVwbGUs IGxpa2UgW0NvZGVfQ0JNLCBEYXRhX0NCTSwgVGhydGxdLiBJZgorICBuZWl0aGVyIENBVCBub3Ig Q0RQIGlzIGVuYWJsZWQsIHRoaW5ncyB3b3VsZCBiZSBlYXNpZXIsIG9uZSBDT1MKKyAgY29ycmVz cG9uZHMgdG8gb25lIFRocnRsLgorCisqIFZDUFUgc2NoZWR1bGUKKworICBUaGlzIHBhcnQgcmV1 c2VzIENBVCBDT1MgaW5mcmFzdHJ1Y3R1cmUuCisKKyogTXVsdGktc29ja2V0cworCisgIERpZmZl cmVudCBzb2NrZXRzIG1heSBoYXZlIGRpZmZlcmVudCBNQkEgYWJpbGl0eSAobGlrZSBtYXggQ09T KQorICBhbHRob3VnaCBpdCBpcyBjb25zaXN0ZW50IG9uIHRoZSBzYW1lIHNvY2tldC4gU28gdGhl IGNhcGFiaWxpdHkKKyAgb2YgcGVyLXNvY2tldCBNQkEgaXMgc3BlY2lmaWVkLgorCisjIyBJbXBs ZW1lbnRhdGlvbiBEZXNjcmlwdGlvbgorCisqIEh5cGVydmlzb3IgaW50ZXJmYWNlczoKKworICAx LiBCb290IGxpbmUgcGFyYW06ICJwc3I9bWJhIiB0byBlbmFibGUgdGhlIGZlYXR1cmUuCisKKyAg Mi4gU1lTQ1RMOgorICAgICAgICAgIC0gWEVOX1NZU0NUTF9QU1JfTUJBX2dldF9pbmZvOiBHZXQg c3lzdGVtIE1CQSBpbmZvcm1hdGlvbi4KKworICAzLiBET01DVEw6CisgICAgICAgICAgLSBYRU5f RE9NQ1RMX1BTUl9NQkFfT1BfR0VUX1RIUlRMOiBHZXQgVGhyb3R0bGluZyBmb3IgYSBkb21haW4u CisgICAgICAgICAgLSBYRU5fRE9NQ1RMX1BTUl9NQkFfT1BfU0VUX1RIUlRMOiBTZXQgVGhyb3R0 bGluZyBmb3IgYSBkb21haW4uCisKKyogeGwgaW50ZXJmYWNlczoKKworICAxLiBwc3ItbWJhLXNo b3cgW2RvbWFpbi1pZF0KKyAgICAgICAgICBTaG93IHN5c3RlbS9ydW50aW1lIE1CQSBpbmZvcm1h dGlvbi4KKyAgICAgICAgICA9PiBYRU5fU1lTQ1RMX1BTUl9NQkFfZ2V0X2luZm8vWEVOX0RPTUNU TF9QU1JfTUJBX09QX0dFVF9USFJUTAorCisgIDIuIHBzci1tYmEtc2V0IFtPUFRJT05TXSBkb21h aW4taWQgdGhyb3R0bGluZworICAgICAgICAgIFNldCBiYW5kd2lkdGggdGhyb3R0bGluZyBmb3Ig YSBkb21haW4uCisgICAgICAgICAgPT4gWEVOX0RPTUNUTF9QU1JfTUJBX09QX1NFVF9USFJUTAor CisqIEtleSBkYXRhIHN0cnVjdHVyZToKKworICAxLiBGZWF0dXJlIEhXIGluZm8KKworICAgICBg YGAKKyAgICAgc3RydWN0IHBzcl9tYmFfaHdfaW5mbyB7CisgICAgICAgICB1bnNpZ25lZCBpbnQg dGhydGxfbWF4OworICAgICAgICAgdW5zaWduZWQgaW50IGNvc19tYXg7CisgICAgICAgICB1bnNp Z25lZCBpbnQgbGluZWFyOworICAgICB9OworCisgICAgIC0gTWVtYmVyIGB0aHJ0bF9tYXhgCisK KyAgICAgICBgdGhydGxfbWF4YCBpcyB0aGUgbWF4IHRocm90dGxpbmcgdmFsdWUgdG8gYmUgc2V0 LgorCisgICAgIC0gTWVtYmVyIGBjb3NfbWF4YAorCisgICAgICAgYGNvc19tYXhgIGlzIG9uZSBv ZiB0aGUgaGFyZHdhcmUgaW5mbyBvZiBDQVQuCisKKyAgICAgLSBNZW1iZXIgYGxpbmVhcmAKKwor ICAgICAgIGB0aHJ0bF9tYXhgIG1lYW5zIHRoZSByZXNwb25zZSBvZiBkZWxheSB2YWx1ZSBpcyBs aW5lYXIgb3Igbm90LgorCisgICAgIEFzIG1lbnRpb25lZCBhYm92ZSwgTUJBIGlzIGEgbWVtYmVy IG9mIEludGVsIFBTUiBmZWF0dXJlcywgaXQgd291bGQKKyAgICAgc2hhcmUgc29tZSBiYXNlIFBT UiBpbmZyYXN0cnVjdHVyZSBpbiBYZW4uIFNvLCBmb3Igb3RoZXIgZGF0YSBzdHJ1Y3R1cmUKKyAg ICAgZGV0YWlscywgcGxlYXNlIHJlZmVyICdpbnRlbF9wc3JfbDJfY2F0LnBhbmRvYycuCisKKyMg TGltaXRhdGlvbnMKKworTUJBIGNhbiBvbmx5IHdvcmsgb24gSFcgd2hpY2ggZW5hYmxlcyBpdCAo Y2hlY2sgYnkgQ1BVSUQpLgorCisjIFRlc3RpbmcKKworV2UgY2FuIGV4ZWN1dGUgdGhlc2UgY29t bWFuZHMgdG8gdmVyaWZ5IE1CQSBvbiBkaWZmZXJlbnQgSFdzIHN1cHBvcnRpbmcgdGhlbS4KKwor Rm9yIGV4YW1wbGU6CisgICAgcm9vdEA6fiQgeGwgcHNyLWh3aW5mbyAtLW1iYQorICAgIE1lbW9y eSBCYW5kd2lkdGggQWxsb2NhdGlvbiAoTUJBKToKKyAgICBTb2NrZXQgSUQgICAgICAgOiAwCisg ICAgTGluZWFyIE1vZGUgICAgIDogRW5hYmxlZAorICAgIE1heGltdW0gQ09TICAgICA6IDcKKyAg ICBNYXhpbXVtIFRocm90dGxpbmcgVmFsdWU6IDkwCisgICAgRGVmYXVsdCBUaHJvdHRsaW5nIFZh bHVlOiAwCisKKyAgICByb290QDp+JCB4bCBwc3ItbWJhLXNldCAxIDB4YQorCisgICAgcm9vdEA6 fiQgeGwgcHNyLW1iYS1zaG93IDEKKyAgICBTb2NrZXQgSUQgICAgICAgOiAwCisgICAgRGVmYXVs dCBUSFJUTCAgIDogMAorICAgICAgIElEICAgICAgICAgICAgICAgICAgICAgTkFNRSAgICAgICAg ICAgICBDQk0KKyAgICAgICAgMSAgICAgICAgICAgICAgICAgdWJ1bnR1MTQgICAgICAgICAgICAg MHhhCisKKyMgQXJlYXMgZm9yIGltcHJvdmVtZW50CisKK04vQQorCisjIEtub3duIGlzc3Vlcwor CitOL0EKKworIyBSZWZlcmVuY2VzCisKKyJJTlRFTMKuIFJFU09VUkNFIERJUkVDVE9SIFRFQ0hO T0xPR1kgKElOVEVMwq4gUkRUKSBBTExPQ0FUSU9OIEZFQVRVUkVTIiBbSW50ZWzCriA2NCBhbmQg SUEtMzIgQXJjaGl0ZWN0dXJlcyBTb2Z0d2FyZSBEZXZlbG9wZXIgTWFudWFscywgdm9sM10oaHR0 cDovL3d3dy5pbnRlbC5jb20vY29udGVudC93d3cvdXMvZW4vcHJvY2Vzc29ycy9hcmNoaXRlY3R1 cmVzLXNvZnR3YXJlLWRldmVsb3Blci1tYW51YWxzLmh0bWwpCisKKyMgSGlzdG9yeQorCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KK0RhdGUgICAgICAgUmV2aXNpb24gVmVyc2lvbiAgTm90ZXMKKy0tLS0tLS0t LS0gLS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorMjAxNy0wMS0xMCAxLjAgICAgICBYZW4gNC45ICBEZXNpZ24gZG9jdW1lbnQgd3Jp dHRlbgorLS0tLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=