From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: Re: [PATCH v6 for Xen 4.7 1/4] xen: enable per-VCPU parameter settings for RTDS scheduler Date: Tue, 8 Mar 2016 11:34:00 +0100 Message-ID: <1457433240.3102.161.camel@citrix.com> References: <1457286958-5427-1-git-send-email-lichong659@gmail.com> <1457286958-5427-2-git-send-email-lichong659@gmail.com> <56DD894802000078000D9F84@prv-mh.provo.novell.com> <56DDBCFF02000078000DA1A0@prv-mh.provo.novell.com> <1457373181.3102.74.camel@citrix.com> <56DEA50402000078000DA42D@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1605440415288057055==" Return-path: In-Reply-To: <56DEA50402000078000DA42D@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich , Chong Li Cc: Chong Li , Sisu Xi , George Dunlap , xen-devel , Meng Xu , Dagaen Golomb List-Id: xen-devel@lists.xenproject.org --===============1605440415288057055== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-8GreeUR1QbipEUEFiHbF" --=-8GreeUR1QbipEUEFiHbF Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 T24gVHVlLCAyMDE2LTAzLTA4IGF0IDAyOjEwIC0wNzAwLCBKYW4gQmV1bGljaCB3cm90ZToKPiA+ ID4gPiBPbiAwNy4wMy4xNiBhdCAxODo1MywgPGRhcmlvLmZhZ2dpb2xpQGNpdHJpeC5jb20+IHdy b3RlOgo+ID4gT24gTW9uLCAyMDE2LTAzLTA3IGF0IDA5OjQwIC0wNzAwLCBKYW4gQmV1bGljaCB3 cm90ZToKPiA+ID7CoAo+ID4gSUlSQywgSSB3YXMgbG9va2luZyBhdCBob3cgWEVOX1NZU0NUTF9w Y2l0b3BvaW5mbyBpcyBoYW5kbGVkLCBmb3IKPiA+IHJlZmVyZW5jZSwgYW5kIHRoYXQgaGFzIHNv bWUgZ3Vlc3RfaGFuZGxlX2lzX251bGwoKT09PkVJTlZBTAo+ID4gc2Fpbml0eQo+ID4gY2hlY2tp bmcgKGluIHhlbi9jb21tb24vc3lzY3RsLmMpLCB3aGljaCwgd2hlbiBJIHRob3VnaHQgYWJvdXQg aXQsCj4gPiBtYWRlCj4gPiBzZW5zZSB0byBtZS4KPiA+IAo+ID4gTXkgcmVhc29uaW5nIHdhcywg c29ydCBvZjoKPiA+IMKgMS4gaWYgdGhlIGhhbmRsZSBpcyBOVUxMLCBubyBwb2ludCBnZXR0aW5n IGludG8gdGhlIHNvbWV3aGF0wqAKPiA+IMKgwqDCoMKgY29tcGxpY2F0ZWQgbG9naWMgb2YgdGhl IHdoaWxlLAo+ID4gwqAyLiBtb3JlIGFjY3VyYXRlIGVycm9yIHJlcG9ydGluZzogYXMgYmVpbmcg cGFzc2VkIGEgTlVMTCBoYW5kbGVywqAKPiA+IMKgwqDCoMKgbG9va2VkIHNvbWV0aGluZyB3ZSBj b3VsZCBpZGVudGlmeSBhbmQgY2FsbCBpbnZhbGlkLCByYXRoZXIKPiA+IHRoYW7CoAo+ID4gwqDC oMKgwqB3YWl0aW5nIGZvciB0aGUgY29weSB0byBmYXVsdC4KPiBJIHRoaW5rIHRoZSBYRU5fU1lT Q1RMX3BjaXRvcG9pbmZvIHdhcyBtaXNndWlkZWQgaW4gdGhpcyByZXNwZWN0LAo+IGNsb25pbmcg bm9uIGFwcGxpY2FibGUgbG9naWMgaGVyZSB3aGljaCByZXR1cm5zIHRoZSBudW1iZXIgb2YgbmVl ZGVkCj4gKGFycmF5KSBlbGVtZW50cyBpbiBzdWNoIGEgY2FzZSBmb3IgYSBmZXcgb3RoZXIgb3Bl cmF0aW9ucy4KPiAKU29ycnksIEknbSBub3Qgc3VyZSBJIGFtIGdldHRpbmc6IGFyZSB5b3Ugc2F5 aW5nIHRoYXQsIGZvciBfdGhlc2VfCmRvbWN0bHMsIHdlIHNob3VsZCBjb25zaWRlciB0aGUgaGFu ZGxlIGJlaW5nIE5VTEwgYXMgYSB3YXkgb2YgdGhlCmNhbGxlciB0byBhc2sgZm9yIHRoZSBzaXpl IG9mIHRoZSBhcnJheT8KCipJZiogeWVzLCB3ZWxsLCB0aGF0IGlzICJqdXN0IiB0aGUgbnVtYmVy IG9mIHZjcHVzIG9mIHRoZSBndWVzdCwgYnV0LApuZXZlcnRoZWxlc3MsIHRoYXQsIEZXSVcsIGxv b2tzIGZpbmUgdG8gbWUuCgo+ID4gQWJvdXQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgY29kZSwgYXMg c2FpZCBhYm92ZSwgSSBkbyBsaWtlCj4gPiBob3cgWEVOX1NZU0NUTF9wY2l0b3BvaW5mbyBlbmRl ZCB1cCBiZWluZyBoYW5kbGVkLCBJIHRoaW5rIGl0IGlzIGEKPiA+IGdyZWF0IGZpdCBmb3IgdGhp cyBzcGVjaWZpYyBjYXNlIGFuZCwgY29tcGFyaW5nIGF0IGJvdGggdGhpcyBhbmQKPiA+IHByZXZp b3VzIHZlcnNpb24sIEkgZG8gdGhpbmsgdGhpcyBvbmUgaXMgKGJ1Z3MgYXBhcnQpIGxvb2tpbmcK PiA+IGJldHRlci4KPiA+IAo+ID4gSSdtIHN1cmUgSSBzYWlkIHRoaXMgLS1sb25nIGFnby0tIHdo ZW4gZGlzY3Vzc2luZyB2NCAoYW5kIG1heWJlCj4gPiBldmVuCj4gPiBwcmV2aW91cyB2ZXJzaW9u cyksIGFzIHdlbGwgYXMgbW9yZSByZWNlbnRseSwgd2hlbiByZXZpZXdpbmcgdjUsCj4gPiBhbmQK PiA+IHRoYXQncyB3aHkgQ2hvbmcgKGZpbmFsbHkhIDotRCkgZGlkIGl0Lgo+ID4gCj4gPiBTbywg d2l0aCB0aGUgY29tbWVudCBpbiBwbGFjZSAoYW5kIHdpdGggYnVncyBmaXhlZCA6LSkpLCBhcmUg eW91Cj4gPiAoSmFuKQo+ID4gb2sgd2l0aCB0aGlzIGJlaW5nIGRvbmUgdGhpcyB3YXk/Cj4KPiBX ZWxsLCB0aGlzIF9taWdodF8gYmUgYWNjZXB0YWJsZSBmb3IgImdldCIgKHNpbmNlIHRoZSBjYWxs ZXIKPiBhYmFuZG9uaW5nIHRoZSBzZXF1ZW5jZSBvZiBjYWxscyBwcmVtYXR1cmVseSBpcyBubyBw cm9ibGVtKSwKPiBidXQgZm9yICJzZXQiIGl0IGxvb2tzIGxlc3Mgc3VpdGFibGUsIGFzIHNpbWls YXIgYWJhbmRvbmluZyB3b3VsZAo+IGxlYXZlIHRoZSBndWVzdCBpbiBzb21lIGluY29uc2lzdGVu dCAvIHVuaW50ZW5kZWQgc3RhdGUuCj4KQXJlIHlvdSByZWZlcnJpbmcgdG8gdGhlIGZhY3QgdGhh dCwgd2l0aCB0aGlzIGludGVyZmFjZSwgdGhlIGNhbGxlciBoYXMKdGhlIGNoYW5jZSB0byBsZWF2 ZSBpbnRlbnRpb25hbGx5LCBvciB0aGF0IGl0IG1heSBoYXBwZW4gdGhhdCBub3QgYWxsCnZjcHVz IGFyZSB1cGRhdGVkIGJlY2F1c2Ugb2Ygc29tZSBidWcgKHN0aWxsIGluIHRoZSBjYWxsZXIpPwoK V2VsbCwgaWYgaXQncyBpbnRlbnRpb25hbCwgb3IgZXZlbiBpZiB0aGUgY2FsbGVyIGlzIGJ1Z2d5 IGluIHRoZSBzZW5zZQp0aGF0IHRoZSBjb2RlIGlzIHdyaXR0ZW4gaW4gYSB3YXkgdGhhdCBpdCBt aXNzZXMgdXBkYXRpbmcgc29tZSB2Y3B1cwooYW5kIGlmIHRoZSBpbnRlcmZhY2UgYW5kIHRoZSBi ZWhhdmlvciBpcyB3ZWxsIGRvY3VtZW50ZWQsIGFzIHlvdQpyZXF1ZXN0KSwgdGhlbiBvbmUgZ2V0 cyB3aGF0IGhlICJ3YW50cyIgKGFuZCwgaW4gdGhlIGxhdHRlciBjYXNlLCBpdAp3b3VsZG4ndCBi ZSB0b28gaGFyZCB0byBkZWJ1ZyBhbmQgZmlndXJlIG91dCB0aGUgaXNzdWUsIEkgdGhpbmspLgoK SWYgaXQncyBmb3IgYnVncyAoc3RpbGwgaW4gdGhlIGNhbGxlcikgbGlrZSBjb3B5X2Zyb21fZ3Vl c3Rfb2Zmc2V0KCkKZmF1bHRpbmcgYmVjYXVzZSB0aGUgYXJyYXkgaXMgdG9vIHNtYWxsLCB0aGF0 IGNhbiBoYXBwZW4gaWYgdXNpbmcKY29udGludWF0aW9uIHRvbywgY2FuJ3QgaXQ/IEFuZCBpdCB3 b3VsZCBzdGlsbCBsZWF2ZSB0aGUgZ3Vlc3QgaW4Kc2ltaWxhciBpbmNvbnNpc3RlbnQgb3IgdW5p bnRlbmRlZCBzdGF0ZSwgSU1PLi4uCgpPbmUgbGFzdCBwb2ludC4gT2YgY291cnNlLCBzaW5jZSB3 ZSBhcmUgdGFsa2luZyBhYm91dCBidWdzLCB0aGUgZmluYWwKc3RhdHVzIGlzIG5vdCB0aGUgb25l IGRlc2lyZWQsIGJ1dCBpdCdzIG5vdCBpbmNvbnNpc3RlbnQgaW4gdGhlIHNlbnNlCnRoYXQgdGhl IGd1ZXN0IGNhbid0IGNvbnRpbnVlIHJ1bm5pbmcsIG9yIGNyYXNoZXMsIG9yIGFueXRoaW5nIGxp a2UKdGhhdC4gSXQncyBzb21ldGhpbmcgbGlrZToKwqAtIHlvdSB3YW50cyBhbGwgdGhlIDMyIHZj cHVzIG9mIGd1ZXN0IEEgdG8gaGF2ZSB0aGVzZSBuZXcgcGFyYW1ldGVycwrCoC0gZHVlIHRvIGEg YnVnLCB5b3UncmUgKGZvciBpbnN0YW5jZSkgcGFzc2luZyBtZSBhbiBhcnJheSB3aXRoIG9ubHnC oArCoCDCoDE2IHZjcHVzIHBhcmFtZXRlcnMKwqAtIHJlc3VsdDogb25seXQgMTYgdmNwdXMgd2ls bCBoYXZlIHRoZSBuZXcgcGFyYW1ldGVycy4KCj4gIFRoZQo+IGlzc3VlIHdpdGggWEVOX1NZU0NU TF9wY2l0b3BvaW5mbyB3YXMsIGlpcmMsIHRoZSBsYWNrIG9mIGEKPiBnb29kIHdheSBvZiBlbmNv ZGluZyB0aGUgY29udGludWF0aW9uIGluZm9ybWF0aW9uLCBhbmQgd2hpbGUKPiB0aGF0IHdvdWxk IHNlZW0gYXBwbGljYWJsZSBoZXJlIHRvbyBJJ20gbm90IHN1cmUgbm93IHdoZXRoZXIKPiBkb2lu ZyBpdCB0aGUgd2F5IGl0IHdhcyBkb25lIHdhcyB0aGUgYmVzdCBjaG9pY2UuIAo+CkFzIGZhciBh cyBJIGNhbiByZW1lbWJlciBhbmQgc2VlLCBpdCB3YXMgYmVpbmcgZG9uZSBieSBtZWFucyBvZiBh bgphZGRpdGlvbmFsIGRlZGljYXRlZCBwYXJhbWV0ZXIgaW4gdGhlIGhhbmRsZSAoY2FsbGVkIHRp LT5maXJzdF9kZXYgaW4KdGhhdCBjYXNlKS4gVGhlbiBhdCBzb21lIHBvaW50LCB5b3Ugc2FpZDoK Cmh0dHA6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE1 LTAzL21zZzAyNjIzLmh0bWwKIkNvbnNpZGVyaW5nIHRoaXMgaXMgYSB0b29scyBvbmx5IGludGVy ZmFjZSwgZW5mb3JjaW5nIGEgbm90IHRvbyBoaWdoCsKgbGltaXQgb24gbnVtX2RldnMgd291bGQg c2VlbSBiZXR0ZXIgdGhhbiB0aGlzIG5vdCByZWFsbHkgY2xlYW4KwqBjb250aW51YXRpb24gbWVj aGFuaXNtLiBUaGUgKHRvb2wgc3RhY2spIGNhbGxlcihzKSBjYW4gYmUgbWFkZQrCoGl0ZXJhdGUu IgoKV2l0aCB3aGljaCBJIGRpZCBhZ3JlZSAoYW5kIEkgc3RpbGwgZG8gOi0pKSwgYXMgd2VsbCBh cyBJIGFncmVlIG9uIHRoZQpmYWN0IHRoYXQgd2UgYmFzaWNhbGx5IGFyZSBpbiB0aGUgc2FtZSBz aXR1YXRpb24gaGVyZS4KCkNob25nIHRyaWVkIGRvaW5nIHRoaW5ncyB3aXRoIGNvbnRpbnVhdGlv bnMgZm9yIGEgZmV3IHJvdW5kcywgaW5jbHVkaW5nCnY1LCB3aGljaCBpcyBoZXJlOgpodHRwOi8v bGlzdHMueGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNi0wMi9tc2cw MDgxNy5odG1sCgphbmQgaGUgYWxzbyB1c2VkIGFuIGFkZGl0aW9uYWwgZmllbGQgKHZjcHVfaW5k ZXgpLgoKU28sIGFsbCB0aGlzIGJlaW5nIHNhaWQsIG15IHByZWZlcmVuY2Ugc3RheXMgZm9yIHRo ZSB3YXkgdGhlIGNvZGUgbG9va3MKbGlrZSBpbiB0aGlzIHZlcnNpb27CoCh3aXRoIGFsbCB0aGUg ZHVlIGNvbW1lbnRpbmcgYWRkZWQpLiBPZiBjb3Vyc2UsCml0J3MgeW91ciBwcmVmZXJlbmNlIHRo YXQgcmVhbGx5IG1hdHRlcnMgaGVyZSwgbWUgbm90IGJlaW5nIHRoZQptYWludGFpbmVyIG9mIHRo aXMgY29kZS4gOi0pCgpTbywgaG93IGRvIHlvdSBwcmVmZXIgQ2hvbmcgdG8gY29udGludWUgZG9p bmcgdGhpcz8KCj4gQ2xlYXJseQo+IHN0YXRpbmcgKGluIHRoZSBwdWJsaWMgaW50ZXJmYWNlIGhl YWRlcikgdGhhdCBjZXJ0YWluIG5vcm1hbGx5Cj4gaW5wdXQtb25seSBmaWVsZHMgYXJlIHZvbGF0 aWxlIHdvdWxkIGFsbG93IHRoZSBjb250aW51YXRpb24gdG8KPiBiZSBoYW5kbGVkIHdpdGhvdXQg dG9vbCBzdGFjayBhc3Npc3RhbmNlIGFmYWljdC4KPgpXaGljaCAoc29ycnksIEknbSBub3QgZ2V0 dGluZyBhZ2FpbikgSSBndWVzcyBpcyBzb21ldGhpbmcKZGlmZmVyZW50L21vcmUgdGhhbiB3aGF0 IHdhcyBkb25lIGluIHY1ICh0aGUgcmVsZXZhbnQgaHVua3Mgb2Ygd2hpY2gKSSdtIHBhc3Rpbmcg YXQgdGhlIGJvdHRvbSBvZiB0aGlzIGVtYWlsLCBmb3IgY29udmVuaWVuY2UpPwoKPiA+IEJUVywg Q2hvbmcsIEknbSBub3Qgc3VyZSB0aGlzIGhhcyB0byBkbyB3aXRoIHdoYXQgSmFuIGlzIHNheWlu ZywKPiA+IGJ1dAo+ID4gbG9va2luZyBhZ2FpbiBhdCBYRU5fU1lTQ1RMX3BjaXRvcG9pbmZvLCBp dCBsb29rcyB0byBtZSB5b3UncmUKPiA+IG1pc3NpbmcKPiA+IGNvcHlpbmcgbnJfdmNwdXMgYmFj ayB1cCB0byB0aGUgZ3Vlc3QgKHdoaWNoIGlzIGFjdHVhbGx5IHdoYXQgbWFrZXMKPiA+IGxpYnhj IGtub3dzIHdoZXRoZXIgYWxsIHZjcHVzIGhhdmUgYmVlbiBwcm9jZXNzZWQgb3Igbm93KS4KPiBJ bmRlZWQgdGhhdCBpcyB3aHkgdGhlIGNvbmRpdGlvbmFsIG1ha2VzIHNlbnNlIHRoZXJlLCBidXQg bm90IGhlcmUuCj4gQW5kIHRoZSBjb3B5aW5nIGJhY2sgaXMgYWxyZWFkeSBiZWluZyB0YWtlbiBj YXJlIG9mIGJ5IHRoZSBjYWxsZXIgb2YKPiBzY2hlZF9hZGp1c3QoKS4KPiAKSW5kZWVkLiBTbyB5 b3VyIG9yaWdpbmFsIHBvaW50IHdhczogd2UncmUgYWx3YXlzIGNvcHlpbmcgYmFjaywgc28gaXQn cwpmaW5lIHRvIGFsd2F5cyB1cGRhdGUgdGhlIGZpZWxkLCB3aXRoIHRoZSBvbmx5IGV4Y2VwdGlv biBvZiBlcnJvcnMKaGF2aW5nIG9jY3VycmVkLiBJIGRvIGdldCBpdCBub3cuCgpSZWdhcmRzLApE YXJpbwoKLS0tCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWN0bC5jIGIveGVuL2NvbW1vbi9k b21jdGwuYwppbmRleCA0NmI5NjdlLi5iMjk0MjIxIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2Rv bWN0bC5jCisrKyBiL3hlbi9jb21tb24vZG9tY3RsLmMKQEAgLTg0Nyw5ICs4NDcsMTQgQEAgbG9u Zwpkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fZG9tY3RsX3QpIAp1X2RvbWN0 bCkKICAgICB9CiAKICAgICBjYXNlIFhFTl9ET01DVExfc2NoZWR1bGVyX29wOgorICAgIHsKICAg ICAgICAgcmV0ID0gc2NoZWRfYWRqdXN0KGQsICZvcC0+dS5zY2hlZHVsZXJfb3ApOworICAgICAg ICBpZiAoIHJldCA9PSAtRVJFU1RBUlQgKQorICAgICAgICAgICAgcmV0ID0gaHlwZXJjYWxsX2Ny ZWF0ZV9jb250aW51YXRpb24oCisgICAgICAgICAgICAgICAgX19IWVBFUlZJU09SX2RvbWN0bCwg ImgiLCB1X2RvbWN0bCk7CiAgICAgICAgIGNvcHliYWNrID0gMTsKICAgICAgICAgYnJlYWs7Cisg ICAgfQogCiAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldGRvbWFpbmluZm86CiAgICAgewoKZGlmZiAt LWdpdCBhL3hlbi9jb21tb24vc2NoZWRfcnQuYyBiL3hlbi9jb21tb24vc2NoZWRfcnQuYwppbmRl eCAzZjFkMDQ3Li4zNGFlNDhkIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX3J0LmMKKysr IGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCkBAIC0xMTYzLDYgKzExNjgsOTQgQEAgcnRfZG9tX2Nu dGwoCsKgwqDCoMKgwqDCoMKgwqDCoH0KwqDCoMKgwqDCoMKgwqDCoMKgc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7CsKgwqDCoMKgwqDCoMKgwqDCoGJyZWFrOworwqDC oMKgwqBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9nZXR2Y3B1aW5mbzrCoAorwqDCoMKgwqDCoMKg wqDCoGZvciAoIGluZGV4ID0gb3AtPnUudi52Y3B1X2luZGV4OyBpbmRleCA8IG9wLT51LnYubnJf dmNwdXM7IGluZGV4KysgKQorwqDCoMKgwqDCoMKgwqDCoHsKK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGlmICggY29weV9mcm9tX2d1ZXN0X29mZnNldCgmbG9jYWxfc2NoZWQsCivCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgb3AtPnUudi52 Y3B1cywgaW5kZXgsIDEpICkKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHsKK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgcmMgPSAtRUZBVUxUOworwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJlYWs7CivCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqB9CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIGxvY2FsX3NjaGVkLnZjcHVpZCA+ PSBkLT5tYXhfdmNwdXMgfHwKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBkLT52Y3B1W2xvY2FsX3NjaGVkLnZjcHVpZF0gPT0gTlVMTCApCivCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqB7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJj ID0gLUVJTlZBTDsKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGJyZWFrOworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQorwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgc3ZjID0gcnRfdmNwdShkLT52Y3B1W2xvY2FsX3NjaGVkLnZjcHVpZF0pOworCivC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsb2NhbF9zY2hlZC5zLnJ0ZHMuYnVkZ2V0ID0gc3ZjLT5i dWRnZXQgLyBNSUNST1NFQ1MoMSk7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsb2NhbF9zY2hl ZC5zLnJ0ZHMucGVyaW9kID0gc3ZjLT5wZXJpb2QgLyBNSUNST1NFQ1MoMSk7CisKK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGlmICggX19jb3B5X3RvX2d1ZXN0X29mZnNldChvcC0+dS52LnZjcHVz LCBpbmRleCwKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAmbG9jYWxf c2NoZWQsIDEpICkKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHsKK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgcmMgPSAtRUZBVUxUOworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJlYWs7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9 CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxv Y2ssIGZsYWdzKTsKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICggaHlwZXJjYWxsX3ByZWVt cHRfY2hlY2soKSApCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB7CivCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoG9wLT51LnYudmNwdV9pbmRleCA9IGluZGV4ICsgMTsKK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogaHlwZXJjYWxsIChhZnRlciBwcmVlbXB0aW9uKSB3 aWxsIGNvbnRpbnVlIGF0IHZjcHVfaW5kZXggKi8KK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgcmMgPSAtRVJFU1RBUlQ7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJy ZWFrOworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQorwqDCoMKgwqDCoMKgwqDCoH0KK8KgwqDC oMKgwqDCoMKgwqBicmVhazsKK8KgwqDCoMKgY2FzZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0dmNw dWluZm86CivCoMKgwqDCoMKgwqDCoMKgZm9yICggaW5kZXggPSBvcC0+dS52LnZjcHVfaW5kZXg7 IGluZGV4IDwgb3AtPnUudi5ucl92Y3B1czsgaW5kZXgrKyApCivCoMKgwqDCoMKgwqDCoMKgewor wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3Bpbl9sb2NrX2lycXNhdmUoJnBydi0+bG9jaywgZmxh Z3MpOworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKCBjb3B5X2Zyb21fZ3Vlc3Rfb2Zmc2V0 KCZsb2NhbF9zY2hlZCwKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBvcC0+dS52LnZjcHVzLCBpbmRleCwgMSkgKQorwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgeworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByYyA9IC1FRkFVTFQ7CivC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBy di0+bG9jaywgZmxhZ3MpOworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsK K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICgg bG9jYWxfc2NoZWQudmNwdWlkID49IGQtPm1heF92Y3B1cyB8fAorwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGQtPnZjcHVbbG9jYWxfc2NoZWQudmNw dWlkXSA9PSBOVUxMICkKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHsKK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgcmMgPSAtRUlOVkFMOworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJlYWs7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB9CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdmMgPSBydF92Y3B1KGQtPnZjcHVbbG9jYWxf c2NoZWQudmNwdWlkXSk7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwZXJpb2QgPSBNSUNST1NF Q1MobG9jYWxfc2NoZWQucy5ydGRzLnBlcmlvZCk7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBi dWRnZXQgPSBNSUNST1NFQ1MobG9jYWxfc2NoZWQucy5ydGRzLmJ1ZGdldCk7CivCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBpZiAoIHBlcmlvZCA+IFJURFNfTUFYX1BFUklPRCB8fCBidWRnZXQgPCBS VERTX01JTl9CVURHRVQgfHwKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBidWRnZXQgPiBwZXJpb2QgKQorwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg eworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByYyA9IC1FSU5WQUw7CivCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9j aywgZmxhZ3MpOworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsKK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoH0KKworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyrCoAorwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqIFdlIGFjY2VwdCBwZXJpb2QvYnVkZ2V0IGxlc3MgdGhh biAxMDAgdXMsIGJ1dCB3aWxsIHdhcm4gdXNlcnPCoGFib3V0CivCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCogdGhlIGxhcmdlIHNjaGVkdWxpbmcgb3ZlcmhlYWQgZHVlIHRvIGl0CivCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCovCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIHBlcmlv ZCA8IE1JQ1JPU0VDUygxMDApIHx8IGJ1ZGdldCA8IE1JQ1JPU0VDUygxMDApICkKK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJpbnRrKCJXYXJuaW5nOiBwZXJpb2QvYnVkZ2V0IGxl c3MgdGhhbiAxMDAgbWljcm8tc2VjcyAiCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgInJlc3VsdHMgaW4gbGFyZ2Ugc2NoZWR1bGluZyBvdmVyaGVhZC5cbiIp OworCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdmMtPnBlcmlvZCA9IHBlcmlvZDsKK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHN2Yy0+YnVkZ2V0ID0gYnVkZ2V0OworwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7CivCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQorwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgeworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBv cC0+dS52LnZjcHVfaW5kZXggPSBpbmRleCArIDE7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHJjID0gLUVSRVNUQVJUOworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBi cmVhazsKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KK8KgwqDCoMKgwqDCoMKgwqB9CivCoMKg wqDCoMKgwqDCoMKgYnJlYWs7CsKgwqDCoMKgwqB9CsKgCsKgwqDCoMKgwqByZXR1cm4gcmM7Ci0t IAo8PFRoaXMgaGFwcGVucyBiZWNhdXNlIEkgY2hvb3NlIGl0IHRvIGhhcHBlbiE+PiAoUmFpc3Rs aW4gTWFqZXJlKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpEYXJpbyBGYWdnaW9saSwgUGguRCwgaHR0cDovL2Fib3V0Lm1l L2RhcmlvLmZhZ2dpb2xpClNlbmlvciBTb2Z0d2FyZSBFbmdpbmVlciwgQ2l0cml4IFN5c3RlbXMg UiZEIEx0ZC4sIENhbWJyaWRnZSAoVUspCgo= --=-8GreeUR1QbipEUEFiHbF Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEABECAAYFAlbeqpgACgkQk4XaBE3IOsRmnQCgnM9nIiT/+vypKn2FN+ddANyu tw0An328puWB0b7fBRD6au3lL/Yz9Tvt =FrHD -----END PGP SIGNATURE----- --=-8GreeUR1QbipEUEFiHbF-- --===============1605440415288057055== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK --===============1605440415288057055==--