From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com [216.71.155.175]) by mx.groups.io with SMTP id smtpd.web11.1275.1616687244068241192 for ; Thu, 25 Mar 2021 08:47:24 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@citrix.com header.s=securemail header.b=Y8iD3/bj; spf=pass (domain: citrix.com, ip: 216.71.155.175, mailfrom: anthony.perard@citrix.com) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1616687244; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=I//vo6EgzA3O+WoYlIFVbKZ2b81Yv/4CkT2XwcMrI60=; b=Y8iD3/bjhf9dyfn7JLYykBarN6KDSDydr63DLO9cPsVt8D7r+WC+TyFa bJkK/y/pk9Z2gbNJUHiICMYKLnpJV+PyDR5ySjNSDJjAUtXPvDJYq+Fj2 reblaIPuk8t2Aq1ewbwpR7ttNNWqI7fNdUJBXR81mHNobZF93GC/qQxR3 E=; Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: 8n4o21A1w7Gw1F32Yv5EbTlRvA1wkW8yP5FrruX1mtYYgOFaEg/bJenlmRH1tEonYmw04duqZH hwxX0DKXwxjmhlfYFm4p4R2wK1qewnWUBnYC8T8+Q7JDQRTw/6Uh3U6Z3QZ4ipAZi3qcGhZ1Vd 9Dsy/7QSz89ROY21v9odGm2ploXI2ZPC+cksdk3KJZOJFCDAqQnLcrnefiBN/VYS63MDNjLODm T3YdIYiWbE2vB09TetUantvil1ah5sQZBHrlkTlPpncFyOcI9T/FlFO3syPeI2fjfOGu0W41TI CM8= X-SBRS: 5.1 X-MesageID: 40292481 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:wbhaca7eJnP4ga4TvQPXwRqBI+orLtY04lQ7vn1ZYQBJc8Ceis CllOka0xixszoKRHQ8g7m7VZWoa3m0z/5IyKMWOqqvWxSjhXuwIOhZnO/f6hDDOwm7zO5S0q 98b7NzYeebMXFWhdv3iTPWL/8O29+CmZrHuc7771NACT5ncLth6QARMHf/LmRTSBNdDZQ0UL qwj/A3xAaIQngcYsSlCnRtZYGqy+Hjr576fQUAQycu9Qjmt1iVwYTnGBuV1Ap2aUIs/Z4e9w H+8jDR1+GYnNyQjjTd0GLS6Jo+oqqd9vJzQPaip+JQBjHligODbJlsVbuYrFkO0Z2SwWdvqv bgiVMNONly9mPwcwiO0GTQ8jil6hkCwTvDzkKVmnTqq8CRfkNFN+Nxwbh3XzGczmhIhqAa7I t7m1i3mrASMDb72AP63NTMXwECrDvOnVMS1dQ9olYabZETc9Zq3Ooi1XIQKrgsNgTg5rsqFe F/Zfusnsp+QBehY3fVsnIH+q3UYl0DWhOPQk01sseIyTRhnHdg00sCxMAE901wjK4Adw== X-IronPort-AV: E=Sophos;i="5.81,277,1610427600"; d="scan'208";a="40292481" From: "Anthony PERARD" To: CC: , Jordan Justen , Anthony PERARD , "Ard Biesheuvel" , Laszlo Ersek , Julien Grall , Tom Lendacky , Brijesh Singh Subject: [PATCH v2 4/7] OvmfPkg/IndustryStandard: Introduce PageTable.h Date: Thu, 25 Mar 2021 15:47:10 +0000 Message-ID: <20210325154713.670104-5-anthony.perard@citrix.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <20210325154713.670104-1-anthony.perard@citrix.com> References: <20210325154713.670104-1-anthony.perard@citrix.com> MIME-Version: 1.0 Return-Path: anthony.perard@citrix.com Content-Transfer-Encoding: base64 Content-Type: text/plain V2UgYXJlIGdvaW5nIHRvIHVzZSB0aGUgcGFnZSB0YWJsZSBzdHJ1Y3R1cmUgaW4geWV0IGFub3Ro ZXIgcGxhY2UsCmNvbGxlY3QgdGhlIHR5cGVzIGFuZCBtYWNybyB0aGF0IGNhbiBiZSB1c2VkIGZy b20gYW5vdGhlciBtb2R1bGUKcmF0aGVyIHRoYXQgbWFraW5nIHlldCBhbm90aGVyIGNvcHkuCgpS ZWY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5MApT aWduZWQtb2ZmLWJ5OiBBbnRob255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4K LS0tCkNDOiBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29tPgpDQzogQnJpamVz aCBTaW5naCA8YnJpamVzaC5zaW5naEBhbWQuY29tPgotLS0KCk5vdGVzOgogICAgdjI6CiAgICAt IG5ldyBwYXRjaAoKIC4uLi9JbmR1c3RyeVN0YW5kYXJkL1BhZ2VUYWJsZS5ofSAgICAgICAgICAg ICB8IDExNyArLS0tLS0tLS0tLS0tLQogLi4uL0Jhc2VNZW1FbmNyeXB0U2V2TGliL1g2NC9WaXJ0 dWFsTWVtb3J5LmggIHwgMTQzICstLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA1 IGluc2VydGlvbnMoKyksIDI1NSBkZWxldGlvbnMoLSkKIGNvcHkgT3ZtZlBrZy97TGlicmFyeS9C YXNlTWVtRW5jcnlwdFNldkxpYi9YNjQvVmlydHVhbE1lbW9yeS5oID0+IEluY2x1ZGUvSW5kdXN0 cnlTdGFuZGFyZC9QYWdlVGFibGUuaH0gKDYwJSkKCmRpZmYgLS1naXQgYS9Pdm1mUGtnL0xpYnJh cnkvQmFzZU1lbUVuY3J5cHRTZXZMaWIvWDY0L1ZpcnR1YWxNZW1vcnkuaCBiL092bWZQa2cvSW5j bHVkZS9JbmR1c3RyeVN0YW5kYXJkL1BhZ2VUYWJsZS5oCnNpbWlsYXJpdHkgaW5kZXggNjAlCmNv cHkgZnJvbSBPdm1mUGtnL0xpYnJhcnkvQmFzZU1lbUVuY3J5cHRTZXZMaWIvWDY0L1ZpcnR1YWxN ZW1vcnkuaApjb3B5IHRvIE92bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1BhZ2VUYWJs ZS5oCmluZGV4IDk5NmY5NGYwN2ViYi4uZTNkYTRlOGNmMjFjIDEwMDY0NAotLS0gYS9Pdm1mUGtn L0xpYnJhcnkvQmFzZU1lbUVuY3J5cHRTZXZMaWIvWDY0L1ZpcnR1YWxNZW1vcnkuaAorKysgYi9P dm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9QYWdlVGFibGUuaApAQCAtMSw2ICsxLDYg QEAKIC8qKiBAZmlsZQ0KIA0KLSAgVmlydHVhbCBNZW1vcnkgTWFuYWdlbWVudCBTZXJ2aWNlcyB0 byBzZXQgb3IgY2xlYXIgdGhlIG1lbW9yeSBlbmNyeXB0aW9uIGJpdA0KKyAgeDg2XzY0IFBhZ2Ug VGFibGVzIHN0cnVjdHVyZXMNCiANCiAgIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTYsIEludGVs IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCiAgIENvcHlyaWdodCAoYykg MjAxNyAtIDIwMjAsIEFNRCBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K QEAgLTExLDE3ICsxMSwxMCBAQAogDQogKiovDQogDQotI2lmbmRlZiBfX1ZJUlRVQUxfTUVNT1JZ X18NCi0jZGVmaW5lIF9fVklSVFVBTF9NRU1PUllfXw0KKyNpZm5kZWYgX19QQUdFX1RBQkxFX0hf Xw0KKyNkZWZpbmUgX19QQUdFX1RBQkxFX0hfXw0KIA0KLSNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VM aWIuaD4NCi0jaW5jbHVkZSA8TGlicmFyeS9CYXNlTWVtb3J5TGliLmg+DQotI2luY2x1ZGUgPExp YnJhcnkvQ2FjaGVNYWludGVuYW5jZUxpYi5oPg0KLSNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGli Lmg+DQotI2luY2x1ZGUgPExpYnJhcnkvTWVtb3J5QWxsb2NhdGlvbkxpYi5oPg0KLSNpbmNsdWRl IDxVZWZpLmg+DQotDQotI2RlZmluZSBTWVNfQ09ERTY0X1NFTCAweDM4DQorI2luY2x1ZGUgPEJh c2UuaD4NCiANCiAjcHJhZ21hIHBhY2soMSkNCiANCkBAIC0xNjUsMTA2ICsxNTgsNCBAQCB0eXBl ZGVmIHVuaW9uIHsKICNkZWZpbmUgUFRFX09GRlNFVCh4KSAgICAgICAgICAgICAgICggKHggPj4g MTIpICYgUEFHRVRBQkxFX0VOVFJZX01BU0spDQogI2RlZmluZSBQQUdJTkdfMUdfQUREUkVTU19N QVNLXzY0ICAgMHgwMDBGRkZGRkMwMDAwMDAwdWxsDQogDQotI2RlZmluZSBQQUdFX1RBQkxFX1BP T0xfQUxJR05NRU5UICAgQkFTRV8yTUINCi0jZGVmaW5lIFBBR0VfVEFCTEVfUE9PTF9VTklUX1NJ WkUgICBTSVpFXzJNQg0KLSNkZWZpbmUgUEFHRV9UQUJMRV9QT09MX1VOSVRfUEFHRVMgIFwNCi0g IEVGSV9TSVpFX1RPX1BBR0VTIChQQUdFX1RBQkxFX1BPT0xfVU5JVF9TSVpFKQ0KLSNkZWZpbmUg UEFHRV9UQUJMRV9QT09MX0FMSUdOX01BU0sgIFwNCi0gICh+KEVGSV9QSFlTSUNBTF9BRERSRVNT KShQQUdFX1RBQkxFX1BPT0xfQUxJR05NRU5UIC0gMSkpDQotDQotdHlwZWRlZiBzdHJ1Y3Qgew0K LSAgVk9JRCAgICAgICAgICAgICpOZXh0UG9vbDsNCi0gIFVJTlROICAgICAgICAgICBPZmZzZXQ7 DQotICBVSU5UTiAgICAgICAgICAgRnJlZVBhZ2VzOw0KLX0gUEFHRV9UQUJMRV9QT09MOw0KLQ0K LS8qKg0KLSAgUmV0dXJuIHRoZSBwYWdldGFibGUgbWVtb3J5IGVuY3J5cHRpb24gbWFzay4NCi0N Ci0gIEByZXR1cm4gIFRoZSBwYWdldGFibGUgbWVtb3J5IGVuY3J5cHRpb24gbWFzay4NCi0NCi0q Ki8NCi1VSU5UNjQNCi1FRklBUEkNCi1JbnRlcm5hbEdldE1lbUVuY3J5cHRpb25BZGRyZXNzTWFz ayAoDQotICBWT0lEDQotICApOw0KLQ0KLS8qKg0KLSAgVGhpcyBmdW5jdGlvbiBjbGVhcnMgbWVt b3J5IGVuY3J5cHRpb24gYml0IGZvciB0aGUgbWVtb3J5IHJlZ2lvbiBzcGVjaWZpZWQgYnkNCi0g IFBoeXNpY2FsQWRkcmVzcyBhbmQgTGVuZ3RoIGZyb20gdGhlIGN1cnJlbnQgcGFnZSB0YWJsZSBj b250ZXh0Lg0KLQ0KLSAgQHBhcmFtW2luXSAgQ3IzQmFzZUFkZHJlc3MgICAgICAgICAgQ3IzIEJh c2UgQWRkcmVzcyAoaWYgemVybyB0aGVuIHVzZQ0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY3VycmVudCBDUjMpDQotICBAcGFyYW1baW5dICBQaHlzaWNhbEFkZHJlc3Mg ICAgICAgICBUaGUgcGh5c2ljYWwgYWRkcmVzcyB0aGF0IGlzIHRoZSBzdGFydA0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyBvZiBhIG1lbW9yeSByZWdpb24u DQotICBAcGFyYW1baW5dICBMZW5ndGggICAgICAgICAgICAgICAgICBUaGUgbGVuZ3RoIG9mIG1l bW9yeSByZWdpb24NCi0gIEBwYXJhbVtpbl0gIEZsdXNoICAgICAgICAgICAgICAgICAgIEZsdXNo IHRoZSBjYWNoZXMgYmVmb3JlIGFwcGx5aW5nIHRoZQ0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZW5jcnlwdGlvbiBtYXNrDQotDQotICBAcmV0dmFsIFJFVFVSTl9TVUND RVNTICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlcyB3ZXJlIGNsZWFyZWQgZm9yIHRoZQ0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtb3J5IHJlZ2lvbi4NCi0gIEBy ZXR2YWwgUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSICAgIE51bWJlciBvZiBwYWdlcyBpcyB6ZXJv Lg0KLSAgQHJldHZhbCBSRVRVUk5fVU5TVVBQT1JURUQgICAgICAgICAgQ2xlYXJpbmcgdGhlIG1l bW9yeSBlbmN5cnB0aW9uIGF0dHJpYnV0ZQ0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaXMgbm90IHN1cHBvcnRlZA0KLSoqLw0KLVJFVFVSTl9TVEFUVVMNCi1FRklBUEkN Ci1JbnRlcm5hbE1lbUVuY3J5cHRTZXZTZXRNZW1vcnlEZWNyeXB0ZWQgKA0KLSAgSU4gIFBIWVNJ Q0FMX0FERFJFU1MgICAgICAgIENyM0Jhc2VBZGRyZXNzLA0KLSAgSU4gIFBIWVNJQ0FMX0FERFJF U1MgICAgICAgIFBoeXNpY2FsQWRkcmVzcywNCi0gIElOICBVSU5UTiAgICAgICAgICAgICAgICAg ICBMZW5ndGgsDQotICBJTiAgQk9PTEVBTiAgICAgICAgICAgICAgICAgRmx1c2gNCi0gICk7DQot DQotLyoqDQotICBUaGlzIGZ1bmN0aW9uIHNldHMgbWVtb3J5IGVuY3J5cHRpb24gYml0IGZvciB0 aGUgbWVtb3J5IHJlZ2lvbiBzcGVjaWZpZWQgYnkNCi0gIFBoeXNpY2FsQWRkcmVzcyBhbmQgTGVu Z3RoIGZyb20gdGhlIGN1cnJlbnQgcGFnZSB0YWJsZSBjb250ZXh0Lg0KLQ0KLSAgQHBhcmFtW2lu XSAgQ3IzQmFzZUFkZHJlc3MgICAgICAgICAgQ3IzIEJhc2UgQWRkcmVzcyAoaWYgemVybyB0aGVu IHVzZQ0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCBDUjMp DQotICBAcGFyYW1baW5dICBQaHlzaWNhbEFkZHJlc3MgICAgICAgICBUaGUgcGh5c2ljYWwgYWRk cmVzcyB0aGF0IGlzIHRoZSBzdGFydA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYWRkcmVzcyBvZiBhIG1lbW9yeSByZWdpb24uDQotICBAcGFyYW1baW5dICBMZW5ndGgg ICAgICAgICAgICAgICAgICBUaGUgbGVuZ3RoIG9mIG1lbW9yeSByZWdpb24NCi0gIEBwYXJhbVtp bl0gIEZsdXNoICAgICAgICAgICAgICAgICAgIEZsdXNoIHRoZSBjYWNoZXMgYmVmb3JlIGFwcGx5 aW5nIHRoZQ0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jcnlwdGlv biBtYXNrDQotDQotICBAcmV0dmFsIFJFVFVSTl9TVUNDRVNTICAgICAgICAgICAgICBUaGUgYXR0 cmlidXRlcyB3ZXJlIHNldCBmb3IgdGhlIG1lbW9yeQ0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVnaW9uLg0KLSAgQHJldHZhbCBSRVRVUk5fSU5WQUxJRF9QQVJBTUVU RVIgICAgTnVtYmVyIG9mIHBhZ2VzIGlzIHplcm8uDQotICBAcmV0dmFsIFJFVFVSTl9VTlNVUFBP UlRFRCAgICAgICAgICBTZXR0aW5nIHRoZSBtZW1vcnkgZW5jeXJwdGlvbiBhdHRyaWJ1dGUNCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIG5vdCBzdXBwb3J0ZWQNCi0q Ki8NCi1SRVRVUk5fU1RBVFVTDQotRUZJQVBJDQotSW50ZXJuYWxNZW1FbmNyeXB0U2V2U2V0TWVt b3J5RW5jcnlwdGVkICgNCi0gIElOICBQSFlTSUNBTF9BRERSRVNTICAgICAgICBDcjNCYXNlQWRk cmVzcywNCi0gIElOICBQSFlTSUNBTF9BRERSRVNTICAgICAgICBQaHlzaWNhbEFkZHJlc3MsDQot ICBJTiAgVUlOVE4gICAgICAgICAgICAgICAgICAgTGVuZ3RoLA0KLSAgSU4gIEJPT0xFQU4gICAg ICAgICAgICAgICAgIEZsdXNoDQotICApOw0KLQ0KLS8qKg0KLSAgUmV0dXJucyB0aGUgZW5jcnlw dGlvbiBzdGF0ZSBvZiB0aGUgc3BlY2lmaWVkIHZpcnR1YWwgYWRkcmVzcyByYW5nZS4NCi0NCi0g IEBwYXJhbVtpbl0gIENyM0Jhc2VBZGRyZXNzICAgICAgICAgIENyMyBCYXNlIEFkZHJlc3MgKGlm IHplcm8gdGhlbiB1c2UNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1 cnJlbnQgQ1IzKQ0KLSAgQHBhcmFtW2luXSAgQmFzZUFkZHJlc3MgICAgICAgICAgICAgQmFzZSBh ZGRyZXNzIHRvIGNoZWNrDQotICBAcGFyYW1baW5dICBMZW5ndGggICAgICAgICAgICAgICAgICBM ZW5ndGggb2YgdmlydHVhbCBhZGRyZXNzIHJhbmdlDQotDQotICBAcmV0dmFsIE1lbUVuY3J5cHRT ZXZBZGRyZXNzUmFuZ2VVbmVuY3J5cHRlZCAgQWRkcmVzcyByYW5nZSBpcyBtYXBwZWQNCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmVuY3J5cHRlZA0K LSAgQHJldHZhbCBNZW1FbmNyeXB0U2V2QWRkcmVzc1JhbmdlRW5jcnlwdGVkICAgIEFkZHJlc3Mg cmFuZ2UgaXMgbWFwcGVkDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZW5jcnlwdGVkDQotICBAcmV0dmFsIE1lbUVuY3J5cHRTZXZBZGRyZXNzUmFuZ2VN aXhlZCAgICAgICAgQWRkcmVzcyByYW5nZSBpcyBtYXBwZWQgbWl4ZWQNCi0gIEByZXR2YWwgTWVt RW5jcnlwdFNldkFkZHJlc3NSYW5nZUVycm9yICAgICAgICBBZGRyZXNzIHJhbmdlIGlzIG5vdCBt YXBwZWQNCi0qKi8NCi1NRU1fRU5DUllQVF9TRVZfQUREUkVTU19SQU5HRV9TVEFURQ0KLUVGSUFQ SQ0KLUludGVybmFsTWVtRW5jcnlwdFNldkdldEFkZHJlc3NSYW5nZVN0YXRlICgNCi0gIElOIFBI WVNJQ0FMX0FERFJFU1MgICAgICAgICBDcjNCYXNlQWRkcmVzcywNCi0gIElOIFBIWVNJQ0FMX0FE RFJFU1MgICAgICAgICBCYXNlQWRkcmVzcywNCi0gIElOIFVJTlROICAgICAgICAgICAgICAgICAg ICBMZW5ndGgNCi0gICk7DQotDQogI2VuZGlmDQpkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9MaWJyYXJ5 L0Jhc2VNZW1FbmNyeXB0U2V2TGliL1g2NC9WaXJ0dWFsTWVtb3J5LmggYi9Pdm1mUGtnL0xpYnJh cnkvQmFzZU1lbUVuY3J5cHRTZXZMaWIvWDY0L1ZpcnR1YWxNZW1vcnkuaAppbmRleCA5OTZmOTRm MDdlYmIuLmI2MjFkODExY2E2ZiAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9MaWJyYXJ5L0Jhc2VNZW1F bmNyeXB0U2V2TGliL1g2NC9WaXJ0dWFsTWVtb3J5LmgKKysrIGIvT3ZtZlBrZy9MaWJyYXJ5L0Jh c2VNZW1FbmNyeXB0U2V2TGliL1g2NC9WaXJ0dWFsTWVtb3J5LmgKQEAgLTIwLDE1MSArMjAsMTAg QEAKICNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQogI2luY2x1ZGUgPExpYnJhcnkvTWVt b3J5QWxsb2NhdGlvbkxpYi5oPg0KICNpbmNsdWRlIDxVZWZpLmg+DQorI2luY2x1ZGUgPEluZHVz dHJ5U3RhbmRhcmQvUGFnZVRhYmxlLmg+DQogDQogI2RlZmluZSBTWVNfQ09ERTY0X1NFTCAweDM4 DQogDQotI3ByYWdtYSBwYWNrKDEpDQotDQotLy8NCi0vLyBQYWdlLU1hcCBMZXZlbC00IE9mZnNl dCAoUE1MNCkgYW5kDQotLy8gUGFnZS1EaXJlY3RvcnktUG9pbnRlciBPZmZzZXQgKFBEUEUpIGVu dHJpZXMgNEsgJiAyTUINCi0vLw0KLQ0KLXR5cGVkZWYgdW5pb24gew0KLSAgc3RydWN0IHsNCi0g ICAgVUlOVDY0ICBQcmVzZW50OjE7ICAgICAgICAgICAgICAgIC8vIDAgPSBOb3QgcHJlc2VudCBp biBtZW1vcnksDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIDEg PSBQcmVzZW50IGluIG1lbW9yeQ0KLSAgICBVSU5UNjQgIFJlYWRXcml0ZToxOyAgICAgICAgICAg ICAgLy8gMCA9IFJlYWQtT25seSwgMT0gUmVhZC9Xcml0ZQ0KLSAgICBVSU5UNjQgIFVzZXJTdXBl cnZpc29yOjE7ICAgICAgICAgLy8gMCA9IFN1cGVydmlzb3IsIDE9VXNlcg0KLSAgICBVSU5UNjQg IFdyaXRlVGhyb3VnaDoxOyAgICAgICAgICAgLy8gMCA9IFdyaXRlLUJhY2sgY2FjaGluZywNCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgMSA9IFdyaXRlLVRocm91 Z2ggY2FjaGluZw0KLSAgICBVSU5UNjQgIENhY2hlRGlzYWJsZWQ6MTsgICAgICAgICAgLy8gMCA9 IENhY2hlZCwgMT1Ob24tQ2FjaGVkDQotICAgIFVJTlQ2NCAgQWNjZXNzZWQ6MTsgICAgICAgICAg ICAgICAvLyAwID0gTm90IGFjY2Vzc2VkLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gICAxID0gQWNjZXNzZWQgKHNldCBieSBDUFUpDQotICAgIFVJTlQ2NCAgUmVz ZXJ2ZWQ6MTsgICAgICAgICAgICAgICAvLyBSZXNlcnZlZA0KLSAgICBVSU5UNjQgIE11c3RCZVpl cm86MjsgICAgICAgICAgICAgLy8gTXVzdCBCZSBaZXJvDQotICAgIFVJTlQ2NCAgQXZhaWxhYmxl OjM7ICAgICAgICAgICAgICAvLyBBdmFpbGFibGUgZm9yIHVzZSBieSBzeXN0ZW0gc29mdHdhcmUN Ci0gICAgVUlOVDY0ICBQYWdlVGFibGVCYXNlQWRkcmVzczo0MDsgIC8vIFBhZ2UgVGFibGUgQmFz ZSBBZGRyZXNzDQotICAgIFVJTlQ2NCAgQXZhYmlsYWJsZUhpZ2g6MTE7ICAgICAgICAvLyBBdmFp bGFibGUgZm9yIHVzZSBieSBzeXN0ZW0gc29mdHdhcmUNCi0gICAgVUlOVDY0ICBOeDoxOyAgICAg ICAgICAgICAgICAgICAgIC8vIE5vIEV4ZWN1dGUgYml0DQotICB9IEJpdHM7DQotICBVSU5UNjQg ICAgVWludDY0Ow0KLX0gUEFHRV9NQVBfQU5EX0RJUkVDVE9SWV9QT0lOVEVSOw0KLQ0KLS8vDQot Ly8gUGFnZSBUYWJsZSBFbnRyeSA0S0INCi0vLw0KLXR5cGVkZWYgdW5pb24gew0KLSAgc3RydWN0 IHsNCi0gICAgVUlOVDY0ICBQcmVzZW50OjE7ICAgICAgICAgICAgICAgIC8vIDAgPSBOb3QgcHJl c2VudCBpbiBtZW1vcnksDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyAgIDEgPSBQcmVzZW50IGluIG1lbW9yeQ0KLSAgICBVSU5UNjQgIFJlYWRXcml0ZToxOyAgICAg ICAgICAgICAgLy8gMCA9IFJlYWQtT25seSwgMT0gUmVhZC9Xcml0ZQ0KLSAgICBVSU5UNjQgIFVz ZXJTdXBlcnZpc29yOjE7ICAgICAgICAgLy8gMCA9IFN1cGVydmlzb3IsIDE9VXNlcg0KLSAgICBV SU5UNjQgIFdyaXRlVGhyb3VnaDoxOyAgICAgICAgICAgLy8gMCA9IFdyaXRlLUJhY2sgY2FjaGlu ZywNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgMSA9IFdyaXRl LVRocm91Z2ggY2FjaGluZw0KLSAgICBVSU5UNjQgIENhY2hlRGlzYWJsZWQ6MTsgICAgICAgICAg Ly8gMCA9IENhY2hlZCwgMT1Ob24tQ2FjaGVkDQotICAgIFVJTlQ2NCAgQWNjZXNzZWQ6MTsgICAg ICAgICAgICAgICAvLyAwID0gTm90IGFjY2Vzc2VkLA0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gICAxID0gQWNjZXNzZWQgKHNldCBieSBDUFUpDQotICAgIFVJTlQ2 NCAgRGlydHk6MTsgICAgICAgICAgICAgICAgICAvLyAwID0gTm90IERpcnR5LCAxID0gd3JpdHRl biBieQ0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBwcm9jZXNz b3Igb24gYWNjZXNzIHRvIHBhZ2UNCi0gICAgVUlOVDY0ICBQQVQ6MTsgICAgICAgICAgICAgICAg ICAgIC8vDQotICAgIFVJTlQ2NCAgR2xvYmFsOjE7ICAgICAgICAgICAgICAgICAvLyAwID0gTm90 IGdsb2JhbCBwYWdlLCAxID0gZ2xvYmFsIHBhZ2UNCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vICAgVExCIG5vdCBjbGVhcmVkIG9uIENSMyB3cml0ZQ0KLSAgICBVSU5U NjQgIEF2YWlsYWJsZTozOyAgICAgICAgICAgICAgLy8gQXZhaWxhYmxlIGZvciB1c2UgYnkgc3lz dGVtIHNvZnR3YXJlDQotICAgIFVJTlQ2NCAgUGFnZVRhYmxlQmFzZUFkZHJlc3M6NDA7ICAvLyBQ YWdlIFRhYmxlIEJhc2UgQWRkcmVzcw0KLSAgICBVSU5UNjQgIEF2YWJpbGFibGVIaWdoOjExOyAg ICAgICAgLy8gQXZhaWxhYmxlIGZvciB1c2UgYnkgc3lzdGVtIHNvZnR3YXJlDQotICAgIFVJTlQ2 NCAgTng6MTsgICAgICAgICAgICAgICAgICAgICAvLyAwID0gRXhlY3V0ZSBDb2RlLA0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAxID0gTm8gQ29kZSBFeGVjdXRp b24NCi0gIH0gQml0czsNCi0gIFVJTlQ2NCAgICBVaW50NjQ7DQotfSBQQUdFX1RBQkxFXzRLX0VO VFJZOw0KLQ0KLS8vDQotLy8gUGFnZSBUYWJsZSBFbnRyeSAyTUINCi0vLw0KLXR5cGVkZWYgdW5p b24gew0KLSAgc3RydWN0IHsNCi0gICAgVUlOVDY0ICBQcmVzZW50OjE7ICAgICAgICAgICAgICAg IC8vIDAgPSBOb3QgcHJlc2VudCBpbiBtZW1vcnksDQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyAgIDEgPSBQcmVzZW50IGluIG1lbW9yeQ0KLSAgICBVSU5UNjQgIFJl YWRXcml0ZToxOyAgICAgICAgICAgICAgLy8gMCA9IFJlYWQtT25seSwgMT0gUmVhZC9Xcml0ZQ0K LSAgICBVSU5UNjQgIFVzZXJTdXBlcnZpc29yOjE7ICAgICAgICAgLy8gMCA9IFN1cGVydmlzb3Is IDE9VXNlcg0KLSAgICBVSU5UNjQgIFdyaXRlVGhyb3VnaDoxOyAgICAgICAgICAgLy8gMCA9IFdy aXRlLUJhY2sgY2FjaGluZywNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vICAgMT1Xcml0ZS1UaHJvdWdoIGNhY2hpbmcNCi0gICAgVUlOVDY0ICBDYWNoZURpc2FibGVk OjE7ICAgICAgICAgIC8vIDAgPSBDYWNoZWQsIDE9Tm9uLUNhY2hlZA0KLSAgICBVSU5UNjQgIEFj Y2Vzc2VkOjE7ICAgICAgICAgICAgICAgLy8gMCA9IE5vdCBhY2Nlc3NlZCwNCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgMSA9IEFjY2Vzc2VkIChzZXQgYnkgQ1BV KQ0KLSAgICBVSU5UNjQgIERpcnR5OjE7ICAgICAgICAgICAgICAgICAgLy8gMCA9IE5vdCBEaXJ0 eSwgMSA9IHdyaXR0ZW4gYnkNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vICAgcHJvY2Vzc29yIG9uIGFjY2VzcyB0byBwYWdlDQotICAgIFVJTlQ2NCAgTXVzdEJlMTox OyAgICAgICAgICAgICAgICAvLyBNdXN0IGJlIDENCi0gICAgVUlOVDY0ICBHbG9iYWw6MTsgICAg ICAgICAgICAgICAgIC8vIDAgPSBOb3QgZ2xvYmFsIHBhZ2UsIDEgPSBnbG9iYWwgcGFnZQ0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBUTEIgbm90IGNsZWFyZWQg b24gQ1IzIHdyaXRlDQotICAgIFVJTlQ2NCAgQXZhaWxhYmxlOjM7ICAgICAgICAgICAgICAvLyBB dmFpbGFibGUgZm9yIHVzZSBieSBzeXN0ZW0gc29mdHdhcmUNCi0gICAgVUlOVDY0ICBQQVQ6MTsg ICAgICAgICAgICAgICAgICAgIC8vDQotICAgIFVJTlQ2NCAgTXVzdEJlWmVybzo4OyAgICAgICAg ICAgICAvLyBNdXN0IGJlIHplcm87DQotICAgIFVJTlQ2NCAgUGFnZVRhYmxlQmFzZUFkZHJlc3M6 MzE7ICAvLyBQYWdlIFRhYmxlIEJhc2UgQWRkcmVzcw0KLSAgICBVSU5UNjQgIEF2YWJpbGFibGVI aWdoOjExOyAgICAgICAgLy8gQXZhaWxhYmxlIGZvciB1c2UgYnkgc3lzdGVtIHNvZnR3YXJlDQot ICAgIFVJTlQ2NCAgTng6MTsgICAgICAgICAgICAgICAgICAgICAvLyAwID0gRXhlY3V0ZSBDb2Rl LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAxID0gTm8gQ29k ZSBFeGVjdXRpb24NCi0gIH0gQml0czsNCi0gIFVJTlQ2NCAgICBVaW50NjQ7DQotfSBQQUdFX1RB QkxFX0VOVFJZOw0KLQ0KLS8vDQotLy8gUGFnZSBUYWJsZSBFbnRyeSAxR0INCi0vLw0KLXR5cGVk ZWYgdW5pb24gew0KLSAgc3RydWN0IHsNCi0gICAgVUlOVDY0ICBQcmVzZW50OjE7ICAgICAgICAg ICAgICAgIC8vIDAgPSBOb3QgcHJlc2VudCBpbiBtZW1vcnksDQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAgIDEgPSBQcmVzZW50IGluIG1lbW9yeQ0KLSAgICBVSU5U NjQgIFJlYWRXcml0ZToxOyAgICAgICAgICAgICAgLy8gMCA9IFJlYWQtT25seSwgMT0gUmVhZC9X cml0ZQ0KLSAgICBVSU5UNjQgIFVzZXJTdXBlcnZpc29yOjE7ICAgICAgICAgLy8gMCA9IFN1cGVy dmlzb3IsIDE9VXNlcg0KLSAgICBVSU5UNjQgIFdyaXRlVGhyb3VnaDoxOyAgICAgICAgICAgLy8g MCA9IFdyaXRlLUJhY2sgY2FjaGluZywNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vICAgMSA9IFdyaXRlLVRocm91Z2ggY2FjaGluZw0KLSAgICBVSU5UNjQgIENhY2hl RGlzYWJsZWQ6MTsgICAgICAgICAgLy8gMCA9IENhY2hlZCwgMT1Ob24tQ2FjaGVkDQotICAgIFVJ TlQ2NCAgQWNjZXNzZWQ6MTsgICAgICAgICAgICAgICAvLyAwID0gTm90IGFjY2Vzc2VkLA0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAxID0gQWNjZXNzZWQgKHNl dCBieSBDUFUpDQotICAgIFVJTlQ2NCAgRGlydHk6MTsgICAgICAgICAgICAgICAgICAvLyAwID0g Tm90IERpcnR5LCAxID0gd3JpdHRlbiBieQ0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gICBwcm9jZXNzb3Igb24gYWNjZXNzIHRvIHBhZ2UNCi0gICAgVUlOVDY0ICBN dXN0QmUxOjE7ICAgICAgICAgICAgICAgIC8vIE11c3QgYmUgMQ0KLSAgICBVSU5UNjQgIEdsb2Jh bDoxOyAgICAgICAgICAgICAgICAgLy8gMCA9IE5vdCBnbG9iYWwgcGFnZSwgMSA9IGdsb2JhbCBw YWdlDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIFRMQiBub3Qg Y2xlYXJlZCBvbiBDUjMgd3JpdGUNCi0gICAgVUlOVDY0ICBBdmFpbGFibGU6MzsgICAgICAgICAg ICAgIC8vIEF2YWlsYWJsZSBmb3IgdXNlIGJ5IHN5c3RlbSBzb2Z0d2FyZQ0KLSAgICBVSU5UNjQg IFBBVDoxOyAgICAgICAgICAgICAgICAgICAgLy8NCi0gICAgVUlOVDY0ICBNdXN0QmVaZXJvOjE3 OyAgICAgICAgICAgIC8vIE11c3QgYmUgemVybzsNCi0gICAgVUlOVDY0ICBQYWdlVGFibGVCYXNl QWRkcmVzczoyMjsgIC8vIFBhZ2UgVGFibGUgQmFzZSBBZGRyZXNzDQotICAgIFVJTlQ2NCAgQXZh YmlsYWJsZUhpZ2g6MTE7ICAgICAgICAvLyBBdmFpbGFibGUgZm9yIHVzZSBieSBzeXN0ZW0gc29m dHdhcmUNCi0gICAgVUlOVDY0ICBOeDoxOyAgICAgICAgICAgICAgICAgICAgIC8vIDAgPSBFeGVj dXRlIENvZGUsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIDEg PSBObyBDb2RlIEV4ZWN1dGlvbg0KLSAgfSBCaXRzOw0KLSAgVUlOVDY0ICAgIFVpbnQ2NDsNCi19 IFBBR0VfVEFCTEVfMUdfRU5UUlk7DQotDQotI3ByYWdtYSBwYWNrKCkNCi0NCi0jZGVmaW5lIElB MzJfUEdfUCAgICAgICAgICAgICAgICAgICBCSVQwDQotI2RlZmluZSBJQTMyX1BHX1JXICAgICAg ICAgICAgICAgICAgQklUMQ0KLSNkZWZpbmUgSUEzMl9QR19QUyAgICAgICAgICAgICAgICAgIEJJ VDcNCi0NCi0jZGVmaW5lIFBBR0lOR19QQUVfSU5ERVhfTUFTSyAgICAgICAweDFGRg0KLQ0KLSNk ZWZpbmUgUEFHSU5HXzRLX0FERFJFU1NfTUFTS182NCAgIDB4MDAwRkZGRkZGRkZGRjAwMHVsbA0K LSNkZWZpbmUgUEFHSU5HXzJNX0FERFJFU1NfTUFTS182NCAgIDB4MDAwRkZGRkZGRkUwMDAwMHVs bA0KLSNkZWZpbmUgUEFHSU5HXzFHX0FERFJFU1NfTUFTS182NCAgIDB4MDAwRkZGRkZDMDAwMDAw MHVsbA0KLQ0KLSNkZWZpbmUgUEFHSU5HX0wxX0FERFJFU1NfU0hJRlQgICAgIDEyDQotI2RlZmlu ZSBQQUdJTkdfTDJfQUREUkVTU19TSElGVCAgICAgMjENCi0jZGVmaW5lIFBBR0lOR19MM19BRERS RVNTX1NISUZUICAgICAzMA0KLSNkZWZpbmUgUEFHSU5HX0w0X0FERFJFU1NfU0hJRlQgICAgIDM5 DQotDQotI2RlZmluZSBQQUdJTkdfUE1MNEVfTlVNQkVSICAgICAgICAgNA0KLQ0KLSNkZWZpbmUg UEFHRVRBQkxFX0VOVFJZX01BU0sgICAgICAgICgoMVVMIDw8IDkpIC0gMSkNCi0jZGVmaW5lIFBN TDRfT0ZGU0VUKHgpICAgICAgICAgICAgICAoICh4ID4+IDM5KSAmIFBBR0VUQUJMRV9FTlRSWV9N QVNLKQ0KLSNkZWZpbmUgUERQX09GRlNFVCh4KSAgICAgICAgICAgICAgICggKHggPj4gMzApICYg UEFHRVRBQkxFX0VOVFJZX01BU0spDQotI2RlZmluZSBQREVfT0ZGU0VUKHgpICAgICAgICAgICAg ICAgKCAoeCA+PiAyMSkgJiBQQUdFVEFCTEVfRU5UUllfTUFTSykNCi0jZGVmaW5lIFBURV9PRkZT RVQoeCkgICAgICAgICAgICAgICAoICh4ID4+IDEyKSAmIFBBR0VUQUJMRV9FTlRSWV9NQVNLKQ0K LSNkZWZpbmUgUEFHSU5HXzFHX0FERFJFU1NfTUFTS182NCAgIDB4MDAwRkZGRkZDMDAwMDAwMHVs bA0KLQ0KICNkZWZpbmUgUEFHRV9UQUJMRV9QT09MX0FMSUdOTUVOVCAgIEJBU0VfMk1CDQogI2Rl ZmluZSBQQUdFX1RBQkxFX1BPT0xfVU5JVF9TSVpFICAgU0laRV8yTUINCiAjZGVmaW5lIFBBR0Vf VEFCTEVfUE9PTF9VTklUX1BBR0VTICBcDQotLSAKQW50aG9ueSBQRVJBUkQKCg==