From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v8 01/16] docs: create Memory Bandwidth Allocation (MBA) feature document Date: Mon, 16 Oct 2017 11:04:06 +0800 Message-ID: <1508123061-6600-2-git-send-email-yi.y.sun@linux.intel.com> References: <1508123061-6600-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 1e3w1q-0002O6-85 for xen-devel@lists.xenproject.org; Mon, 16 Oct 2017 03:25:22 +0000 In-Reply-To: <1508123061-6600-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: Yi Sun , Konrad Rzeszutek Wilk , Andrew Cooper , Ian Jackson , Julien Grall , Jan Beulich , Chao Peng , Wei Liu , Daniel De Graaf , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBjcmVhdGVzIE1CQSBmZWF0dXJlIGRvY3VtZW50IGluIGRvYy9mZWF0dXJlcy8u IEl0IGRlc2NyaWJlcwprZXkgcG9pbnRzIHRvIGltcGxlbWVudCBNQkEgd2hpY2ggaXMgZGVzY3Jp YmVkIGluIGRldGFpbHMgaW4gSW50ZWwgU0RNCiJJbnRyb2R1Y3Rpb24gdG8gTWVtb3J5IEJhbmR3 aWR0aCBBbGxvY2F0aW9uIi4KClNpZ25lZC1vZmYtYnk6IFlpIFN1biA8eWkueS5zdW5AbGludXgu aW50ZWwuY29tPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJp eC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDQzogQW5kcmV3 IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUy QGNpdHJpeC5jb20+CkNDOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4K Q0M6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgpDQzogUm9nZXIgUGF1 IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CkNDOiBLb25yYWQgUnplc3p1dGVrIFdpbGsg PGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkNDOiBDaGFvIFBlbmcgPGNoYW8ucC5wZW5nQGxpbnV4 LmludGVsLmNvbT4KQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Cgp2NjoK ICAgIC0gZml4IHNvbWUgd29yZHMuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7D qSkKdjU6CiAgICAtIGNvcnJlY3Qgc29tZSB3b3Jkcy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dl ciBQYXUgTW9ubsOpKQogICAgLSBjaGFuZ2UgJ3hsIHBzci1tYmEtc2V0IDEgMHhhJyB0byAneGwg cHNyLW1iYS1zZXQgMSAxMCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkK djQ6CiAgICAtIGFkZCAnZG9tYWluLW5hbWUnIGFzIHBhcmFtZXRlciBvZiAncHNyLW1iYS1zaG93 L3Bzci1tYmEtc2V0Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAg LSBmaXggc29tZSB3b3JkaW5ncy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOp KQogICAgLSBleHBsYWluIGhvdyB1c2VyIGNhbiBrbm93IHRoZSBNQkFfTUFYLgogICAgICAoc3Vn Z2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIG1vdmUgdGhlIGRlc2NyaXB0aW9uIG9m ICdMaW5lYXIgbW9kZS9Ob24tbGluZWFyIG1vZGUnIGludG8gc2VjdGlvbgogICAgICBvZiAncHNy LW1iYS1zaG93Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBj aGFuZ2UgJ3Blci10aHJlYWQnIHRvICdwZXItaHlwZXItdGhyZWFkJyB0byBtYWtlIGl0IGNsZWFy ZXIuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gdXBncmFkZSBy ZXZpc2lvbiBudW1iZXIuCnYzOgogICAgLSByZW1vdmUgJ2Nsb3NlZC1sb29wJyByZWxhdGVkIGRl c2NyaXB0aW9uLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIGV4 cGxhaW4gJ2xpbmVhcicgYW5kICdub24tbGluZWFyJyBiZWZvcmUgbWVudGlvbmluZyB0aGVtLgog ICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIGFkanVzdCBkZXNyaXB0 aW9uIG9mICdwc3ItbWJhLXNldCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7D qSkKICAgIC0gZXhwbGFpbiAnTUJBX01BWCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1 IE1vbm7DqSkKICAgIC0gcmVtb3ZlICduPDY0Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQ YXUgTW9ubsOpKQogICAgLSBmaXggc29tZSB3b3JkaW5ncy4KICAgICAgKHN1Z2dlc3RlZCBieSBS b2dlciBQYXUgTW9ubsOpKQogICAgLSBhZGQgY29udGV4dCBpbiAnVGVzdGluZycgcGFydCB0byBt YWtlIHRoaW5ncyBtb3JlIGNsZWFyLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25u w6kpCnYyOgogICAgLSBkZWNsYXJlICdIVycgaW4gVGVybWlub2xvZ3kuCiAgICAgIChzdWdnZXN0 ZWQgYnkgQ2hhbyBQZW5nKQogICAgLSByZXBsYWNlICdDT1MgSUQgb2YgVkNQVScgdG8gJ0NPUyBJ RCBvZiBkb21haW4nLgogICAgICAoc3VnZ2VzdGVkIGJ5IENoYW8gUGVuZykKICAgIC0gcmVwbGFj ZSAnQ09TIHJlZ2lzdGVyJyB0byAnVGhydGwgTVNSJy4KICAgICAgKHN1Z2dlc3RlZCBieSBDaGFv IFBlbmcpCiAgICAtIGFkZCBkZXNjcmlwdGlvbiBmb3IgJ3Bzci1tYmEtc2hvdycgdG8gc3RhdGUg dGhhdCB0aGUgZGVjaW1hbCB2YWx1ZSBpcwogICAgICBzaG93biBmb3IgbGluZWFyIG1vZGUgYnV0 IGhleGFkZWNpbWFsIHZhbHVlIGlzIHNob3duIGZvciBub24tbGluZWFyIG1vZGUuCiAgICAgIChz dWdnZXN0ZWQgYnkgQ2hhbyBQZW5nKQogICAgLSByZW1vdmUgY29udGVudCBpbiAnQXJlYXMgZm9y IGltcHJvdmVtZW50Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBDaGFvIFBlbmcpCiAgICAtIHVzZSAn PD4nIHRvIHNwZWNpZnkgbWFuZGF0b3J5IGFyZ3VtZW50IHRvIGEgY29tbWFuZC4KICAgICAgKHN1 Z2dlc3RlZCBieSBXZWkgTGl1KQp2MToKICAgIC0gcmVtb3ZlIGEgc3BlY2lhbCBjaGFyYWN0ZXIg dG8gYXZvaWQgdGhlIGVycm9yIHdoZW4gYnVpbGRpbmcgcGFuZG9jLgotLS0KIGRvY3MvZmVhdHVy ZXMvaW50ZWxfcHNyX21iYS5wYW5kb2MgfCAyOTcgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDI5NyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZG9jcy9mZWF0dXJlcy9pbnRlbF9wc3JfbWJhLnBhbmRvYwoKZGlmZiAtLWdpdCBh L2RvY3MvZmVhdHVyZXMvaW50ZWxfcHNyX21iYS5wYW5kb2MgYi9kb2NzL2ZlYXR1cmVzL2ludGVs X3Bzcl9tYmEucGFuZG9jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2ZGY2 NjEKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2ZlYXR1cmVzL2ludGVsX3Bzcl9tYmEucGFuZG9j CkBAIC0wLDAgKzEsMjk3IEBACislIEludGVsIE1lbW9yeSBCYW5kd2lkdGggQWxsb2NhdGlvbiAo TUJBKSBGZWF0dXJlCislIFJldmlzaW9uIDEuOAorCitcY2xlYXJwYWdlCisKKyMgQmFzaWNzCisK Ky0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgU3RhdHVzOiAqKlRlY2ggUHJldmlldyoqCisKK0FyY2hp dGVjdHVyZShzKTogSW50ZWwgeDg2CisKKyAgIENvbXBvbmVudChzKTogSHlwZXJ2aXNvciwgdG9v bHN0YWNrCisKKyAgICAgICBIYXJkd2FyZTogTUJBIGlzIHN1cHBvcnRlZCBvbiBTa3lsYWtlIFNl cnZlciBhbmQgYmV5b25kCistLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUZXJtaW5vbG9neQorCisqIENBVCAg ICAgICAgIENhY2hlIEFsbG9jYXRpb24gVGVjaG5vbG9neQorKiBDQk0gICAgICAgICBDYXBhY2l0 eSBCaXRNYXNrcworKiBDRFAgICAgICAgICBDb2RlIGFuZCBEYXRhIFByaW9yaXRpemF0aW9uCisq IENPUy9DTE9TICAgIENsYXNzIG9mIFNlcnZpY2UKKyogSFcgICAgICAgICAgSGFyZHdhcmUKKyog TUJBICAgICAgICAgTWVtb3J5IEJhbmR3aWR0aCBBbGxvY2F0aW9uCisqIE1TUnMgICAgICAgIE1h Y2hpbmUgU3BlY2lmaWMgUmVnaXN0ZXJzCisqIFBTUiAgICAgICAgIEludGVsIFBsYXRmb3JtIFNo YXJlZCBSZXNvdXJjZQorKiBUSFJUTCAgICAgICBUaHJvdHRsZSB2YWx1ZSBvciBkZWxheSB2YWx1 ZQorCisjIE92ZXJ2aWV3CisKK1RoZSBNZW1vcnkgQmFuZHdpZHRoIEFsbG9jYXRpb24gKE1CQSkg ZmVhdHVyZSBwcm92aWRlcyBpbmRpcmVjdCBhbmQgYXBwcm94aW1hdGUKK2NvbnRyb2wgb3ZlciBt ZW1vcnkgYmFuZHdpZHRoIGF2YWlsYWJsZSBwZXItY29yZS4gVGhpcyBmZWF0dXJlIHByb3ZpZGVz IE9TLworaHlwZXJ2aXNvciB0aGUgYWJpbGl0eSB0byBzbG93IG1pc2JlaGF2aW5nIGFwcHMvZG9t YWlucyBieSB1c2luZyBhIGNyZWRpdC1iYXNlZAordGhyb3R0bGluZyBtZWNoYW5pc20uCisKKyMg VXNlciBkZXRhaWxzCisKKyogRmVhdHVyZSBFbmFibGluZzoKKworICBBZGQgInBzcj1tYmEiIHRv IGJvb3QgbGluZSBwYXJhbWV0ZXIgdG8gZW5hYmxlIE1CQSBmZWF0dXJlLgorCisqIHhsIGludGVy ZmFjZXM6CisKKyAgMS4gYHBzci1tYmEtc2hvdyBbZG9tYWluLWlkfGRvbWFpbi1uYW1lXWA6CisK KyAgICAgU2hvdyBtZW1vcnkgYmFuZHdpZHRoIHRocm90dGxpbmcgZm9yIGRvbWFpbi4gVW5kZXIg ZGlmZmVyZW50IG1vZGVzLCBpdAorICAgICBzaG93cyBkaWZmZXJlbnQgdHlwZSBvZiBkYXRhLgor CisgICAgIFRoZXJlIGFyZSB0d28gbW9kZXM6CisgICAgIExpbmVhciBtb2RlOiB0aGUgaW5wdXQg cHJlY2lzaW9uIGlzIGRlZmluZWQgYXMgMTAwLShNQkFfTUFYKS4gRm9yIGluc3RhbmNlLAorICAg ICBpZiB0aGUgTUJBX01BWCB2YWx1ZSBpcyA5MCwgdGhlIGlucHV0IHByZWNpc2lvbiBpcyAxMCUu IFZhbHVlcyBub3QgYW4gZXZlbgorICAgICBtdWx0aXBsZSBvZiB0aGUgcHJlY2lzaW9uIChlLmcu LCAxMiUpIHdpbGwgYmUgcm91bmRlZCBkb3duIChlLmcuLCB0byAxMCUKKyAgICAgZGVsYXkgYXBw bGllZCkgYnkgSFcgYXV0b21hdGljYWxseS4gVGhlIHJlc3BvbnNlIG9mIHRocm90dGxpbmcgdmFs dWUgaXMKKyAgICAgbGluZWFyLgorCisgICAgIE5vbi1saW5lYXIgbW9kZTogaW5wdXQgZGVsYXkg dmFsdWVzIGFyZSBwb3dlcnMtb2YtdHdvIGZyb20gemVybyB0byB0aGUKKyAgICAgTUJBX01BWCB2 YWx1ZSBmcm9tIENQVUlELiBJbiB0aGlzIGNhc2UgYW55IHZhbHVlcyBub3QgYSBwb3dlciBvZiB0 d28gd2lsbAorICAgICBiZSByb3VuZGVkIGRvd24gdGhlIG5leHQgbmVhcmVzdCBwb3dlciBvZiB0 d28gYnkgSFcgYXV0b21hdGljYWxseS4gVGhlCisgICAgIHJlc3BvbnNlIG9mIHRocm90dGxpbmcg dmFsdWUgaXMgbm9uLWxpbmVhci4KKworICAgICBGb3IgbGluZWFyIG1vZGUsIGl0IHNob3dzIHRo ZSBkZWNpbWFsIHZhbHVlLiBGb3Igbm9uLWxpbmVhciBtb2RlLCBpdCBzaG93cworICAgICBoZXhh ZGVjaW1hbCB2YWx1ZS4KKworICAyLiBgcHNyLW1iYS1zZXQgW09QVElPTlNdIDxkb21haW4taWR8 ZG9tYWluLW5hbWU+IDx0aHJvdHRsaW5nPmA6CisKKyAgICAgU2V0IG1lbW9yeSBiYW5kd2lkdGgg dGhyb3R0bGluZyBmb3IgZG9tYWluLgorCisgICAgIE9wdGlvbnM6CisgICAgICctcyc6IFNwZWNp ZnkgdGhlIHNvY2tldCB0byBwcm9jZXNzLCBvdGhlcndpc2UgYWxsIHNvY2tldHMgYXJlIHByb2Nl c3NlZC4KKworICAgICBUaHJvdHRsaW5nIHZhbHVlIHNldCBpbiByZWdpc3RlciBpbXBsaWVzIHRo ZSBhcHByb3hpbWF0ZSBhbW91bnQgb2YgZGVsYXlpbmcKKyAgICAgdGhlIHRyYWZmaWMgYmV0d2Vl biBjb3JlIGFuZCBtZW1vcnkuIEhpZ2hlciB0aHJvdHRsaW5nIHZhbHVlIHJlc3VsdCBpbgorICAg ICBsb3dlciBiYW5kd2lkdGguIFRoZSBtYXggdGhyb3R0bGluZyB2YWx1ZSAoTUJBX01BWCkgc3Vw cG9ydGVkIGNhbiBiZQorICAgICBvYnRhaW5lZCB0aHJvdWdoIENQVUlEIGluc2lkZSBoeXBlcnZp c29yLiBVc2VycyBjYW4gZmV0Y2ggdGhlIE1CQV9NQVggdmFsdWUKKyAgICAgdXNpbmcgdGhlIGBw c3ItaHdpbmZvYCB4bCBjb21tYW5kLgorCisjIFRlY2huaWNhbCBkZXRhaWxzCisKK01CQSBpcyBh IG1lbWJlciBvZiBJbnRlbCBQU1IgZmVhdHVyZXMsIGl0IHNoYXJlcyB0aGUgYmFzZSBQU1IgaW5m cmFzdHJ1Y3R1cmUKK2luIFhlbi4KKworIyMgSGFyZHdhcmUgcGVyc3BlY3RpdmUKKworICBNQkEg ZGVmaW5lcyBhIHJhbmdlIG9mIE1TUnMgdG8gc3VwcG9ydCBzcGVjaWZ5aW5nIGEgZGVsYXkgdmFs dWUgKFRocnRsKSBwZXIKKyAgQ09TLCB3aXRoIGRldGFpbHMgYmVsb3cuCisKKyAgYGBgCisgICAr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKworICAgfCBNU1Ig KHBlciBzb2NrZXQpICAgICAgICAgICB8ICAgIEFkZHJlc3MgICAgIHwKKyAgICstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgICB8IElBMzJfTDJfUU9TX0V4 dF9CV19UaHJ0bF8wIHwgICAgIDB4RDUwICAgICAgfAorICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAg ICAgfCAgLi4uICAgICAgICAgICB8CisgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKworICAgfCBJQTMyX0wyX1FPU19FeHRfQldfVGhydGxfbiB8ICAgICAw eEQ1MCtuICAgIHwKKyAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCisgIGBgYAorCisgIFdoZW4gY29udGV4dCBzd2l0Y2ggaGFwcGVucywgdGhlIENPUyBJ RCBvZiBkb21haW4gaXMgd3JpdHRlbiB0byBwZXItaHlwZXItCisgIHRocmVhZCBNU1IgYElBMzJf UFFSX0FTU09DYCwgYW5kIHRoZW4gaGFyZHdhcmUgZW5mb3JjZXMgYmFuZHdpZHRoIGFsbG9jYXRp b24KKyAgYWNjb3JkaW5nIHRvIHRoZSB0aHJvdHRsaW5nIHZhbHVlIHN0b3JlZCBpbiB0aGUgVGhy dGwgTVNSIHJlZ2lzdGVyLgorCisjIyBUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gTUJBIGFuZCBD QVQvQ0RQCisKKyAgR2VuZXJhbGx5IHNwZWFraW5nLCBNQkEgaXMgY29tcGxldGVseSBpbmRlcGVu ZGVudCBvZiBDQVQvQ0RQLCBhbmQgYW55CisgIGNvbWJpbmF0aW9uIG1heSBiZSBhcHBsaWVkIGF0 IGFueSB0aW1lLCBlLmcuIGVuYWJsaW5nIE1CQSB3aXRoIENBVAorICBkaXNhYmxlZC4KKworICBC dXQgaXQgbmVlZHMgdG8gYmUgbm90aWNlZCB0aGF0IE1CQSBzaGFyZXMgQ09TIGluZnJhc3RydWN0 dXJlIHdpdGggQ0FULAorICBhbHRob3VnaCBNQkEgaXMgZW51bWVyYXRlZCBieSBkaWZmZXJlbnQg Q1BVSUQgbGVhZiBmcm9tIENBVCAod2hpY2gKKyAgaW5kaWNhdGVzIHRoYXQgdGhlIG1heCBDT1Mg b2YgTUJBIG1heSBiZSBkaWZmZXJlbnQgZnJvbSBDQVQpLiBJbiBzb21lCisgIGNhc2VzLCBhIGRv bWFpbiBpcyBwZXJtaXR0ZWQgdG8gaGF2ZSBhIENPUyB0aGF0IGlzIGJleW9uZCBvbmUgKG9yIG1v cmUpCisgIG9mIFBTUiBmZWF0dXJlcyBidXQgd2l0aGluIHRoZSBvdGhlcnMuIEZvciBpbnN0YW5j ZSwgbGV0J3MgYXNzdW1lIHRoZSBtYXgKKyAgQ09TIG9mIE1CQSBpcyA4IGJ1dCB0aGUgbWF4IENP UyBvZiBMMyBDQVQgaXMgMTYsIHdoZW4gYSBkb21haW4gaXMgYXNzaWduZWQKKyAgOSBhcyBDT1Ms IHRoZSBMMyBDQVQgQ0JNIGFzc29jaWF0ZWQgdG8gQ09TIDkgd291bGQgYmUgZW5mb3JjZWQsIGJ1 dCBmb3IgTUJBLAorICB0aGUgSFcgd29ya3MgYXMgZGVmYXVsdCB2YWx1ZSBpcyBzZXQgc2luY2Ug Q09TIDkgaXMgYmV5b25kIHRoZSBtYXggQ09TICg4KQorICBvZiBNQkEuCisKKyMjIERlc2lnbiBP dmVydmlldworCisqIENvcmUgQ09TL1RocnRsIGFzc29jaWF0aW9uCisKKyAgV2hlbiBlbmZvcmNp bmcgTWVtb3J5IEJhbmR3aWR0aCBBbGxvY2F0aW9uLCBhbGwgY29yZXMgb2YgZG9tYWlucyBoYXZl CisgIHRoZSBzYW1lIGRlZmF1bHQgVGhydGwgTVNSIChDT1MwKSB3aGljaCBzdG9yZXMgdGhlIHNh bWUgVGhydGwgKDApLiBUaGUKKyAgZGVmYXVsdCBUaHJ0bCBNU1IgaXMgdXNlZCBvbmx5IGluIGh5 cGVydmlzb3IgYW5kIGlzIHRyYW5zcGFyZW50IHRvIHRvb2wgc3RhY2sKKyAgYW5kIHVzZXIuCisK KyAgU3lzdGVtIGFkbWluaXN0cmF0b3JzIGNhbiBjaGFuZ2UgUFNSIGFsbG9jYXRpb24gcG9saWN5 IGF0IHJ1bnRpbWUgYnkKKyAgdXNpbmcgdGhlIHRvb2wgc3RhY2suIFNpbmNlIE1CQSBzaGFyZXMg Q09TIElEIHdpdGggQ0FUL0NEUCwgYSBDT1MgSUQKKyAgY29ycmVzcG9uZHMgdG8gYSAyLXR1cGxl LCBsaWtlIFtDQk0sIFRocnRsXSB3aXRoIG9ubHktQ0FUIGVuYWJsZWQsIHdoZW4gQ0RQCisgIGlz IGVuYWJsZWQsIHRoZSBDT1MgSUQgY29ycmVzcG9uZHMgdG8gYSAzLXR1cGxlLCBsaWtlIFtDb2Rl X0NCTSwgRGF0YV9DQk0sCisgIFRocnRsXS4gSWYgbmVpdGhlciBDQVQgbm9yIENEUCBpcyBlbmFi bGVkLCB0aGluZ3MgYXJlIGVhc2llciwgc2luY2Ugb25lIENPUworICBJRCBjb3JyZXNwb25kcyB0 byBvbmUgVGhydGwuCisKKyogVkNQVSBzY2hlZHVsZQorCisgIFRoaXMgcGFydCByZXVzZXMgQ0FU IENPUyBpbmZyYXN0cnVjdHVyZS4KKworKiBNdWx0aS1zb2NrZXRzCisKKyAgRGlmZmVyZW50IHNv Y2tldHMgbWF5IGhhdmUgZGlmZmVyZW50IE1CQSBjYXBhYmlsaXRpZXMgKGxpa2UgbWF4IENPUykK KyAgYWx0aG91Z2ggaXQgaXMgY29uc2lzdGVudCBvbiB0aGUgc2FtZSBzb2NrZXQuIFNvIHRoZSBj YXBhYmlsaXR5CisgIG9mIHBlci1zb2NrZXQgTUJBIGlzIHNwZWNpZmllZC4KKworICBUaGlzIHBh cnQgcmV1c2VzIENBVCBDT1MgaW5mcmFzdHJ1Y3R1cmUuCisKKyMjIEltcGxlbWVudGF0aW9uIERl c2NyaXB0aW9uCisKKyogSHlwZXJ2aXNvciBpbnRlcmZhY2VzOgorCisgIDEuIEJvb3QgbGluZSBw YXJhbTogInBzcj1tYmEiIHRvIGVuYWJsZSB0aGUgZmVhdHVyZS4KKworICAyLiBTWVNDVEw6Cisg ICAgICAgICAgLSBYRU5fU1lTQ1RMX1BTUl9NQkFfZ2V0X2luZm86IEdldCBzeXN0ZW0gTUJBIGlu Zm9ybWF0aW9uLgorCisgIDMuIERPTUNUTDoKKyAgICAgICAgICAtIFhFTl9ET01DVExfUFNSX01C QV9PUF9HRVRfVEhSVEw6IEdldCB0aHJvdHRsaW5nIGZvciBhIGRvbWFpbi4KKyAgICAgICAgICAt IFhFTl9ET01DVExfUFNSX01CQV9PUF9TRVRfVEhSVEw6IFNldCB0aHJvdHRsaW5nIGZvciBhIGRv bWFpbi4KKworKiB4bCBpbnRlcmZhY2VzOgorCisgIDEuIHBzci1tYmEtc2hvdyBbZG9tYWluLWlk XQorICAgICAgICAgIFNob3cgc3lzdGVtL2RvbWFpbiBydW50aW1lIE1CQSB0aHJvdHRsaW5nIHZh bHVlLiBGb3IgbGluZWFyIG1vZGUsCisgICAgICAgICAgaXQgc2hvd3MgdGhlIGRlY2ltYWwgdmFs dWUuIEZvciBub24tbGluZWFyIG1vZGUsIGl0IHNob3dzIGhleGFkZWNpbWFsCisgICAgICAgICAg dmFsdWUuCisgICAgICAgICAgPT4gWEVOX1NZU0NUTF9QU1JfTUJBX2dldF9pbmZvL1hFTl9ET01D VExfUFNSX01CQV9PUF9HRVRfVEhSVEwKKworICAyLiBwc3ItbWJhLXNldCBbT1BUSU9OU10gPGRv bWFpbi1pZD4gPHRocm90dGxpbmc+CisgICAgICAgICAgU2V0IGJhbmR3aWR0aCB0aHJvdHRsaW5n IGZvciBhIGRvbWFpbi4KKyAgICAgICAgICA9PiBYRU5fRE9NQ1RMX1BTUl9NQkFfT1BfU0VUX1RI UlRMCisKKyAgMy4gcHNyLWh3aW5mbworICAgICAgICAgIFNob3cgUFNSIEhXIGluZm9ybWF0aW9u LCBpbmNsdWRpbmcgTDMgQ0FUL0NEUC9MMiBDQVQvTUJBLgorICAgICAgICAgID0+IFhFTl9TWVND VExfUFNSX01CQV9nZXRfaW5mbworCisqIEtleSBkYXRhIHN0cnVjdHVyZToKKworICAxLiBGZWF0 dXJlIEhXIGluZm8KKworICAgICBgYGAKKyAgICAgc3RydWN0IHsKKyAgICAgICAgIHVuc2lnbmVk IGludCB0aHJ0bF9tYXg7CisgICAgICAgICBib29sIGxpbmVhcjsKKyAgICAgfSBtYmE7CisKKyAg ICAgLSBNZW1iZXIgYHRocnRsX21heGAKKworICAgICAgIGB0aHJ0bF9tYXhgIGlzIHRoZSBtYXgg dGhyb3R0bGluZyB2YWx1ZSB0byBiZSBzZXQsIGkuZS4gTUJBX01BWC4KKworICAgICAtIE1lbWJl ciBgbGluZWFyYAorCisgICAgICAgYGxpbmVhcmAgbWVhbnMgdGhlIHJlc3BvbnNlIG9mIGRlbGF5 IHZhbHVlIGlzIGxpbmVhciBvciBub3QuCisKKyAgICAgQXMgbWVudGlvbmVkIGFib3ZlLCBNQkEg aXMgYSBtZW1iZXIgb2YgSW50ZWwgUFNSIGZlYXR1cmVzLCBpdCBzaGFyZXMgdGhlCisgICAgIGJh c2UgUFNSIGluZnJhc3RydWN0dXJlIGluIFhlbi4gRm9yIGV4YW1wbGUsIHRoZSAnY29zX21heCcg aXMgYSBjb21tb24gSFcKKyAgICAgcHJvcGVydHkgZm9yIGFsbCBmZWF0dXJlcy4gU28sIGZvciBv dGhlciBkYXRhIHN0cnVjdHVyZSBkZXRhaWxzLCBwbGVhc2UKKyAgICAgcmVmZXIgdG8gJ2ludGVs X3Bzcl9jYXRfY2RwLnBhbmRvYycuCisKKyMgTGltaXRhdGlvbnMKKworTUJBIGNhbiBvbmx5IHdv cmsgb24gSFcgd2hpY2ggc3VwcG9ydHMgaXQgKGNoZWNrIENQVUlEKS4KKworIyBUZXN0aW5nCisK K1dlIGNhbiBleGVjdXRlIHRoZXNlIGNvbW1hbmRzIHRvIHZlcmlmeSBNQkEgb24gZGlmZmVyZW50 IEhXcyBzdXBwb3J0aW5nIHRoZW0uCisKK0ZvciBleGFtcGxlOgorICAxLiBVc2VyIGNhbiBnZXQg dGhlIE1CQSBoYXJkd2FyZSBpbmZvIHRocm91Z2ggJ3Bzci1od2luZm8nIGNvbW1hbmQuIEZyb20K KyAgICAgcmVzdWx0LCB1c2VyIGNhbiBrbm93IGlmIHRoaXMgaGFyZHdhcmUgd29ya3MgdW5kZXIg bGluZWFyIG1vZGUgb3Igbm9uLQorICAgICBsaW5lYXIgbW9kZSwgdGhlIG1heCB0aHJvdHRsaW5n IHZhbHVlIChNQkFfTUFYKSBhbmQgc28gb24uCisKKyAgICByb290QDp+JCB4bCBwc3ItaHdpbmZv IC0tbWJhCisgICAgTWVtb3J5IEJhbmR3aWR0aCBBbGxvY2F0aW9uIChNQkEpOgorICAgIFNvY2tl dCBJRCAgICAgICA6IDAKKyAgICBMaW5lYXIgTW9kZSAgICAgOiBFbmFibGVkCisgICAgTWF4aW11 bSBDT1MgICAgIDogNworICAgIE1heGltdW0gVGhyb3R0bGluZyBWYWx1ZTogOTAKKyAgICBEZWZh dWx0IFRocm90dGxpbmcgVmFsdWU6IDAKKworICAyLiBUaGVuLCB1c2VyIGNhbiBzZXQgYSB0aHJv dHRsaW5nIHZhbHVlIHRvIGEgZG9tYWluLiBGb3IgZXhhbXBsZSwgc2V0ICcxMCcsCisgICAgIGku ZSAxMCUgZGVsYXkuCisKKyAgICByb290QDp+JCB4bCBwc3ItbWJhLXNldCAxIDEwCisKKyAgMy4g VXNlciBjYW4gY2hlY2sgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBvZiB0aGUgZG9tYWluIHRo cm91Z2gKKyAgICAgJ3Bzci1tYWItc2hvdycuIEZvciBsaW5lYXIgbW9kZSwgdGhlIGRlY2ltYWwg dmFsdWUgaXMgc2hvd24uCisKKyAgICByb290QDp+JCB4bCBwc3ItbWJhLXNob3cgMQorICAgIFNv Y2tldCBJRCAgICAgICA6IDAKKyAgICBEZWZhdWx0IFRIUlRMICAgOiAwCisgICAgICAgSUQgICAg ICAgICAgICAgICAgICAgICBOQU1FICAgICAgICAgICAgVEhSVEwKKyAgICAgICAgMSAgICAgICAg ICAgICAgICAgdWJ1bnR1MTQgICAgICAgICAgICAgMTAKKworIyBBcmVhcyBmb3IgaW1wcm92ZW1l bnQKKworTi9BCisKKyMgS25vd24gaXNzdWVzCisKK04vQQorCisjIFJlZmVyZW5jZXMKKworIklO VEVMIFJFU09VUkNFIERJUkVDVE9SIFRFQ0hOT0xPR1kgKElOVEVMIFJEVCkgQUxMT0NBVElPTiBG RUFUVVJFUyIgW0ludGVsIDY0IGFuZCBJQS0zMiBBcmNoaXRlY3R1cmVzIFNvZnR3YXJlIERldmVs b3BlciBNYW51YWxzLCB2b2wzXShodHRwOi8vd3d3LmludGVsLmNvbS9jb250ZW50L3d3dy91cy9l bi9wcm9jZXNzb3JzL2FyY2hpdGVjdHVyZXMtc29mdHdhcmUtZGV2ZWxvcGVyLW1hbnVhbHMuaHRt bCkKKworIyBIaXN0b3J5CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRGF0ZSAgICAgICBSZXZpc2lvbiBW ZXJzaW9uICBOb3RlcworLS0tLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDE3LTAxLTEwIDEuMCAgICAgIFhlbiA0 LjkgIERlc2lnbiBkb2N1bWVudCB3cml0dGVuCisyMDE3LTA3LTEwIDEuMSAgICAgIFhlbiA0LjEw IENoYW5nZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuIE1vZGlmeSBkYXRhIHN0 cnVjdHVyZSBhY2NvcmRpbmcgdG8gbGF0ZXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvZGVzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLiBBZGQgY29udGVudCBm b3IgJ0FyZWFzIGZvciBpbXByb3ZlbWVudCc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDMuIE90aGVyIG1pbm9yIGNoYW5nZXMuCisyMDE3LTA4LTA5IDEuMiAgICAgIFhlbiA0LjEwIENo YW5nZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuIFJlbW92ZSBhIHNwZWNpYWwg Y2hhcmFjdGVyIHRvIGF2b2lkIGVycm9yIHdoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnVpbGRpbmcgcGFuZG9jLgorMjAxNy0wOC0xNSAxLjMgICAgICBYZW4gNC4xMCBDaGFu Z2VzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLiBBZGQgdGVybWlub2xvZ3kgJ0hX Jy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4gQ2hhbmdlICdDT1MgSUQgb2YgVkNQ VScgdG8gJ0NPUyBJRCBvZiBkb21haW4nLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz LiBDaGFuZ2UgJ0NPUyByZWdpc3RlcicgdG8gJ1RocnRsIE1TUicuCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDQuIEV4cGxhaW4gdGhlIHZhbHVlIHNob3duIGZvciAncHNyLW1iYS1zaG93 JyB1bmRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmZXJlbnQgbW9kZXMu CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuIFJlbW92ZSBjb250ZW50IGluICdBcmVh cyBmb3IgaW1wcm92ZW1lbnQnLgorMjAxNy0wOC0xNiAxLjQgICAgICBYZW4gNC4xMCBDaGFuZ2Vz OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLiBBZGQgJzw+JyBmb3IgbWFuZGF0b3J5 IGFyZ3VtZW50LgorMjAxNy0wOC0zMCAxLjUgICAgICBYZW4gNC4xMCBDaGFuZ2VzOgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAxLiBNb2RpZnkgd29yZHMgaW4gJ092ZXJ2aWV3JyB0byBt YWtlIGl0IGVhc2llciB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlcnN0 YW5kLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLiBFeHBsYWluICdsaW5lYXIvbm9u LWxpbmVhcicgbW9kZXMgYmVmb3JlIG1lbnRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGhlbS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4gRXhwbGFpbiB0aHJv dHRsaW5nIHZhbHVlIG1vcmUgYWNjdXJhdGUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDQuIEV4cGxhaW4gJ01CQV9NQVgnLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LiBD b3JyZWN0IHNvbWUgd29yZHMgaW4gJ0Rlc2lnbiBPdmVydmlldycuCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDYuIENoYW5nZSAnbWJhX2luZm8nIHRvICdtYmEnIGFjY29yZGluZyB0byBj b2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZXMuIEFsc28sIG1vZGlm eSBjb250ZW50cyBvZiBpdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4gQWRkIGNv bnRleHQgaW4gJ1Rlc3RpbmcnIHBhcnQgdG8gbWFrZSB0aGluZ3MKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbW9yZSBjbGVhci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OC4gUmVtb3ZlICduPDY0JyB0byBhdm9pZCBvdXQtb2Ytc3luYy4KKzIwMTctMDktMjEgMS42ICAg ICAgWGVuIDQuMTAgQ2hhbmdlczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4gQWRk ICdkb21haW4tbmFtZScgYXMgcGFyYW1ldGVyIG9mICdwc3ItbWJhLXNob3cvCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBzci1tYmEtc2V0Jy4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMi4gRml4IHNvbWUgd29yZGluZ3MuCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDMuIEV4cGxhaW4gaG93IHVzZXIgY2FuIGtub3cgdGhlIE1CQV9NQVguCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDQuIE1vdmUgdGhlIGRlc2NyaXB0aW9uIG9mICdMaW5lYXIgbW9k ZS9Ob24tbGluZWFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUnIGludG8g c2VjdGlvbiBvZiAncHNyLW1iYS1zaG93Jy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg NS4gQ2hhbmdlICdwZXItdGhyZWFkJyB0byAncGVyLWh5cGVyLXRocmVhZCcuCisyMDE3LTA5LTI5 IDEuNyAgICAgIFhlbiA0LjEwIENoYW5nZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDEuIENvcnJlY3Qgc29tZSB3b3Jkcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4g Q2hhbmdlICd4bCBwc3ItbWJhLXNldCAxIDB4YScgdG8KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ3hsIHBzci1tYmEtc2V0IDEgMTAnCisyMDE3LTEwLTA4IDEuOCAgICAgIFhlbiA0 LjEwIENoYW5nZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuIENvcnJlY3Qgc29t ZSB3b3Jkcy4KKy0tLS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK