From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [RFC/RFT][PATCH 0 of 3] rework locking in sched_adjust Date: Wed, 23 Nov 2011 15:55:31 +0100 Message-ID: <1322060131.30168.15.camel@Abyss> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3623433031883149479==" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com Cc: George Dunlap , Juergen Gross , Keir Fraser List-Id: xen-devel@lists.xenproject.org --===============3623433031883149479== Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-isU7WgRQ2IUCWmmUijnl" --=-isU7WgRQ2IUCWmmUijnl Content-Type: multipart/mixed; boundary="=-X2L9tkRP5oeRl7Vc+sn5" --=-X2L9tkRP5oeRl7Vc+sn5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi everyone, This series changes how locks are dealt with while adjusting domains' scheduling parameters. I've done and am still doing tests for credit and credit2, and it's surviving to all I threw at it up to now. Unfortunately, I can't test the sedf part yet, since it is not working on my test boxes due to other issues (which I'm also trying to track down). I'm sending the series out anyway, so that at least you can have a look at it, and maybe give a spin on the sedf part, if you don't have anything more interesting to do. ;-P Juergen series on xl scheduling support attached to this mail, in the form of a single patch, for testing convenience. -- xen/common/sched_credit.c | 10 +++++++--- xen/common/sched_credit2.c | 21 +++++++++++---------- xen/common/sched_sedf.c | 131 +++++++++++++++++++++++++++++++++++++++++= +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------= --------------- xen/common/schedule.c | 34 ++-------------------------------- 4 files changed, 130 insertions(+), 66 deletions(-) --=20 <> (Raistlin Majere) ------------------------------------------------------------------- Dario Faggioli, http://retis.sssup.it/people/faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) PhD Candidate, ReTiS Lab, Scuola Superiore Sant'Anna, Pisa (Italy) --=-X2L9tkRP5oeRl7Vc+sn5 Content-Disposition: attachment; filename="update-xl-sched-interface-from-Juergen.patch" Content-Type: text/x-patch; name="update-xl-sched-interface-from-Juergen.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 IyBIRyBjaGFuZ2VzZXQgcGF0Y2gNCiMgUGFyZW50IGE4MGE1NzdjMzRjYTQyMWZlOTcxNDFlZWUz MjlmYjE0YjEwMGZhYTINCkltcHJvdmVkIHhsIHNjaGVkdWxpbmcgc3VwcG9ydCBmcm9tIEp1ZXJn ZW4uDQoNClRoaXMgaXMgaGVyZSBhcyBhIHNpbmdsZSBwYXRjaCwganVzdCBmb3IgY29udmVuaWVu Y2UsIGluIGNhc2UNCm9uZSB3YW50cyB0byB0ZXN0IHRoZSBzZXJpZXMuIEZvciBkZXRhaWxzIHNl ZQ0KaHR0cDovL29zZGlyLmNvbS9tbC94ZW4tZGV2ZWxvcG1lbnQvMjAxMS0xMS9tc2cwMTA5Ny5o dG1sIC4NCg0KZGlmZiAtciBhODBhNTc3YzM0Y2EgZG9jcy9tYW4veGwucG9kLjENCi0tLSBhL2Rv Y3MvbWFuL3hsLnBvZC4xCVdlZCBOb3YgMjMgMTU6MzY6MjIgMjAxMSArMDEwMA0KKysrIGIvZG9j cy9tYW4veGwucG9kLjEJV2VkIE5vdiAyMyAxNTo0MTozMiAyMDExICswMTAwDQpAQCAtNTc5LDI1 ICs1NzksMzAgQEAgZGVmYXVsdCBCPGNyZWRpdD4gaXMgdXNlZCBmb3Igc2NoZWR1bGluZw0KIA0K ID1vdmVyIDQNCiANCi09aXRlbSBCPHNjaGVkLWNyZWRpdD4gWyBCPC1kPiBJPGRvbWFpbi1pZD4g WyBCPC13PltCPD0+STxXRUlHSFQ+XSB8IEI8LWM+W0I8PT5JPENBUD5dIF0gXQ0KKz1pdGVtIEI8 c2NoZWQtY3JlZGl0PiBbSTxPUFRJT05TPl0NCiANCi1TZXQgY3JlZGl0IHNjaGVkdWxlciBwYXJh bWV0ZXJzLiAgVGhlIGNyZWRpdCBzY2hlZHVsZXIgaXMgYQ0KK1NldCBvciBnZXQgY3JlZGl0IHNj aGVkdWxlciBwYXJhbWV0ZXJzLiAgVGhlIGNyZWRpdCBzY2hlZHVsZXIgaXMgYQ0KIHByb3BvcnRp b25hbCBmYWlyIHNoYXJlIENQVSBzY2hlZHVsZXIgYnVpbHQgZnJvbSB0aGUgZ3JvdW5kIHVwIHRv IGJlDQogd29yayBjb25zZXJ2aW5nIG9uIFNNUCBob3N0cy4NCiANCiBFYWNoIGRvbWFpbiAoaW5j bHVkaW5nIERvbWFpbjApIGlzIGFzc2lnbmVkIGEgd2VpZ2h0IGFuZCBhIGNhcC4NCiANCi1CPFBB UkFNRVRFUlM+DQorQjxPUFRJT05TPg0KIA0KID1vdmVyIDQNCiANCi09aXRlbSBJPFdFSUdIVD4N Cis9aXRlbSBCPC1kIERPTUFJTj4sIEI8LS1kb21haW49RE9NQUlOPg0KKw0KK1NwZWNpZnkgZG9t YWluIGZvciB3aGljaCBzY2hlZHVsZXIgcGFyYW1ldGVycyBhcmUgdG8gYmUgbW9kaWZpZWQgb3Ig cmV0cmlldmVkLg0KK01hbmRhdG9yeSBmb3IgbW9kaWZ5aW5nIHNjaGVkdWxlciBwYXJhbWV0ZXJz Lg0KKw0KKz1pdGVtIEI8LXcgV0VJR0hUPiwgQjwtLXdlaWdodD1XRUlHSFQ+DQogDQogQSBkb21h aW4gd2l0aCBhIHdlaWdodCBvZiA1MTIgd2lsbCBnZXQgdHdpY2UgYXMgbXVjaCBDUFUgYXMgYSBk b21haW4NCiB3aXRoIGEgd2VpZ2h0IG9mIDI1NiBvbiBhIGNvbnRlbmRlZCBob3N0LiBMZWdhbCB3 ZWlnaHRzIHJhbmdlIGZyb20gMQ0KIHRvIDY1NTM1IGFuZCB0aGUgZGVmYXVsdCBpcyAyNTYuDQog DQotPWl0ZW0gSTxDQVA+DQorPWl0ZW0gQjwtYyBDQVA+LCBCPC0tY2FwPUNBUD4NCiANCiBUaGUg Y2FwIG9wdGlvbmFsbHkgZml4ZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIENQVSBhIGRvbWFpbiB3 aWxsIGJlDQogYWJsZSB0byBjb25zdW1lLCBldmVuIGlmIHRoZSBob3N0IHN5c3RlbSBoYXMgaWRs ZSBDUFUgY3ljbGVzLiBUaGUgY2FwDQpAQCAtNjA1LDYgKzYxMCw4MSBAQCBpcyBleHByZXNzZWQg aW4gcGVyY2VudGFnZSBvZiBvbmUgcGh5c2ljDQogNTAgaXMgaGFsZiBhIENQVSwgNDAwIGlzIDQg Q1BVcywgZXRjLiBUaGUgZGVmYXVsdCwgMCwgbWVhbnMgdGhlcmUgaXMNCiBubyB1cHBlciBjYXAu DQogDQorPWl0ZW0gQjwtcCBDUFVQT09MPiwgQjwtLWNwdXBvb2w9Q1BVUE9PTD4NCisNCitSZXN0 cmljdCBvdXRwdXQgdG8gZG9tYWlucyBpbiB0aGUgc3BlY2lmaWVkIGNwdXBvb2wuDQorDQorPWJh Y2sNCisNCis9aXRlbSBCPHNjaGVkLWNyZWRpdDI+IFtJPE9QVElPTlM+XQ0KKw0KK1NldCBvciBn ZXQgY3JlZGl0MiBzY2hlZHVsZXIgcGFyYW1ldGVycy4gIFRoZSBjcmVkaXQyIHNjaGVkdWxlciBp cyBhDQorcHJvcG9ydGlvbmFsIGZhaXIgc2hhcmUgQ1BVIHNjaGVkdWxlciBidWlsdCBmcm9tIHRo ZSBncm91bmQgdXAgdG8gYmUNCit3b3JrIGNvbnNlcnZpbmcgb24gU01QIGhvc3RzLg0KKw0KK0Vh Y2ggZG9tYWluIChpbmNsdWRpbmcgRG9tYWluMCkgaXMgYXNzaWduZWQgYSB3ZWlnaHQuDQorDQor QjxPUFRJT05TPg0KKw0KKz1vdmVyIDQNCisNCis9aXRlbSBCPC1kIERPTUFJTj4sIEI8LS1kb21h aW49RE9NQUlOPg0KKw0KK1NwZWNpZnkgZG9tYWluIGZvciB3aGljaCBzY2hlZHVsZXIgcGFyYW1l dGVycyBhcmUgdG8gYmUgbW9kaWZpZWQgb3IgcmV0cmlldmVkLg0KK01hbmRhdG9yeSBmb3IgbW9k aWZ5aW5nIHNjaGVkdWxlciBwYXJhbWV0ZXJzLg0KKw0KKz1pdGVtIEI8LXcgV0VJR0hUPiwgQjwt LXdlaWdodD1XRUlHSFQ+DQorDQorQSBkb21haW4gd2l0aCBhIHdlaWdodCBvZiA1MTIgd2lsbCBn ZXQgdHdpY2UgYXMgbXVjaCBDUFUgYXMgYSBkb21haW4NCit3aXRoIGEgd2VpZ2h0IG9mIDI1NiBv biBhIGNvbnRlbmRlZCBob3N0LiBMZWdhbCB3ZWlnaHRzIHJhbmdlIGZyb20gMQ0KK3RvIDY1NTM1 IGFuZCB0aGUgZGVmYXVsdCBpcyAyNTYuDQorDQorPWl0ZW0gQjwtcCBDUFVQT09MPiwgQjwtLWNw dXBvb2w9Q1BVUE9PTD4NCisNCitSZXN0cmljdCBvdXRwdXQgdG8gZG9tYWlucyBpbiB0aGUgc3Bl Y2lmaWVkIGNwdXBvb2wuDQorDQorPWJhY2sNCisNCis9aXRlbSBCPHNjaGVkLXNlZGY+IFtJPE9Q VElPTlM+XQ0KKw0KK1NldCBvciBnZXQgU2ltcGxlIEVERiAoRWFybGllc3QgRGVhZGxpbmUgRmly c3QpIHNjaGVkdWxlciBwYXJhbWV0ZXJzLiBUaGlzDQorc2NoZWR1bGVyIHByb3ZpZGVzIHdlaWdo dGVkIENQVSBzaGFyaW5nIGluIGFuIGludHVpdGl2ZSB3YXkgYW5kIHVzZXMNCityZWFsdGltZS1h bGdvcml0aG1zIHRvIGVuc3VyZSB0aW1lIGd1YXJhbnRlZXMuICBGb3IgbW9yZSBpbmZvcm1hdGlv biBzZWUNCitkb2NzL21pc2Mvc2VkZl9zY2hlZHVsZXJfbWluaS1IT1dUTy50eHQgaW4gdGhlIFhl biBkaXN0cmlidXRpb24uDQorDQorQjxPUFRJT05TPg0KKw0KKz1vdmVyIDQNCisNCis9aXRlbSBC PC1kIERPTUFJTj4sIEI8LS1kb21haW49RE9NQUlOPg0KKw0KK1NwZWNpZnkgZG9tYWluIGZvciB3 aGljaCBzY2hlZHVsZXIgcGFyYW1ldGVycyBhcmUgdG8gYmUgbW9kaWZpZWQgb3IgcmV0cmlldmVk Lg0KK01hbmRhdG9yeSBmb3IgbW9kaWZ5aW5nIHNjaGVkdWxlciBwYXJhbWV0ZXJzLg0KKw0KKz1p dGVtIEI8LXAgUEVSSU9EPiwgQjwtLXBlcmlvZD1QRVJJT0Q+DQorDQorVGhlIG5vcm1hbCBFREYg c2NoZWR1bGluZyB1c2FnZSBpbiBtaWxsaXNlY29uZHMuDQorDQorPWl0ZW0gQjwtcyBTTElDRT4s IEI8LS1zbGljZT1TTElDRT4NCisNCitUaGUgbm9ybWFsIEVERiBzY2hlZHVsaW5nIHVzYWdlIGlu IG1pbGxpc2Vjb25kcy4NCisNCis9aXRlbSBCPC1sIExBVEVOQ1k+LCBCPC0tbGF0ZW5jeT1MQVRF TkNZPg0KKw0KK1NjYWxlZCBwZXJpb2QgaWYgZG9tYWluIGlzIGRvaW5nIGhlYXZ5IEkvTy4NCisN Cis9aXRlbSBCPC1lIEVYVFJBPiwgQjwtLWV4dHJhPUVYVFJBPg0KKw0KK0ZsYWcgZm9yIGFsbG93 aW5nIGRvbWFpbiB0byBydW4gaW4gZXh0cmEgdGltZSAoMCBvciAxKS4NCisNCis9aXRlbSBCPC13 IFdFSUdIVD4sIEI8LS13ZWlnaHQ9V0VJR0hUPg0KKw0KK0Fub3RoZXIgd2F5IG9mIHNldHRpbmcg Q1BVIHNsaWNlLg0KKw0KKz1pdGVtIEI8LWMgQ1BVUE9PTD4sIEI8LS1jcHVwb29sPUNQVVBPT0w+ DQorDQorUmVzdHJpY3Qgb3V0cHV0IHRvIGRvbWFpbnMgaW4gdGhlIHNwZWNpZmllZCBjcHVwb29s Lg0KKw0KID1iYWNrDQogDQogPWJhY2sNCmRpZmYgLXIgYTgwYTU3N2MzNGNhIHRvb2xzL2xpYnhs L2xpYnhsLmMNCi0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsLmMJV2VkIE5vdiAyMyAxNTozNjoyMiAy MDExICswMTAwDQorKysgYi90b29scy9saWJ4bC9saWJ4bC5jCVdlZCBOb3YgMjMgMTU6NDE6MzIg MjAxMSArMDEwMA0KQEAgLTM2MSw2ICszNjEsNyBAQCBzdGF0aWMgdm9pZCB4Y2luZm8yeGxpbmZv KGNvbnN0IHhjX2RvbWFpDQogICAgIHhsaW5mby0+Y3B1X3RpbWUgPSB4Y2luZm8tPmNwdV90aW1l Ow0KICAgICB4bGluZm8tPnZjcHVfbWF4X2lkID0geGNpbmZvLT5tYXhfdmNwdV9pZDsNCiAgICAg eGxpbmZvLT52Y3B1X29ubGluZSA9IHhjaW5mby0+bnJfb25saW5lX3ZjcHVzOw0KKyAgICB4bGlu Zm8tPmNwdXBvb2wgPSB4Y2luZm8tPmNwdXBvb2w7DQogfQ0KIA0KIGxpYnhsX2RvbWluZm8gKiBs aWJ4bF9saXN0X2RvbWFpbihsaWJ4bF9jdHggKmN0eCwgaW50ICpuYl9kb21haW4pDQpAQCAtMjY3 OCw3ICsyNjc5LDcgQEAgaW50IGxpYnhsX3NjaGVkX2NyZWRpdF9kb21haW5fZ2V0KGxpYnhsXw0K IA0KICAgICByYyA9IHhjX3NjaGVkX2NyZWRpdF9kb21haW5fZ2V0KGN0eC0+eGNoLCBkb21pZCwg JnNkb20pOw0KICAgICBpZiAocmMgIT0gMCkgew0KLSAgICAgICAgTElCWExfX0xPR19FUlJOTyhj dHgsIExJQlhMX19MT0dfRVJST1IsICJzZXR0aW5nIGRvbWFpbiBzY2hlZCBjcmVkaXQiKTsNCisg ICAgICAgIExJQlhMX19MT0dfRVJSTk8oY3R4LCBMSUJYTF9fTE9HX0VSUk9SLCAiZ2V0dGluZyBk b21haW4gc2NoZWQgY3JlZGl0Iik7DQogICAgICAgICByZXR1cm4gRVJST1JfRkFJTDsNCiAgICAg fQ0KIA0KQEAgLTI3MjgsNiArMjcyOSwxMDMgQEAgaW50IGxpYnhsX3NjaGVkX2NyZWRpdF9kb21h aW5fc2V0KGxpYnhsXw0KICAgICByZXR1cm4gMDsNCiB9DQogDQoraW50IGxpYnhsX3NjaGVkX2Ny ZWRpdDJfZG9tYWluX2dldChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsIGxpYnhsX3Nj aGVkX2NyZWRpdDIgKnNjaW5mbykNCit7DQorICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkX2Ny ZWRpdDIgc2RvbTsNCisgICAgaW50IHJjOw0KKw0KKyAgICByYyA9IHhjX3NjaGVkX2NyZWRpdDJf ZG9tYWluX2dldChjdHgtPnhjaCwgZG9taWQsICZzZG9tKTsNCisgICAgaWYgKHJjICE9IDApIHsN CisgICAgICAgIExJQlhMX19MT0dfRVJSTk8oY3R4LCBMSUJYTF9fTE9HX0VSUk9SLCAiZ2V0dGlu ZyBkb21haW4gc2NoZWQgY3JlZGl0MiIpOw0KKyAgICAgICAgcmV0dXJuIEVSUk9SX0ZBSUw7DQor ICAgIH0NCisNCisgICAgc2NpbmZvLT53ZWlnaHQgPSBzZG9tLndlaWdodDsNCisNCisgICAgcmV0 dXJuIDA7DQorfQ0KKw0KK2ludCBsaWJ4bF9zY2hlZF9jcmVkaXQyX2RvbWFpbl9zZXQobGlieGxf Y3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBsaWJ4bF9zY2hlZF9jcmVkaXQyICpzY2luZm8pDQor ew0KKyAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQyIHNkb207DQorICAgIHhjX2Rv bWFpbmluZm9fdCBkb21haW5pbmZvOw0KKyAgICBpbnQgcmM7DQorDQorICAgIHJjID0geGNfZG9t YWluX2dldGluZm9saXN0KGN0eC0+eGNoLCBkb21pZCwgMSwgJmRvbWFpbmluZm8pOw0KKyAgICBp ZiAocmMgPCAwKSB7DQorICAgICAgICBMSUJYTF9fTE9HX0VSUk5PKGN0eCwgTElCWExfX0xPR19F UlJPUiwgImdldHRpbmcgZG9tYWluIGluZm8gbGlzdCIpOw0KKyAgICAgICAgcmV0dXJuIEVSUk9S X0ZBSUw7DQorICAgIH0NCisgICAgaWYgKHJjICE9IDEgfHwgZG9tYWluaW5mby5kb21haW4gIT0g ZG9taWQpDQorICAgICAgICByZXR1cm4gRVJST1JfSU5WQUw7DQorDQorDQorICAgIGlmIChzY2lu Zm8tPndlaWdodCA8IDEgfHwgc2NpbmZvLT53ZWlnaHQgPiA2NTUzNSkgew0KKyAgICAgICAgTElC WExfX0xPR19FUlJOT1ZBTChjdHgsIExJQlhMX19MT0dfRVJST1IsIHJjLA0KKyAgICAgICAgICAg ICJDcHUgd2VpZ2h0IG91dCBvZiByYW5nZSwgdmFsaWQgdmFsdWVzIGFyZSB3aXRoaW4gcmFuZ2Ug ZnJvbSAxIHRvIDY1NTM1Iik7DQorICAgICAgICByZXR1cm4gRVJST1JfSU5WQUw7DQorICAgIH0N CisNCisgICAgc2RvbS53ZWlnaHQgPSBzY2luZm8tPndlaWdodDsNCisNCisgICAgcmMgPSB4Y19z Y2hlZF9jcmVkaXQyX2RvbWFpbl9zZXQoY3R4LT54Y2gsIGRvbWlkLCAmc2RvbSk7DQorICAgIGlm ICggcmMgPCAwICkgew0KKyAgICAgICAgTElCWExfX0xPR19FUlJOTyhjdHgsIExJQlhMX19MT0df RVJST1IsICJzZXR0aW5nIGRvbWFpbiBzY2hlZCBjcmVkaXQyIik7DQorICAgICAgICByZXR1cm4g RVJST1JfRkFJTDsNCisgICAgfQ0KKw0KKyAgICByZXR1cm4gMDsNCit9DQorDQoraW50IGxpYnhs X3NjaGVkX3NlZGZfZG9tYWluX2dldChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsIGxp YnhsX3NjaGVkX3NlZGYgKnNjaW5mbykNCit7DQorICAgIHVpbnQ2NF90IHBlcmlvZDsNCisgICAg dWludDY0X3Qgc2xpY2U7DQorICAgIHVpbnQ2NF90IGxhdGVuY3k7DQorICAgIHVpbnQxNl90IGV4 dHJhdGltZTsNCisgICAgdWludDE2X3Qgd2VpZ2h0Ow0KKyAgICBpbnQgcmM7DQorDQorICAgIHJj ID0geGNfc2VkZl9kb21haW5fZ2V0KGN0eC0+eGNoLCBkb21pZCwgJnBlcmlvZCwgJnNsaWNlLCAm bGF0ZW5jeSwgJmV4dHJhdGltZSwgJndlaWdodCk7DQorICAgIGlmIChyYyAhPSAwKSB7DQorICAg ICAgICBMSUJYTF9fTE9HX0VSUk5PKGN0eCwgTElCWExfX0xPR19FUlJPUiwgImdldHRpbmcgZG9t YWluIHNjaGVkIHNlZGYiKTsNCisgICAgICAgIHJldHVybiBFUlJPUl9GQUlMOw0KKyAgICB9DQor DQorICAgIHNjaW5mby0+cGVyaW9kID0gcGVyaW9kIC8gMTAwMDAwMDsNCisgICAgc2NpbmZvLT5z bGljZSA9IHNsaWNlIC8gMTAwMDAwMDsNCisgICAgc2NpbmZvLT5sYXRlbmN5ID0gbGF0ZW5jeSAv IDEwMDAwMDA7DQorICAgIHNjaW5mby0+ZXh0cmF0aW1lID0gZXh0cmF0aW1lOw0KKyAgICBzY2lu Zm8tPndlaWdodCA9IHdlaWdodDsNCisNCisgICAgcmV0dXJuIDA7DQorfQ0KKw0KK2ludCBsaWJ4 bF9zY2hlZF9zZWRmX2RvbWFpbl9zZXQobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBs aWJ4bF9zY2hlZF9zZWRmICpzY2luZm8pDQorew0KKyAgICB4Y19kb21haW5pbmZvX3QgZG9tYWlu aW5mbzsNCisgICAgaW50IHJjOw0KKw0KKyAgICByYyA9IHhjX2RvbWFpbl9nZXRpbmZvbGlzdChj dHgtPnhjaCwgZG9taWQsIDEsICZkb21haW5pbmZvKTsNCisgICAgaWYgKHJjIDwgMCkgew0KKyAg ICAgICAgTElCWExfX0xPR19FUlJOTyhjdHgsIExJQlhMX19MT0dfRVJST1IsICJnZXR0aW5nIGRv bWFpbiBpbmZvIGxpc3QiKTsNCisgICAgICAgIHJldHVybiBFUlJPUl9GQUlMOw0KKyAgICB9DQor ICAgIGlmIChyYyAhPSAxIHx8IGRvbWFpbmluZm8uZG9tYWluICE9IGRvbWlkKQ0KKyAgICAgICAg cmV0dXJuIEVSUk9SX0lOVkFMOw0KKw0KKw0KKyAgICByYyA9IHhjX3NlZGZfZG9tYWluX3NldChj dHgtPnhjaCwgZG9taWQsIHNjaW5mby0+cGVyaW9kICogMTAwMDAwMCwNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2NpbmZvLT5zbGljZSAqIDEwMDAwMDAsIHNjaW5mby0+bGF0ZW5jeSAq IDEwMDAwMDAsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaW5mby0+ZXh0cmF0aW1l LCBzY2luZm8tPndlaWdodCk7DQorICAgIGlmICggcmMgPCAwICkgew0KKyAgICAgICAgTElCWExf X0xPR19FUlJOTyhjdHgsIExJQlhMX19MT0dfRVJST1IsICJzZXR0aW5nIGRvbWFpbiBzY2hlZCBz ZWRmIik7DQorICAgICAgICByZXR1cm4gRVJST1JfRkFJTDsNCisgICAgfQ0KKw0KKyAgICByZXR1 cm4gMDsNCit9DQorDQogc3RhdGljIGludCB0cmlnZ2VyX3R5cGVfZnJvbV9zdHJpbmcoY2hhciAq dHJpZ2dlcl9uYW1lKQ0KIHsNCiAgICAgaWYgKCFzdHJjbXAodHJpZ2dlcl9uYW1lLCAibm1pIikp DQpkaWZmIC1yIGE4MGE1NzdjMzRjYSB0b29scy9saWJ4bC9saWJ4bC5oDQotLS0gYS90b29scy9s aWJ4bC9saWJ4bC5oCVdlZCBOb3YgMjMgMTU6MzY6MjIgMjAxMSArMDEwMA0KKysrIGIvdG9vbHMv bGlieGwvbGlieGwuaAlXZWQgTm92IDIzIDE1OjQxOjMyIDIwMTEgKzAxMDANCkBAIC01NjcsNiAr NTY3LDE0IEBAIGludCBsaWJ4bF9zY2hlZF9jcmVkaXRfZG9tYWluX2dldChsaWJ4bF8NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfc2NoZWRfY3JlZGl0ICpzY2luZm8p Ow0KIGludCBsaWJ4bF9zY2hlZF9jcmVkaXRfZG9tYWluX3NldChsaWJ4bF9jdHggKmN0eCwgdWlu dDMyX3QgZG9taWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX3Nj aGVkX2NyZWRpdCAqc2NpbmZvKTsNCitpbnQgbGlieGxfc2NoZWRfY3JlZGl0Ml9kb21haW5fZ2V0 KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYnhsX3NjaGVkX2NyZWRpdDIgKnNjaW5mbyk7DQoraW50IGxpYnhsX3Nj aGVkX2NyZWRpdDJfZG9tYWluX3NldChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9zY2hlZF9jcmVkaXQyICpz Y2luZm8pOw0KK2ludCBsaWJ4bF9zY2hlZF9zZWRmX2RvbWFpbl9nZXQobGlieGxfY3R4ICpjdHgs IHVpbnQzMl90IGRvbWlkLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf c2NoZWRfc2VkZiAqc2NpbmZvKTsNCitpbnQgbGlieGxfc2NoZWRfc2VkZl9kb21haW5fc2V0KGxp YnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYnhsX3NjaGVkX3NlZGYgKnNjaW5mbyk7DQogaW50IGxpYnhsX3NlbmRfdHJpZ2dl cihsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsDQogICAgICAgICAgICAgICAgICAgICAg ICBjaGFyICp0cmlnZ2VyX25hbWUsIHVpbnQzMl90IHZjcHVpZCk7DQogaW50IGxpYnhsX3NlbmRf c3lzcnEobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBjaGFyIHN5c3JxKTsNCmRpZmYg LXIgYTgwYTU3N2MzNGNhIHRvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbA0KLS0tIGEvdG9vbHMv bGlieGwvbGlieGxfdHlwZXMuaWRsCVdlZCBOb3YgMjMgMTU6MzY6MjIgMjAxMSArMDEwMA0KKysr IGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCVdlZCBOb3YgMjMgMTU6NDE6MzIgMjAxMSAr MDEwMA0KQEAgLTEwOSw2ICsxMDksNyBAQCBTSFVURE9XTl8qIGNvbnN0YW50LiIiIiksDQogICAg ICgiY3B1X3RpbWUiLCAgICB1aW50NjQpLA0KICAgICAoInZjcHVfbWF4X2lkIiwgdWludDMyKSwN CiAgICAgKCJ2Y3B1X29ubGluZSIsIHVpbnQzMiksDQorICAgICgiY3B1cG9vbCIsICAgICB1aW50 MzIpLA0KICAgICBdLCBkaXNwb3NlX2ZuPU5vbmUpDQogDQogbGlieGxfY3B1cG9vbGluZm8gPSBT dHJ1Y3QoImNwdXBvb2xpbmZvIiwgWw0KQEAgLTM3NCwzICszNzUsMTUgQEAgbGlieGxfc2NoZWRf Y3JlZGl0ID0gU3RydWN0KCJzY2hlZF9jcmVkaQ0KICAgICAoIndlaWdodCIsIGludGVnZXIpLA0K ICAgICAoImNhcCIsIGludGVnZXIpLA0KICAgICBdLCBkaXNwb3NlX2ZuPU5vbmUpDQorDQorbGli eGxfc2NoZWRfY3JlZGl0MiA9IFN0cnVjdCgic2NoZWRfY3JlZGl0MiIsIFsNCisgICAgKCJ3ZWln aHQiLCBpbnRlZ2VyKSwNCisgICAgXSwgZGlzcG9zZV9mbj1Ob25lKQ0KKw0KK2xpYnhsX3NjaGVk X3NlZGYgPSBTdHJ1Y3QoInNjaGVkX3NlZGYiLCBbDQorICAgICgicGVyaW9kIiwgaW50ZWdlciks DQorICAgICgic2xpY2UiLCBpbnRlZ2VyKSwNCisgICAgKCJsYXRlbmN5IiwgaW50ZWdlciksDQor ICAgICgiZXh0cmF0aW1lIiwgaW50ZWdlciksDQorICAgICgid2VpZ2h0IiwgaW50ZWdlciksDQor ICAgIF0sIGRpc3Bvc2VfZm49Tm9uZSkNCmRpZmYgLXIgYTgwYTU3N2MzNGNhIHRvb2xzL2xpYnhs L3hsLmgNCi0tLSBhL3Rvb2xzL2xpYnhsL3hsLmgJV2VkIE5vdiAyMyAxNTozNjoyMiAyMDExICsw MTAwDQorKysgYi90b29scy9saWJ4bC94bC5oCVdlZCBOb3YgMjMgMTU6NDE6MzIgMjAxMSArMDEw MA0KQEAgLTU1LDYgKzU1LDggQEAgaW50IG1haW5fdmNwdXNldChpbnQgYXJnYywgY2hhciAqKmFy Z3YpOw0KIGludCBtYWluX21lbW1heChpbnQgYXJnYywgY2hhciAqKmFyZ3YpOw0KIGludCBtYWlu X21lbXNldChpbnQgYXJnYywgY2hhciAqKmFyZ3YpOw0KIGludCBtYWluX3NjaGVkX2NyZWRpdChp bnQgYXJnYywgY2hhciAqKmFyZ3YpOw0KK2ludCBtYWluX3NjaGVkX2NyZWRpdDIoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KTsNCitpbnQgbWFpbl9zY2hlZF9zZWRmKGludCBhcmdjLCBjaGFyICoqYXJn dik7DQogaW50IG1haW5fZG9taWQoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsNCiBpbnQgbWFpbl9k b21uYW1lKGludCBhcmdjLCBjaGFyICoqYXJndik7DQogaW50IG1haW5fcmVuYW1lKGludCBhcmdj LCBjaGFyICoqYXJndik7DQpkaWZmIC1yIGE4MGE1NzdjMzRjYSB0b29scy9saWJ4bC94bF9jbWRp bXBsLmMNCi0tLSBhL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYwlXZWQgTm92IDIzIDE1OjM2OjIy IDIwMTEgKzAxMDANCisrKyBiL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYwlXZWQgTm92IDIzIDE1 OjQxOjMyIDIwMTEgKzAxMDANCkBAIC0zNjk5LDI5ICszNjk5LDIwNCBAQCBzdGF0aWMgaW50IHNj aGVkX2NyZWRpdF9kb21haW5fc2V0KA0KICAgICByZXR1cm4gcmM7DQogfQ0KIA0KLXN0YXRpYyB2 b2lkIHNjaGVkX2NyZWRpdF9kb21haW5fb3V0cHV0KA0KLSAgICBpbnQgZG9taWQsIGxpYnhsX3Nj aGVkX2NyZWRpdCAqc2NpbmZvKQ0KK3N0YXRpYyBpbnQgc2NoZWRfY3JlZGl0X2RvbWFpbl9vdXRw dXQoDQorICAgIGludCBkb21pZCkNCiB7DQogICAgIGNoYXIgKmRvbW5hbWU7DQorICAgIGxpYnhs X3NjaGVkX2NyZWRpdCBzY2luZm87DQorICAgIGludCByYzsNCisNCisgICAgaWYgKGRvbWlkIDwg MCkgew0KKyAgICAgICAgcHJpbnRmKCIlLTMzcyAlNHMgJTZzICU0c1xuIiwgIk5hbWUiLCAiSUQi LCAiV2VpZ2h0IiwgIkNhcCIpOw0KKyAgICAgICAgcmV0dXJuIDA7DQorICAgIH0NCisgICAgcmMg PSBzY2hlZF9jcmVkaXRfZG9tYWluX2dldChkb21pZCwgJnNjaW5mbyk7DQorICAgIGlmIChyYykN CisgICAgICAgIHJldHVybiByYzsNCiAgICAgZG9tbmFtZSA9IGxpYnhsX2RvbWlkX3RvX25hbWUo Y3R4LCBkb21pZCk7DQogICAgIHByaW50ZigiJS0zM3MgJTRkICU2ZCAlNGRcbiIsDQogICAgICAg ICBkb21uYW1lLA0KICAgICAgICAgZG9taWQsDQotICAgICAgICBzY2luZm8tPndlaWdodCwNCi0g ICAgICAgIHNjaW5mby0+Y2FwKTsNCisgICAgICAgIHNjaW5mby53ZWlnaHQsDQorICAgICAgICBz Y2luZm8uY2FwKTsNCiAgICAgZnJlZShkb21uYW1lKTsNCisgICAgcmV0dXJuIDA7DQorfQ0KKw0K K3N0YXRpYyBpbnQgc2NoZWRfY3JlZGl0Ml9kb21haW5fZ2V0KA0KKyAgICBpbnQgZG9taWQsIGxp YnhsX3NjaGVkX2NyZWRpdDIgKnNjaW5mbykNCit7DQorICAgIGludCByYzsNCisNCisgICAgcmMg PSBsaWJ4bF9zY2hlZF9jcmVkaXQyX2RvbWFpbl9nZXQoY3R4LCBkb21pZCwgc2NpbmZvKTsNCisg ICAgaWYgKHJjKQ0KKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJsaWJ4bF9zY2hlZF9jcmVkaXQy X2RvbWFpbl9nZXQgZmFpbGVkLlxuIik7DQorDQorICAgIHJldHVybiByYzsNCit9DQorDQorc3Rh dGljIGludCBzY2hlZF9jcmVkaXQyX2RvbWFpbl9zZXQoDQorICAgIGludCBkb21pZCwgbGlieGxf c2NoZWRfY3JlZGl0MiAqc2NpbmZvKQ0KK3sNCisgICAgaW50IHJjOw0KKw0KKyAgICByYyA9IGxp YnhsX3NjaGVkX2NyZWRpdDJfZG9tYWluX3NldChjdHgsIGRvbWlkLCBzY2luZm8pOw0KKyAgICBp ZiAocmMpDQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImxpYnhsX3NjaGVkX2NyZWRpdDJfZG9t YWluX3NldCBmYWlsZWQuXG4iKTsNCisNCisgICAgcmV0dXJuIHJjOw0KK30NCisNCitzdGF0aWMg aW50IHNjaGVkX2NyZWRpdDJfZG9tYWluX291dHB1dCgNCisgICAgaW50IGRvbWlkKQ0KK3sNCisg ICAgY2hhciAqZG9tbmFtZTsNCisgICAgbGlieGxfc2NoZWRfY3JlZGl0MiBzY2luZm87DQorICAg IGludCByYzsNCisNCisgICAgaWYgKGRvbWlkIDwgMCkgew0KKyAgICAgICAgcHJpbnRmKCIlLTMz cyAlNHMgJTZzXG4iLCAiTmFtZSIsICJJRCIsICJXZWlnaHQiKTsNCisgICAgICAgIHJldHVybiAw Ow0KKyAgICB9DQorICAgIHJjID0gc2NoZWRfY3JlZGl0Ml9kb21haW5fZ2V0KGRvbWlkLCAmc2Np bmZvKTsNCisgICAgaWYgKHJjKQ0KKyAgICAgICAgcmV0dXJuIHJjOw0KKyAgICBkb21uYW1lID0g bGlieGxfZG9taWRfdG9fbmFtZShjdHgsIGRvbWlkKTsNCisgICAgcHJpbnRmKCIlLTMzcyAlNGQg JTZkXG4iLA0KKyAgICAgICAgZG9tbmFtZSwNCisgICAgICAgIGRvbWlkLA0KKyAgICAgICAgc2Np bmZvLndlaWdodCk7DQorICAgIGZyZWUoZG9tbmFtZSk7DQorICAgIHJldHVybiAwOw0KK30NCisN CitzdGF0aWMgaW50IHNjaGVkX3NlZGZfZG9tYWluX2dldCgNCisgICAgaW50IGRvbWlkLCBsaWJ4 bF9zY2hlZF9zZWRmICpzY2luZm8pDQorew0KKyAgICBpbnQgcmM7DQorDQorICAgIHJjID0gbGli eGxfc2NoZWRfc2VkZl9kb21haW5fZ2V0KGN0eCwgZG9taWQsIHNjaW5mbyk7DQorICAgIGlmIChy YykNCisgICAgICAgIGZwcmludGYoc3RkZXJyLCAibGlieGxfc2NoZWRfc2VkZl9kb21haW5fZ2V0 IGZhaWxlZC5cbiIpOw0KKw0KKyAgICByZXR1cm4gcmM7DQorfQ0KKw0KK3N0YXRpYyBpbnQgc2No ZWRfc2VkZl9kb21haW5fc2V0KA0KKyAgICBpbnQgZG9taWQsIGxpYnhsX3NjaGVkX3NlZGYgKnNj aW5mbykNCit7DQorICAgIGludCByYzsNCisNCisgICAgcmMgPSBsaWJ4bF9zY2hlZF9zZWRmX2Rv bWFpbl9zZXQoY3R4LCBkb21pZCwgc2NpbmZvKTsNCisgICAgaWYgKHJjKQ0KKyAgICAgICAgZnBy aW50ZihzdGRlcnIsICJsaWJ4bF9zY2hlZF9zZWRmX2RvbWFpbl9zZXQgZmFpbGVkLlxuIik7DQor DQorICAgIHJldHVybiByYzsNCit9DQorDQorc3RhdGljIGludCBzY2hlZF9zZWRmX2RvbWFpbl9v dXRwdXQoDQorICAgIGludCBkb21pZCkNCit7DQorICAgIGNoYXIgKmRvbW5hbWU7DQorICAgIGxp YnhsX3NjaGVkX3NlZGYgc2NpbmZvOw0KKyAgICBpbnQgcmM7DQorDQorICAgIGlmIChkb21pZCA8 IDApIHsNCisgICAgICAgIHByaW50ZigiJS0zM3MgJTRzICU2cyAlLTZzICU3cyAlNXMgJTZzXG4i LCAiTmFtZSIsICJJRCIsICJQZXJpb2QiLCAiU2xpY2UiLCAiTGF0ZW5jeSIsICJFeHRyYSIsICJX ZWlnaHQiKTsNCisgICAgICAgIHJldHVybiAwOw0KKyAgICB9DQorICAgIHJjID0gc2NoZWRfc2Vk Zl9kb21haW5fZ2V0KGRvbWlkLCAmc2NpbmZvKTsNCisgICAgaWYgKHJjKQ0KKyAgICAgICAgcmV0 dXJuIHJjOw0KKyAgICBkb21uYW1lID0gbGlieGxfZG9taWRfdG9fbmFtZShjdHgsIGRvbWlkKTsN CisgICAgcHJpbnRmKCIlLTMzcyAlNGQgJTZkICU2ZCAlN2QgJTVkICU2ZFxuIiwNCisgICAgICAg IGRvbW5hbWUsDQorICAgICAgICBkb21pZCwNCisgICAgICAgIHNjaW5mby5wZXJpb2QsDQorICAg ICAgICBzY2luZm8uc2xpY2UsDQorICAgICAgICBzY2luZm8ubGF0ZW5jeSwNCisgICAgICAgIHNj aW5mby5leHRyYXRpbWUsDQorICAgICAgICBzY2luZm8ud2VpZ2h0KTsNCisgICAgZnJlZShkb21u YW1lKTsNCisgICAgcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgc2NoZWRfZG9tYWluX291 dHB1dCgNCisgICAgdWludDMyX3Qgc2NoZWQsIGludCAoKm91dHB1dCkoaW50KSwgY29uc3QgY2hh ciAqY3B1cG9vbCkNCit7DQorICAgIGxpYnhsX2RvbWluZm8gKmluZm87DQorICAgIGxpYnhsX2Nw dXBvb2xpbmZvICpwb29saW5mbyA9IE5VTEw7DQorICAgIHVpbnQzMl90IHBvb2xpZDsNCisgICAg Y2hhciAqcG9vbG5hbWU7DQorICAgIGludCBuYl9kb21haW4sIG5fcG9vbHMgPSAwLCBpLCBwOw0K KyAgICBpbnQgcmMgPSAwOw0KKw0KKyAgICBpZiAoY3B1cG9vbCkgew0KKyAgICAgICAgaWYgKGNw dXBvb2xfcXVhbGlmaWVyX3RvX2NwdXBvb2xpZChjcHVwb29sLCAmcG9vbGlkLCBOVUxMKSB8fA0K KyAgICAgICAgICAgICFsaWJ4bF9jcHVwb29saWRfdG9fbmFtZShjdHgsIHBvb2xpZCkpIHsNCisg ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInVua25vd24gY3B1cG9vbCBcJyVzXCdcbiIsIGNw dXBvb2wpOw0KKyAgICAgICAgICAgIHJldHVybiAtRVJST1JfRkFJTDsNCisgICAgICAgIH0NCisg ICAgfQ0KKw0KKyAgICBpbmZvID0gbGlieGxfbGlzdF9kb21haW4oY3R4LCAmbmJfZG9tYWluKTsN CisgICAgaWYgKCFpbmZvKSB7DQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImxpYnhsX2RvbWFp bl9pbmZvbGlzdCBmYWlsZWQuXG4iKTsNCisgICAgICAgIHJldHVybiAxOw0KKyAgICB9DQorICAg IHBvb2xpbmZvID0gbGlieGxfbGlzdF9jcHVwb29sKGN0eCwgJm5fcG9vbHMpOw0KKyAgICBpZiAo IXBvb2xpbmZvKSB7DQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImVycm9yIGdldHRpbmcgY3B1 cG9vbCBpbmZvXG4iKTsNCisgICAgICAgIHJldHVybiAtRVJST1JfTk9NRU07DQorICAgIH0NCisN CisgICAgZm9yIChwID0gMDsgIXJjICYmIChwIDwgbl9wb29scyk7IHArKykgew0KKyAgICAgICAg aWYgKChwb29saW5mb1twXS5zY2hlZF9pZCAhPSBzY2hlZCkgfHwNCisgICAgICAgICAgICAoY3B1 cG9vbCAmJiAocG9vbGlkICE9IHBvb2xpbmZvW3BdLnBvb2xpZCkpKQ0KKyAgICAgICAgICAgIGNv bnRpbnVlOw0KKw0KKyAgICAgICAgcG9vbG5hbWUgPSBsaWJ4bF9jcHVwb29saWRfdG9fbmFtZShj dHgsIHBvb2xpbmZvW3BdLnBvb2xpZCk7DQorICAgICAgICBwcmludGYoIkNwdXBvb2wgJXM6XG4i LCBwb29sbmFtZSk7DQorICAgICAgICBmcmVlKHBvb2xuYW1lKTsNCisNCisgICAgICAgIG91dHB1 dCgtMSk7DQorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmJfZG9tYWluOyBpKyspIHsNCisgICAg ICAgICAgICBpZiAoaW5mb1tpXS5jcHVwb29sICE9IHBvb2xpbmZvW3BdLnBvb2xpZCkNCisgICAg ICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgcmMgPSBvdXRwdXQoaW5mb1tpXS5k b21pZCk7DQorICAgICAgICAgICAgaWYgKHJjKQ0KKyAgICAgICAgICAgICAgICBicmVhazsNCisg ICAgICAgIH0NCisgICAgfQ0KKyAgICBpZiAocG9vbGluZm8pIHsNCisgICAgICAgIGZvciAocCA9 IDA7IHAgPCBuX3Bvb2xzOyBwKyspIHsNCisgICAgICAgICAgICBsaWJ4bF9jcHVwb29saW5mb19k aXNwb3NlKHBvb2xpbmZvICsgcCk7DQorICAgICAgICB9DQorICAgIH0NCisgICAgcmV0dXJuIDA7 DQogfQ0KIA0KIGludCBtYWluX3NjaGVkX2NyZWRpdChpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQog ew0KLSAgICBsaWJ4bF9kb21pbmZvICppbmZvOw0KICAgICBsaWJ4bF9zY2hlZF9jcmVkaXQgc2Np bmZvOw0KLSAgICBpbnQgbmJfZG9tYWluLCBpOw0KICAgICBjb25zdCBjaGFyICpkb20gPSBOVUxM Ow0KKyAgICBjb25zdCBjaGFyICpjcHVwb29sID0gTlVMTDsNCiAgICAgaW50IHdlaWdodCA9IDI1 NiwgY2FwID0gMCwgb3B0X3cgPSAwLCBvcHRfYyA9IDA7DQogICAgIGludCBvcHQsIHJjOw0KLQ0K LSAgICB3aGlsZSAoKG9wdCA9IGRlZl9nZXRvcHQoYXJnYywgYXJndiwgImQ6dzpjOiIsICJzY2hl ZC1jcmVkaXQiLCAwKSkgIT0gLTEpIHsNCisgICAgaW50IG9wdGlvbl9pbmRleCA9IDA7DQorICAg IHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIGxvbmdfb3B0aW9uc1tdID0gew0KKyAgICAgICAgeyJkb21h aW4iLCAxLCAwLCAnZCd9LA0KKyAgICAgICAgeyJ3ZWlnaHQiLCAxLCAwLCAndyd9LA0KKyAgICAg ICAgeyJjYXAiLCAxLCAwLCAnYyd9LA0KKyAgICAgICAgeyJjcHVwb29sIiwgMSwgMCwgJ3AnfSwN CisgICAgICAgIHsiaGVscCIsIDAsIDAsICdoJ30sDQorICAgICAgICB7MCwgMCwgMCwgMH0NCisg ICAgfTsNCisNCisgICAgd2hpbGUgKDEpIHsNCisgICAgICAgIG9wdCA9IGdldG9wdF9sb25nKGFy Z2MsIGFyZ3YsICJkOnc6YzpwOmgiLCBsb25nX29wdGlvbnMsICZvcHRpb25faW5kZXgpOw0KKyAg ICAgICAgaWYgKG9wdCA9PSAtMSkNCisgICAgICAgICAgICBicmVhazsNCiAgICAgICAgIHN3aXRj aCAob3B0KSB7DQogICAgICAgICBjYXNlIDA6IGNhc2UgMjoNCiAgICAgICAgICAgICByZXR1cm4g b3B0Ow0KQEAgLTM3MzYsMjggKzM5MTEsMjYgQEAgaW50IG1haW5fc2NoZWRfY3JlZGl0KGludCBh cmdjLCBjaGFyICoqYQ0KICAgICAgICAgICAgIGNhcCA9IHN0cnRvbChvcHRhcmcsIE5VTEwsIDEw KTsNCiAgICAgICAgICAgICBvcHRfYyA9IDE7DQogICAgICAgICAgICAgYnJlYWs7DQorICAgICAg ICBjYXNlICdwJzoNCisgICAgICAgICAgICBjcHVwb29sID0gb3B0YXJnOw0KKyAgICAgICAgICAg IGJyZWFrOw0KKyAgICAgICAgY2FzZSAnaCc6DQorICAgICAgICAgICAgaGVscCgic2NoZWQtY3Jl ZGl0Iik7DQorICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgICB9DQogICAgIH0NCiANCisg ICAgaWYgKGNwdXBvb2wgJiYgKGRvbSB8fCBvcHRfdyB8fCBvcHRfYykpIHsNCisgICAgICAgIGZw cmludGYoc3RkZXJyLCAiU3BlY2lmeWluZyBhIGNwdXBvb2wgaXMgbm90IGFsbG93ZWQgd2l0aCBv dGhlciBvcHRpb25zLlxuIik7DQorICAgICAgICByZXR1cm4gMTsNCisgICAgfQ0KICAgICBpZiAo IWRvbSAmJiAob3B0X3cgfHwgb3B0X2MpKSB7DQogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk11 c3Qgc3BlY2lmeSBhIGRvbWFpbi5cbiIpOw0KICAgICAgICAgcmV0dXJuIDE7DQogICAgIH0NCiAN CiAgICAgaWYgKCFkb20pIHsgLyogbGlzdCBhbGwgZG9tYWluJ3MgY3JlZGl0IHNjaGVkdWxlciBp bmZvICovDQotICAgICAgICBpbmZvID0gbGlieGxfbGlzdF9kb21haW4oY3R4LCAmbmJfZG9tYWlu KTsNCi0gICAgICAgIGlmICghaW5mbykgew0KLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAi bGlieGxfZG9tYWluX2luZm9saXN0IGZhaWxlZC5cbiIpOw0KLSAgICAgICAgICAgIHJldHVybiAx Ow0KLSAgICAgICAgfQ0KLQ0KLSAgICAgICAgcHJpbnRmKCIlLTMzcyAlNHMgJTZzICU0c1xuIiwg Ik5hbWUiLCAiSUQiLCAiV2VpZ2h0IiwgIkNhcCIpOw0KLSAgICAgICAgZm9yIChpID0gMDsgaSA8 IG5iX2RvbWFpbjsgaSsrKSB7DQotICAgICAgICAgICAgcmMgPSBzY2hlZF9jcmVkaXRfZG9tYWlu X2dldChpbmZvW2ldLmRvbWlkLCAmc2NpbmZvKTsNCi0gICAgICAgICAgICBpZiAocmMpDQotICAg ICAgICAgICAgICAgIHJldHVybiAtcmM7DQotICAgICAgICAgICAgc2NoZWRfY3JlZGl0X2RvbWFp bl9vdXRwdXQoaW5mb1tpXS5kb21pZCwgJnNjaW5mbyk7DQotICAgICAgICB9DQorICAgICAgICBy ZXR1cm4gLXNjaGVkX2RvbWFpbl9vdXRwdXQoWEVOX1NDSEVEVUxFUl9DUkVESVQsIHNjaGVkX2Ny ZWRpdF9kb21haW5fb3V0cHV0LCBjcHVwb29sKTsNCiAgICAgfSBlbHNlIHsNCiAgICAgICAgIGZp bmRfZG9tYWluKGRvbSk7DQogDQpAQCAtMzc2Niw4ICszOTM5LDggQEAgaW50IG1haW5fc2NoZWRf Y3JlZGl0KGludCBhcmdjLCBjaGFyICoqYQ0KICAgICAgICAgICAgIHJldHVybiAtcmM7DQogDQog ICAgICAgICBpZiAoIW9wdF93ICYmICFvcHRfYykgeyAvKiBvdXRwdXQgY3JlZGl0IHNjaGVkdWxl ciBpbmZvICovDQotICAgICAgICAgICAgcHJpbnRmKCIlLTMzcyAlNHMgJTZzICU0c1xuIiwgIk5h bWUiLCAiSUQiLCAiV2VpZ2h0IiwgIkNhcCIpOw0KLSAgICAgICAgICAgIHNjaGVkX2NyZWRpdF9k b21haW5fb3V0cHV0KGRvbWlkLCAmc2NpbmZvKTsNCisgICAgICAgICAgICBzY2hlZF9jcmVkaXRf ZG9tYWluX291dHB1dCgtMSk7DQorICAgICAgICAgICAgcmV0dXJuIC1zY2hlZF9jcmVkaXRfZG9t YWluX291dHB1dChkb21pZCk7DQogICAgICAgICB9IGVsc2UgeyAvKiBzZXQgY3JlZGl0IHNjaGVk dWxlciBwYXJhbWF0ZXJzICovDQogICAgICAgICAgICAgaWYgKG9wdF93KQ0KICAgICAgICAgICAg ICAgICBzY2luZm8ud2VpZ2h0ID0gd2VpZ2h0Ow0KQEAgLTM3ODIsNiArMzk1NSwxOTEgQEAgaW50 IG1haW5fc2NoZWRfY3JlZGl0KGludCBhcmdjLCBjaGFyICoqYQ0KICAgICByZXR1cm4gMDsNCiB9 DQogDQoraW50IG1haW5fc2NoZWRfY3JlZGl0MihpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQorew0K KyAgICBsaWJ4bF9zY2hlZF9jcmVkaXQyIHNjaW5mbzsNCisgICAgY29uc3QgY2hhciAqZG9tID0g TlVMTDsNCisgICAgY29uc3QgY2hhciAqY3B1cG9vbCA9IE5VTEw7DQorICAgIGludCB3ZWlnaHQg PSAyNTYsIG9wdF93ID0gMDsNCisgICAgaW50IG9wdCwgcmM7DQorICAgIGludCBvcHRpb25faW5k ZXggPSAwOw0KKyAgICBzdGF0aWMgc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNbXSA9IHsNCisg ICAgICAgIHsiZG9tYWluIiwgMSwgMCwgJ2QnfSwNCisgICAgICAgIHsid2VpZ2h0IiwgMSwgMCwg J3cnfSwNCisgICAgICAgIHsiY3B1cG9vbCIsIDEsIDAsICdwJ30sDQorICAgICAgICB7ImhlbHAi LCAwLCAwLCAnaCd9LA0KKyAgICAgICAgezAsIDAsIDAsIDB9DQorICAgIH07DQorDQorICAgIHdo aWxlICgxKSB7DQorICAgICAgICBvcHQgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiZDp3OnA6 aCIsIGxvbmdfb3B0aW9ucywgJm9wdGlvbl9pbmRleCk7DQorICAgICAgICBpZiAob3B0ID09IC0x KQ0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgc3dpdGNoIChvcHQpIHsNCisgICAgICAg IGNhc2UgMDogY2FzZSAyOg0KKyAgICAgICAgICAgIHJldHVybiBvcHQ7DQorICAgICAgICBjYXNl ICdkJzoNCisgICAgICAgICAgICBkb20gPSBvcHRhcmc7DQorICAgICAgICAgICAgYnJlYWs7DQor ICAgICAgICBjYXNlICd3JzoNCisgICAgICAgICAgICB3ZWlnaHQgPSBzdHJ0b2wob3B0YXJnLCBO VUxMLCAxMCk7DQorICAgICAgICAgICAgb3B0X3cgPSAxOw0KKyAgICAgICAgICAgIGJyZWFrOw0K KyAgICAgICAgY2FzZSAncCc6DQorICAgICAgICAgICAgY3B1cG9vbCA9IG9wdGFyZzsNCisgICAg ICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ2gnOg0KKyAgICAgICAgICAgIGhlbHAoInNj aGVkLWNyZWRpdCIpOw0KKyAgICAgICAgICAgIHJldHVybiAwOw0KKyAgICAgICAgfQ0KKyAgICB9 DQorDQorICAgIGlmIChjcHVwb29sICYmIChkb20gfHwgb3B0X3cpKSB7DQorICAgICAgICBmcHJp bnRmKHN0ZGVyciwgIlNwZWNpZnlpbmcgYSBjcHVwb29sIGlzIG5vdCBhbGxvd2VkIHdpdGggb3Ro ZXIgb3B0aW9ucy5cbiIpOw0KKyAgICAgICAgcmV0dXJuIDE7DQorICAgIH0NCisgICAgaWYgKCFk b20gJiYgb3B0X3cpIHsNCisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTXVzdCBzcGVjaWZ5IGEg ZG9tYWluLlxuIik7DQorICAgICAgICByZXR1cm4gMTsNCisgICAgfQ0KKw0KKyAgICBpZiAoIWRv bSkgeyAvKiBsaXN0IGFsbCBkb21haW4ncyBjcmVkaXQgc2NoZWR1bGVyIGluZm8gKi8NCisgICAg ICAgIHJldHVybiAtc2NoZWRfZG9tYWluX291dHB1dChYRU5fU0NIRURVTEVSX0NSRURJVDIsIHNj aGVkX2NyZWRpdDJfZG9tYWluX291dHB1dCwgY3B1cG9vbCk7DQorICAgIH0gZWxzZSB7DQorICAg ICAgICBmaW5kX2RvbWFpbihkb20pOw0KKw0KKyAgICAgICAgcmMgPSBzY2hlZF9jcmVkaXQyX2Rv bWFpbl9nZXQoZG9taWQsICZzY2luZm8pOw0KKyAgICAgICAgaWYgKHJjKQ0KKyAgICAgICAgICAg IHJldHVybiAtcmM7DQorDQorICAgICAgICBpZiAoIW9wdF93KSB7IC8qIG91dHB1dCBjcmVkaXQy IHNjaGVkdWxlciBpbmZvICovDQorICAgICAgICAgICAgc2NoZWRfY3JlZGl0Ml9kb21haW5fb3V0 cHV0KC0xKTsNCisgICAgICAgICAgICByZXR1cm4gLXNjaGVkX2NyZWRpdDJfZG9tYWluX291dHB1 dChkb21pZCk7DQorICAgICAgICB9IGVsc2UgeyAvKiBzZXQgY3JlZGl0MiBzY2hlZHVsZXIgcGFy YW1hdGVycyAqLw0KKyAgICAgICAgICAgIGlmIChvcHRfdykNCisgICAgICAgICAgICAgICAgc2Np bmZvLndlaWdodCA9IHdlaWdodDsNCisgICAgICAgICAgICByYyA9IHNjaGVkX2NyZWRpdDJfZG9t YWluX3NldChkb21pZCwgJnNjaW5mbyk7DQorICAgICAgICAgICAgaWYgKHJjKQ0KKyAgICAgICAg ICAgICAgICByZXR1cm4gLXJjOw0KKyAgICAgICAgfQ0KKyAgICB9DQorDQorICAgIHJldHVybiAw Ow0KK30NCisNCitpbnQgbWFpbl9zY2hlZF9zZWRmKGludCBhcmdjLCBjaGFyICoqYXJndikNCit7 DQorICAgIGxpYnhsX3NjaGVkX3NlZGYgc2NpbmZvOw0KKyAgICBjb25zdCBjaGFyICpkb20gPSBO VUxMOw0KKyAgICBjb25zdCBjaGFyICpjcHVwb29sID0gTlVMTDsNCisgICAgaW50IHBlcmlvZCA9 IDAsIG9wdF9wID0gMDsNCisgICAgaW50IHNsaWNlID0gMCwgb3B0X3MgPSAwOw0KKyAgICBpbnQg bGF0ZW5jeSA9IDAsIG9wdF9sID0gMDsNCisgICAgaW50IGV4dHJhID0gMCwgb3B0X2UgPSAwOw0K KyAgICBpbnQgd2VpZ2h0ID0gMCwgb3B0X3cgPSAwOw0KKyAgICBpbnQgb3B0LCByYzsNCisgICAg aW50IG9wdGlvbl9pbmRleCA9IDA7DQorICAgIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIGxvbmdfb3B0 aW9uc1tdID0gew0KKyAgICAgICAgeyJwZXJpb2QiLCAxLCAwLCAncCd9LA0KKyAgICAgICAgeyJz bGljZSIsIDEsIDAsICdzJ30sDQorICAgICAgICB7ImxhdGVuY3kiLCAxLCAwLCAnbCd9LA0KKyAg ICAgICAgeyJleHRyYSIsIDEsIDAsICdlJ30sDQorICAgICAgICB7IndlaWdodCIsIDEsIDAsICd3 J30sDQorICAgICAgICB7ImNwdXBvb2wiLCAxLCAwLCAnYyd9LA0KKyAgICAgICAgeyJoZWxwIiwg MCwgMCwgJ2gnfSwNCisgICAgICAgIHswLCAwLCAwLCAwfQ0KKyAgICB9Ow0KKw0KKyAgICB3aGls ZSAoMSkgew0KKyAgICAgICAgb3B0ID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImQ6cDpzOmw6 ZTp3OmM6aCIsIGxvbmdfb3B0aW9ucywgJm9wdGlvbl9pbmRleCk7DQorICAgICAgICBpZiAob3B0 ID09IC0xKQ0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgc3dpdGNoIChvcHQpIHsNCisg ICAgICAgIGNhc2UgMDogY2FzZSAyOg0KKyAgICAgICAgICAgIHJldHVybiBvcHQ7DQorICAgICAg ICBjYXNlICdkJzoNCisgICAgICAgICAgICBkb20gPSBvcHRhcmc7DQorICAgICAgICAgICAgYnJl YWs7DQorICAgICAgICBjYXNlICdwJzoNCisgICAgICAgICAgICBwZXJpb2QgPSBzdHJ0b2wob3B0 YXJnLCBOVUxMLCAxMCk7DQorICAgICAgICAgICAgb3B0X3AgPSAxOw0KKyAgICAgICAgICAgIGJy ZWFrOw0KKyAgICAgICAgY2FzZSAncyc6DQorICAgICAgICAgICAgc2xpY2UgPSBzdHJ0b2wob3B0 YXJnLCBOVUxMLCAxMCk7DQorICAgICAgICAgICAgb3B0X3MgPSAxOw0KKyAgICAgICAgICAgIGJy ZWFrOw0KKyAgICAgICAgY2FzZSAnbCc6DQorICAgICAgICAgICAgbGF0ZW5jeSA9IHN0cnRvbChv cHRhcmcsIE5VTEwsIDEwKTsNCisgICAgICAgICAgICBvcHRfbCA9IDE7DQorICAgICAgICAgICAg YnJlYWs7DQorICAgICAgICBjYXNlICdlJzoNCisgICAgICAgICAgICBleHRyYSA9IHN0cnRvbChv cHRhcmcsIE5VTEwsIDEwKTsNCisgICAgICAgICAgICBvcHRfZSA9IDE7DQorICAgICAgICAgICAg YnJlYWs7DQorICAgICAgICBjYXNlICd3JzoNCisgICAgICAgICAgICB3ZWlnaHQgPSBzdHJ0b2wo b3B0YXJnLCBOVUxMLCAxMCk7DQorICAgICAgICAgICAgb3B0X3cgPSAxOw0KKyAgICAgICAgICAg IGJyZWFrOw0KKyAgICAgICAgY2FzZSAnYyc6DQorICAgICAgICAgICAgY3B1cG9vbCA9IG9wdGFy ZzsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ2gnOg0KKyAgICAgICAgICAg IGhlbHAoInNjaGVkLXNlZGYiKTsNCisgICAgICAgICAgICByZXR1cm4gMDsNCisgICAgICAgIH0N CisgICAgfQ0KKw0KKyAgICBpZiAoY3B1cG9vbCAmJiAoZG9tIHx8IG9wdF9wIHx8IG9wdF9zIHx8 IG9wdF9sIHx8IG9wdF9lIHx8IG9wdF93KSkgew0KKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJT cGVjaWZ5aW5nIGEgY3B1cG9vbCBpcyBub3QgYWxsb3dlZCB3aXRoIG90aGVyIG9wdGlvbnMuXG4i KTsNCisgICAgICAgIHJldHVybiAxOw0KKyAgICB9DQorICAgIGlmICghZG9tICYmIChvcHRfcCB8 fCBvcHRfcyB8fCBvcHRfbCB8fCBvcHRfZSB8fCBvcHRfdykpIHsNCisgICAgICAgIGZwcmludGYo c3RkZXJyLCAiTXVzdCBzcGVjaWZ5IGEgZG9tYWluLlxuIik7DQorICAgICAgICByZXR1cm4gMTsN CisgICAgfQ0KKyAgICBpZiAob3B0X3cgJiYgKG9wdF9wIHx8IG9wdF9zKSkgew0KKyAgICAgICAg ZnByaW50ZihzdGRlcnIsICJTcGVjaWZ5aW5nIGEgd2VpZ2h0IEFORCBwZXJpb2Qgb3Igc2xpY2Ug aXMgbm90IGFsbG93ZWQuXG4iKTsNCisgICAgfQ0KKw0KKyAgICBpZiAoIWRvbSkgeyAvKiBsaXN0 IGFsbCBkb21haW4ncyBjcmVkaXQgc2NoZWR1bGVyIGluZm8gKi8NCisgICAgICAgIHJldHVybiAt c2NoZWRfZG9tYWluX291dHB1dChYRU5fU0NIRURVTEVSX1NFREYsIHNjaGVkX3NlZGZfZG9tYWlu X291dHB1dCwgY3B1cG9vbCk7DQorICAgIH0gZWxzZSB7DQorICAgICAgICBmaW5kX2RvbWFpbihk b20pOw0KKw0KKyAgICAgICAgcmMgPSBzY2hlZF9zZWRmX2RvbWFpbl9nZXQoZG9taWQsICZzY2lu Zm8pOw0KKyAgICAgICAgaWYgKHJjKQ0KKyAgICAgICAgICAgIHJldHVybiAtcmM7DQorDQorICAg ICAgICBpZiAoIW9wdF9wICYmICFvcHRfcyAmJiAhb3B0X2wgJiYgIW9wdF9lICYmICFvcHRfdykg eyAvKiBvdXRwdXQgc2VkZiBzY2hlZHVsZXIgaW5mbyAqLw0KKyAgICAgICAgICAgIHNjaGVkX3Nl ZGZfZG9tYWluX291dHB1dCgtMSk7DQorICAgICAgICAgICAgcmV0dXJuIC1zY2hlZF9zZWRmX2Rv bWFpbl9vdXRwdXQoZG9taWQpOw0KKyAgICAgICAgfSBlbHNlIHsgLyogc2V0IHNlZGYgc2NoZWR1 bGVyIHBhcmFtYXRlcnMgKi8NCisgICAgICAgICAgICBpZiAob3B0X3ApIHsNCisgICAgICAgICAg ICAgICAgc2NpbmZvLnBlcmlvZCA9IHBlcmlvZDsNCisgICAgICAgICAgICAgICAgc2NpbmZvLndl aWdodCA9IDA7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmIChvcHRfcykgew0KKyAg ICAgICAgICAgICAgICBzY2luZm8uc2xpY2UgPSBzbGljZTsNCisgICAgICAgICAgICAgICAgc2Np bmZvLndlaWdodCA9IDA7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmIChvcHRfbCkN CisgICAgICAgICAgICAgICAgc2NpbmZvLmxhdGVuY3kgPSBsYXRlbmN5Ow0KKyAgICAgICAgICAg IGlmIChvcHRfZSkNCisgICAgICAgICAgICAgICAgc2NpbmZvLmV4dHJhdGltZSA9IGV4dHJhOw0K KyAgICAgICAgICAgIGlmIChvcHRfdykgew0KKyAgICAgICAgICAgICAgICBzY2luZm8ud2VpZ2h0 ID0gd2VpZ2h0Ow0KKyAgICAgICAgICAgICAgICBzY2luZm8ucGVyaW9kID0gMDsNCisgICAgICAg ICAgICAgICAgc2NpbmZvLnNsaWNlID0gMDsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAg cmMgPSBzY2hlZF9zZWRmX2RvbWFpbl9zZXQoZG9taWQsICZzY2luZm8pOw0KKyAgICAgICAgICAg IGlmIChyYykNCisgICAgICAgICAgICAgICAgcmV0dXJuIC1yYzsNCisgICAgICAgIH0NCisgICAg fQ0KKw0KKyAgICByZXR1cm4gMDsNCit9DQorDQogaW50IG1haW5fZG9taWQoaW50IGFyZ2MsIGNo YXIgKiphcmd2KQ0KIHsNCiAgICAgaW50IG9wdDsNCmRpZmYgLXIgYTgwYTU3N2MzNGNhIHRvb2xz L2xpYnhsL3hsX2NtZHRhYmxlLmMNCi0tLSBhL3Rvb2xzL2xpYnhsL3hsX2NtZHRhYmxlLmMJV2Vk IE5vdiAyMyAxNTozNjoyMiAyMDExICswMTAwDQorKysgYi90b29scy9saWJ4bC94bF9jbWR0YWJs ZS5jCVdlZCBOb3YgMjMgMTU6NDE6MzIgMjAxMSArMDEwMA0KQEAgLTE5MiwxMCArMTkyLDM1IEBA IHN0cnVjdCBjbWRfc3BlYyBjbWRfdGFibGVbXSA9IHsNCiAgICAgeyAic2NoZWQtY3JlZGl0IiwN CiAgICAgICAmbWFpbl9zY2hlZF9jcmVkaXQsIDAsDQogICAgICAgIkdldC9zZXQgY3JlZGl0IHNj aGVkdWxlciBwYXJhbWV0ZXJzIiwNCi0gICAgICAiWy1kIDxEb21haW4+IFstd1s9V0VJR0hUXXwt Y1s9Q0FQXV1dIiwNCisgICAgICAiWy1kIDxEb21haW4+IFstd1s9V0VJR0hUXXwtY1s9Q0FQXV1d IFstcCBDUFVQT09MXSIsDQogICAgICAgIi1kIERPTUFJTiwgLS1kb21haW49RE9NQUlOICAgICBE b21haW4gdG8gbW9kaWZ5XG4iDQogICAgICAgIi13IFdFSUdIVCwgLS13ZWlnaHQ9V0VJR0hUICAg ICBXZWlnaHQgKGludClcbiINCi0gICAgICAiLWMgQ0FQLCAtLWNhcD1DQVAgICAgICAgICAgICAg IENhcCAoaW50KSINCisgICAgICAiLWMgQ0FQLCAtLWNhcD1DQVAgICAgICAgICAgICAgIENhcCAo aW50KVxuIg0KKyAgICAgICItcCBDUFVQT09MLCAtLWNwdXBvb2w9Q1BVUE9PTCAgUmVzdHJpY3Qg b3V0cHV0IHRvIENQVVBPT0wiDQorICAgIH0sDQorICAgIHsgInNjaGVkLWNyZWRpdDIiLA0KKyAg ICAgICZtYWluX3NjaGVkX2NyZWRpdDIsIDAsDQorICAgICAgIkdldC9zZXQgY3JlZGl0MiBzY2hl ZHVsZXIgcGFyYW1ldGVycyIsDQorICAgICAgIlstZCA8RG9tYWluPiBbLXdbPVdFSUdIVF1dXSBb LXAgQ1BVUE9PTF0iLA0KKyAgICAgICItZCBET01BSU4sIC0tZG9tYWluPURPTUFJTiAgICAgRG9t YWluIHRvIG1vZGlmeVxuIg0KKyAgICAgICItdyBXRUlHSFQsIC0td2VpZ2h0PVdFSUdIVCAgICAg V2VpZ2h0IChpbnQpXG4iDQorICAgICAgIi1wIENQVVBPT0wsIC0tY3B1cG9vbD1DUFVQT09MICBS ZXN0cmljdCBvdXRwdXQgdG8gQ1BVUE9PTCINCisgICAgfSwNCisgICAgeyAic2NoZWQtc2VkZiIs DQorICAgICAgJm1haW5fc2NoZWRfc2VkZiwgMCwNCisgICAgICAiR2V0L3NldCBzZWRmIHNjaGVk dWxlciBwYXJhbWV0ZXJzIiwNCisgICAgICAiW29wdGlvbnNdIiwNCisgICAgICAiLWQgRE9NQUlO LCAtLWRvbWFpbj1ET01BSU4gICAgIERvbWFpbiB0byBtb2RpZnlcbiINCisgICAgICAiLXAgTVMs IC0tcGVyaW9kPU1TICAgICAgICAgICAgIFJlbGF0aXZlIGRlYWRsaW5lKG1zKVxuIg0KKyAgICAg ICItcyBNUywgLS1zbGljZT1NUyAgICAgICAgICAgICAgV29yc3QtY2FzZSBleGVjdXRpb24gdGlt ZShtcykuIChzbGljZSA8XG4iDQorICAgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwZXJpb2QpXG4iDQorICAgICAgIi1sIE1TLCAtLWxhdGVuY3k9TVMgICAgICAgICAgICBTY2Fs ZWQgcGVyaW9kIChtcykgd2hlbiBkb21haW4gcGVyZm9ybXNcbiINCisgICAgICAiICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGhlYXZ5IEkvT1xuIg0KKyAgICAgICItZSBGTEFHLCAtLWV4 dHJhPUZMQUcgICAgICAgICAgRmxhZyAoMCBvciAxKSBjb250cm9scyBpZiBkb21haW4gY2FuIHJ1 blxuIg0KKyAgICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gZXh0cmEgdGlt ZVxuIg0KKyAgICAgICItdyBGTE9BVCwgLS13ZWlnaHQ9RkxPQVQgICAgICAgQ1BVIFBlcmlvZC9z bGljZSAoZG8gbm90IHNldCB3aXRoXG4iDQorICAgICAgIiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtLXBlcmlvZC8tLXNsaWNlKVxuIg0KKyAgICAgICItYyBDUFVQT09MLCAtLWNwdXBv b2w9Q1BVUE9PTCAgUmVzdHJpY3Qgb3V0cHV0IHRvIENQVVBPT0wiDQogICAgIH0sDQogICAgIHsg ImRvbWlkIiwNCiAgICAgICAmbWFpbl9kb21pZCwgMCwNCi== --=-X2L9tkRP5oeRl7Vc+sn5-- --=-isU7WgRQ2IUCWmmUijnl 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 v1.4.11 (GNU/Linux) iEYEABECAAYFAk7NCWMACgkQk4XaBE3IOsQbhgCfU96ZxGpCgkuDjKnBpb+ah8o9 DBkAoKgN0r90vCq9UGjh9OaZAwZ/RGZ0 =NgwM -----END PGP SIGNATURE----- --=-isU7WgRQ2IUCWmmUijnl-- --===============3623433031883149479== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --===============3623433031883149479==--