From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wu Fengguang Subject: [PATCH] intel_audio_dump: add support for IbexPeak and CougarPoint Date: Mon, 19 Apr 2010 13:13:06 +0800 Message-ID: <20100419051306.GA13315@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id DDE469E76E for ; Sun, 18 Apr 2010 22:13:09 -0700 (PDT) Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Zhenyu Wang Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org ClNpZ25lZC1vZmYtYnk6IFd1IEZlbmdndWFuZyA8ZmVuZ2d1YW5nLnd1QGludGVsLmNvbT4KLS0t CiB0b29scy9pbnRlbF9hdWRpb19kdW1wLmMgfCAgODk2ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA4MzMgaW5zZXJ0aW9ucygrKSwgNjMgZGVs ZXRpb25zKC0pCgotLS0gaW50ZWwtZ3B1LXRvb2xzLm9yaWcvdG9vbHMvaW50ZWxfYXVkaW9fZHVt cC5jCTIwMTAtMDQtMTMgMTU6MTc6MzYuMDAwMDAwMDAwICswODAwCisrKyBpbnRlbC1ncHUtdG9v bHMvdG9vbHMvaW50ZWxfYXVkaW9fZHVtcC5jCTIwMTAtMDQtMTkgMTM6MDc6MzMuMDAwMDAwMDAw ICswODAwCkBAIC0yNiw2NSArMjYsMTYgQEAKICAqCiAgKi8KIAotI2luY2x1ZGUgPHN0ZGlvLmg+ CisjZGVmaW5lIF9HTlVfU09VUkNFCisjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8c3Rk bGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRl IDxzdGRhcmcuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5o PgotI2luY2x1ZGUgPHBjaWFjY2Vzcy5oPgogI2luY2x1ZGUgPGVyci5oPgotI2luY2x1ZGUgPHVu aXN0ZC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8Z2V0b3B0Lmg+CiAjaW5jbHVk ZSA8YXJwYS9pbmV0Lmg+Ci0KICNpbmNsdWRlICJpbnRlbF9ncHVfdG9vbHMuaCIKIAotI2RlZmlu ZSBBVURfQ09ORklHCQkweDYyMDAwCi0jZGVmaW5lIEFVRF9ERUJVRwkJMHg2MjAxMAotI2RlZmlu ZSBBVURfVklEX0RJRAkJMHg2MjAyMAotI2RlZmluZSBBVURfUklECQkJMHg2MjAyNAotI2RlZmlu ZSBBVURfU1VCTl9DTlQJCTB4NjIwMjgKLSNkZWZpbmUgQVVEX0ZVTkNfR1JQCQkweDYyMDQwCi0j ZGVmaW5lIEFVRF9TVUJOX0NOVDIJCTB4NjIwNDQKLSNkZWZpbmUgQVVEX0dSUF9DQVAJCTB4NjIw NDgKLSNkZWZpbmUgQVVEX1BXUlNUCQkweDYyMDRjCi0jZGVmaW5lIEFVRF9TVVBQV1IJCTB4NjIw NTAKLSNkZWZpbmUgQVVEX1NJRAkJCTB4NjIwNTQKLSNkZWZpbmUgQVVEX09VVF9DV0NBUAkJMHg2 MjA3MAotI2RlZmluZSBBVURfT1VUX1BDTVNJWkUJCTB4NjIwNzQKLSNkZWZpbmUgQVVEX09VVF9T VFIJCTB4NjIwNzgKLSNkZWZpbmUgQVVEX09VVF9ESUdfQ05WVAkweDYyMDdjCi0jZGVmaW5lIEFV RF9PVVRfQ0hfU1RSCQkweDYyMDgwCi0jZGVmaW5lIEFVRF9PVVRfU1RSX0RFU0MJMHg2MjA4NAot I2RlZmluZSBBVURfUElOV19DQVAJCTB4NjIwYTAKLSNkZWZpbmUgQVVEX1BJTl9DQVAJCTB4NjIw YTQKLSNkZWZpbmUgQVVEX1BJTldfQ09OTkxORwkweDYyMGE4Ci0jZGVmaW5lIEFVRF9QSU5XX0NP Tk5MU1QJMHg2MjBhYwotI2RlZmluZSBBVURfUElOV19DTlRSCQkweDYyMGIwCi0jZGVmaW5lIEFV RF9QSU5XX1VOU09MUkVTUAkweDYyMGI4Ci0jZGVmaW5lIEFVRF9DTlRMX1NUCQkweDYyMGI0Ci0j ZGVmaW5lIEFVRF9QSU5XX0NPTkZJRwkJMHg2MjBiYwotI2RlZmluZSBBVURfSERNSVdfU1RBVFVT CTB4NjIwZDQKLSNkZWZpbmUgQVVEX0hETUlXX0hETUlFRElECTB4NjIxMGMKLSNkZWZpbmUgQVVE X0hETUlXX0lORk9GUgkweDYyMTE4Ci0jZGVmaW5lIEFVRF9DT05WX0NIQ05UIAkJMHg2MjEyMAot I2RlZmluZSBBVURfQ1RTX0VOQUJMRQkJMHg2MjEyOAotCi0jZGVmaW5lIFZJREVPX0RJUF9DVEwJ CTB4NjExNzAKLSNkZWZpbmUgVklERU9fRElQX0VOQUJMRQkoMTw8MzEpCi0jZGVmaW5lIFZJREVP X0RJUF9FTkFCTEVfQVZJCSgxPDwyMSkKLSNkZWZpbmUgVklERU9fRElQX0VOQUJMRV9WRU5ET1IJ KDE8PDIyKQotI2RlZmluZSBWSURFT19ESVBfRU5BQkxFX1NQRAkoMTw8MjQpCi0jZGVmaW5lIFZJ REVPX0RJUF9CVUZfQVZJCSgwPDwxOSkKLSNkZWZpbmUgVklERU9fRElQX0JVRl9WRU5ET1IJKDE8 PDE5KQotI2RlZmluZSBWSURFT19ESVBfQlVGX1NQRAkoMzw8MTkpCi0jZGVmaW5lIFZJREVPX0RJ UF9UUkFOU19PTkNFCSgwPDwxNikKLSNkZWZpbmUgVklERU9fRElQX1RSQU5TXzEJKDE8PDE2KQot I2RlZmluZSBWSURFT19ESVBfVFJBTlNfMgkoMjw8MTYpCi0KLSNkZWZpbmUgQVVESU9fSE9UUExV R19FTgkoMTw8MjQpCitzdGF0aWMgdWludDMyX3QgZGV2aWQ7CiAKIAogI2RlZmluZSBCSVRTVE8o bikJCShuID49IHNpemVvZihsb25nKSAqIDggPyB+MCA6ICgxVUwgPDwgKG4pKSAtIDEpCkBAIC0x MDMsNyArNTQsNyBAQAogI2RlZmluZSBkdW1wX3JlZyhyZWcsIGRlc2MpCQkJCQlcCiAgICAgZG8g ewkJCQkJCQlcCiAJICAgIGR3b3JkID0gSU5SRUcocmVnKTsJICAJCQkJXAotCSAgICBwcmludGYo IiUtMThzIDB4JTA4eCAgJXNcbiIsICMgcmVnLCBkd29yZCwgZGVzYyk7CVwKKwkgICAgcHJpbnRm KCIlLTIxcyAweCUwOHggICVzXG4iLCAjIHJlZywgZHdvcmQsIGRlc2MpOwlcCiAgICAgfSB3aGls ZSAoMCkKIAogCkBAIC0xMzgsOSArODksOSBAQCBzdGF0aWMgY2hhciAqc3RyZWFtX3R5cGVbXSA9 IHsKIAogc3RhdGljIGNoYXIgKmRpcF9wb3J0W10gPSB7CiAJWzBdID0gIlJlc2VydmVkIiwKLQlb MV0gPSAiSERNSSBCIiwKLQlbMl0gPSAiSERNSSBDIiwKLQlbM10gPSAiUmVzZXJ2ZWQiLAorCVsx XSA9ICJEaWdpdGFsIFBvcnQgQiIsCisJWzJdID0gIkRpZ2l0YWwgUG9ydCBDIiwKKwlbM10gPSAi RGlnaXRhbCBQb3J0IEQiLAogfTsKIAogc3RhdGljIGNoYXIgKmRpcF9pbmRleFtdID0gewpAQCAt MTcyLDYgKzEyMywyOSBAQCBzdGF0aWMgY2hhciAqdmlkZW9fZGlwX3RyYW5zW10gPSB7CiAJWzNd ID0gInJlc2VydmVkIiwKIH07CiAKK3N0YXRpYyBjaGFyICp0cmFuc190b19wb3J0X3NlbFtdID0g eworCVswXSA9ICJubyBwb3J0IiwKKwlbMV0gPSAiRGlnaXRhbCBQb3J0IEIiLAorCVsyXSA9ICJE aWdpdGFsIFBvcnQgQiIsCisJWzNdID0gIkRpZ2l0YWwgUG9ydCBCIiwKKwlbNF0gPSAiRGlnaXRh bCBQb3J0IEIiLAorCVs1IC4uLiA3XSA9ICJyZXNlcnZlZCIsCit9OworCitzdGF0aWMgY2hhciAq dHJhbnNjb2Rlcl9zZWxlY3RbXSA9IHsKKwlbMF0gPSAiVHJhbnNjb2RlciBBIiwKKwlbMV0gPSAi VHJhbnNjb2RlciBCIiwKKwlbMl0gPSAiVHJhbnNjb2RlciBDIiwKKwlbM10gPSAicmVzZXJ2ZWQi LAorfTsKKworc3RhdGljIGNoYXIgKmRwX3BvcnRfd2lkdGhbXSA9IHsKKwlbMF0gPSAieDEgbW9k ZSIsCisJWzFdID0gIngyIG1vZGUiLAorCVsyXSA9ICJ4NCBtb2RlIiwKKwlbM10gPSAicmVzZXJ2 ZWQiLAorfTsKKwogc3RhdGljIHZvaWQgZG9fc2VsZl90ZXN0cyh2b2lkKQogewogICAgIGlmIChC SVQoMSwgMCkgIT0gMSkKQEAgLTE4MiwxNSArMTU2LDYwIEBAIHN0YXRpYyB2b2lkIGRvX3NlbGZf dGVzdHModm9pZCkKIAkgICAgZXhpdCgzKTsKIH0KIAotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQorLyoKKyAqIEVhZ2xlTGFrZSByZWdpc3RlcnMKKyAqLworI2RlZmluZSBBVURfQ09O RklHCQkweDYyMDAwCisjZGVmaW5lIEFVRF9ERUJVRwkJMHg2MjAxMAorI2RlZmluZSBBVURfVklE X0RJRAkJMHg2MjAyMAorI2RlZmluZSBBVURfUklECQkJMHg2MjAyNAorI2RlZmluZSBBVURfU1VC Tl9DTlQJCTB4NjIwMjgKKyNkZWZpbmUgQVVEX0ZVTkNfR1JQCQkweDYyMDQwCisjZGVmaW5lIEFV RF9TVUJOX0NOVDIJCTB4NjIwNDQKKyNkZWZpbmUgQVVEX0dSUF9DQVAJCTB4NjIwNDgKKyNkZWZp bmUgQVVEX1BXUlNUCQkweDYyMDRjCisjZGVmaW5lIEFVRF9TVVBQV1IJCTB4NjIwNTAKKyNkZWZp bmUgQVVEX1NJRAkJCTB4NjIwNTQKKyNkZWZpbmUgQVVEX09VVF9DV0NBUAkJMHg2MjA3MAorI2Rl ZmluZSBBVURfT1VUX1BDTVNJWkUJCTB4NjIwNzQKKyNkZWZpbmUgQVVEX09VVF9TVFIJCTB4NjIw NzgKKyNkZWZpbmUgQVVEX09VVF9ESUdfQ05WVAkweDYyMDdjCisjZGVmaW5lIEFVRF9PVVRfQ0hf U1RSCQkweDYyMDgwCisjZGVmaW5lIEFVRF9PVVRfU1RSX0RFU0MJMHg2MjA4NAorI2RlZmluZSBB VURfUElOV19DQVAJCTB4NjIwYTAKKyNkZWZpbmUgQVVEX1BJTl9DQVAJCTB4NjIwYTQKKyNkZWZp bmUgQVVEX1BJTldfQ09OTkxORwkweDYyMGE4CisjZGVmaW5lIEFVRF9QSU5XX0NPTk5MU1QJMHg2 MjBhYworI2RlZmluZSBBVURfUElOV19DTlRSCQkweDYyMGIwCisjZGVmaW5lIEFVRF9QSU5XX1VO U09MUkVTUAkweDYyMGI4CisjZGVmaW5lIEFVRF9DTlRMX1NUCQkweDYyMGI0CisjZGVmaW5lIEFV RF9QSU5XX0NPTkZJRwkJMHg2MjBiYworI2RlZmluZSBBVURfSERNSVdfU1RBVFVTCTB4NjIwZDQK KyNkZWZpbmUgQVVEX0hETUlXX0hETUlFRElECTB4NjIxMGMKKyNkZWZpbmUgQVVEX0hETUlXX0lO Rk9GUgkweDYyMTE4CisjZGVmaW5lIEFVRF9DT05WX0NIQ05UIAkJMHg2MjEyMAorI2RlZmluZSBB VURfQ1RTX0VOQUJMRQkJMHg2MjEyOAorCisjZGVmaW5lIFZJREVPX0RJUF9DVEwJCTB4NjExNzAK KyNkZWZpbmUgVklERU9fRElQX0VOQUJMRQkoMTw8MzEpCisjZGVmaW5lIFZJREVPX0RJUF9FTkFC TEVfQVZJCSgxPDwyMSkKKyNkZWZpbmUgVklERU9fRElQX0VOQUJMRV9WRU5ET1IJKDE8PDIyKQor I2RlZmluZSBWSURFT19ESVBfRU5BQkxFX1NQRAkoMTw8MjQpCisjZGVmaW5lIFZJREVPX0RJUF9C VUZfQVZJCSgwPDwxOSkKKyNkZWZpbmUgVklERU9fRElQX0JVRl9WRU5ET1IJKDE8PDE5KQorI2Rl ZmluZSBWSURFT19ESVBfQlVGX1NQRAkoMzw8MTkpCisjZGVmaW5lIFZJREVPX0RJUF9UUkFOU19P TkNFCSgwPDwxNikKKyNkZWZpbmUgVklERU9fRElQX1RSQU5TXzEJKDE8PDE2KQorI2RlZmluZSBW SURFT19ESVBfVFJBTlNfMgkoMjw8MTYpCisKKyNkZWZpbmUgQVVESU9fSE9UUExVR19FTgkoMTw8 MjQpCisKKworc3RhdGljIHZvaWQgZHVtcF9lYWdsZWxha2Uodm9pZCkKIHsKICAgICB1aW50MzJf dCBkd29yZDsKICAgICBpbnQgaTsKIAotICAgIGRvX3NlbGZfdGVzdHMoKTsKLQotICAgIGludGVs X2dldF9tbWlvKGludGVsX2dldF9wY2lfZGV2aWNlKCkpOwotCiAgICAgLyogcHJpbnRmKCIlLTE4 cyAgICU4cyAgJXNcblxuIiwgInJlZ2lzdGVyIG5hbWUiLCAicmF3IHZhbHVlIiwgImRlc2NyaXB0 aW9uIik7ICovCiAKICAgICBkdW1wX3JlZyhWSURFT19ESVBfQ1RMLAkiVmlkZW8gRElQIENvbnRy b2wiKTsKQEAgLTQzMSw2ICs0NTAsNzU3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn dikKICAgICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQogCSAgICBwcmludGYoIiUwOHggIiwgaHRv bmwoSU5SRUcoQVVEX0hETUlXX0lORk9GUikpKTsKICAgICBwcmludGYoIlxuIik7Cit9CisKKyN1 bmRlZiBBVURfUklECisjdW5kZWYgQVVEX1ZJRF9ESUQKKyN1bmRlZiBBVURfUFdSU1QKKyN1bmRl ZiBBVURfT1VUX0NIX1NUUgorI3VuZGVmIEFVRF9IRE1JV19TVEFUVVMKKworLyoKKyAqIElyb25M YWtlIHJlZ2lzdGVycworICovCisjZGVmaW5lIEFVRF9DT05GSUdfQQkJMHhFMjAwMAorI2RlZmlu ZSBBVURfQ09ORklHX0IJCTB4RTIxMDAKKyNkZWZpbmUgQVVEX0NUU19FTkFCTEVfQQkweEUyMDI4 CisjZGVmaW5lIEFVRF9DVFNfRU5BQkxFX0IJMHhFMjEyOAorI2RlZmluZSBBVURfTUlTQ19DVFJM X0EJCTB4RTIwMTAKKyNkZWZpbmUgQVVEX01JU0NfQ1RSTF9CCQkweEUyMTEwCisjZGVmaW5lIEFV RF9WSURfRElECQkweEUyMDIwCisjZGVmaW5lIEFVRF9SSUQJCQkweEUyMDI0CisjZGVmaW5lIEFV RF9QV1JTVAkJMHhFMjA0QworI2RlZmluZSBBVURfUE9SVF9FTl9IRF9DRkcJMHhFMjA3QworI2Rl ZmluZSBBVURfT1VUX0RJR19DTlZUX0EJMHhFMjA4MAorI2RlZmluZSBBVURfT1VUX0RJR19DTlZU X0IJMHhFMjE4MAorI2RlZmluZSBBVURfT1VUX0NIX1NUUgkJMHhFMjA4OAorI2RlZmluZSBBVURf T1VUX1NUUl9ERVNDX0EJMHhFMjA4NAorI2RlZmluZSBBVURfT1VUX1NUUl9ERVNDX0IJMHhFMjE4 NAorI2RlZmluZSBBVURfUElOV19DT05OTE5HX0xJU1QJMHhFMjBBOAorI2RlZmluZSBBVURfUElO V19DT05OTE5HX1NFTAkweEUyMEFDCisjZGVmaW5lIEFVRF9DTlRMX1NUX0EJCTB4RTIwQjQKKyNk ZWZpbmUgQVVEX0NOVExfU1RfQgkJMHhFMjFCNAorI2RlZmluZSBBVURfQ05UTF9TVDIJCTB4RTIw QzAKKyNkZWZpbmUgQVVEX0hETUlXX1NUQVRVUwkweEUyMEQ0CisjZGVmaW5lIEFVRF9IRE1JV19I RE1JRURJRF9BCTB4RTIwNTAKKyNkZWZpbmUgQVVEX0hETUlXX0hETUlFRElEX0IJMHhFMjE1MAor I2RlZmluZSBBVURfSERNSVdfSU5GT0ZSX0EJMHhFMjA1NAorI2RlZmluZSBBVURfSERNSVdfSU5G T0ZSX0IJMHhFMjE1NAorCitzdGF0aWMgdm9pZCBkdW1wX2lyb25sYWtlKHZvaWQpCit7CisgICAg dWludDMyX3QgZHdvcmQ7CisgICAgaW50IGk7CisKKyAgICBkdW1wX3JlZyhIRE1JQiwJCQkic0RW Ty9IRE1JIFBvcnQgQiBDb250cm9sIik7CisgICAgZHVtcF9yZWcoSERNSUMsCQkJIkhETUkgUG9y dCBDIENvbnRyb2wiKTsKKyAgICBkdW1wX3JlZyhIRE1JRCwJCQkiSERNSSBQb3J0IEQgQ29udHJv bCIpOworICAgIGR1bXBfcmVnKEFVRF9DT05GSUdfQSwJCSJBdWRpbyBDb25maWd1cmF0aW9uIMKt IFRyYW5zY29kZXIgQSIpOworICAgIGR1bXBfcmVnKEFVRF9DT05GSUdfQiwJCSJBdWRpbyBDb25m aWd1cmF0aW9uIMKtIFRyYW5zY29kZXIgQiIpOworICAgIGR1bXBfcmVnKEFVRF9DVFNfRU5BQkxF X0EsCQkiQXVkaW8gQ1RTIFByb2dyYW1taW5nIEVuYWJsZSDCrSBUcmFuc2NvZGVyIEEiKTsKKyAg ICBkdW1wX3JlZyhBVURfQ1RTX0VOQUJMRV9CLAkJIkF1ZGlvIENUUyBQcm9ncmFtbWluZyBFbmFi bGUgwq0gVHJhbnNjb2RlciBCIik7CisgICAgZHVtcF9yZWcoQVVEX01JU0NfQ1RSTF9BLAkJIkF1 ZGlvIE1JU0MgQ29udHJvbCBmb3IgVHJhbnNjb2RlciBBIik7CisgICAgZHVtcF9yZWcoQVVEX01J U0NfQ1RSTF9CLAkJIkF1ZGlvIE1JU0MgQ29udHJvbCBmb3IgVHJhbnNjb2RlciBCIik7CisgICAg ZHVtcF9yZWcoQVVEX1ZJRF9ESUQsCQkiQXVkaW8gVmVuZG9yIElEIC8gRGV2aWNlIElEIik7Cisg ICAgZHVtcF9yZWcoQVVEX1JJRCwJCQkiQXVkaW8gUmV2aXNpb24gSUQiKTsKKyAgICBkdW1wX3Jl ZyhBVURfUFdSU1QsCQkJIkF1ZGlvIFBvd2VyIFN0YXRlIChGdW5jdGlvbiBHcm91cCwgQ29udmVy dG9yLCBQaW4gV2lkZ2V0KSIpOworICAgIGR1bXBfcmVnKEFVRF9QT1JUX0VOX0hEX0NGRywJIkF1 ZGlvIFBvcnQgRW5hYmxlIEhEQXVkaW8gQ29uZmlnIik7CisgICAgZHVtcF9yZWcoQVVEX09VVF9E SUdfQ05WVF9BLAkiQXVkaW8gRGlnaXRhbCBDb252ZXJ0ZXIgwq0gQ29udiBBIik7CisgICAgZHVt cF9yZWcoQVVEX09VVF9ESUdfQ05WVF9CLAkiQXVkaW8gRGlnaXRhbCBDb252ZXJ0ZXIgwq0gQ29u diBCIik7CisgICAgZHVtcF9yZWcoQVVEX09VVF9DSF9TVFIsCQkiQXVkaW8gQ2hhbm5lbCBJRCBh bmQgU3RyZWFtIElEIik7CisgICAgZHVtcF9yZWcoQVVEX09VVF9TVFJfREVTQ19BLAkiQXVkaW8g U3RyZWFtIERlc2NyaXB0b3IgRm9ybWF0IMKtIENvbnYgQSIpOworICAgIGR1bXBfcmVnKEFVRF9P VVRfU1RSX0RFU0NfQiwJIkF1ZGlvIFN0cmVhbSBEZXNjcmlwdG9yIEZvcm1hdCDCrSBDb252IEIi KTsKKyAgICBkdW1wX3JlZyhBVURfUElOV19DT05OTE5HX0xJU1QsCSJBdWRpbyBDb25uZWN0aW9u IExpc3QiKTsKKyAgICBkdW1wX3JlZyhBVURfUElOV19DT05OTE5HX1NFTCwJIkF1ZGlvIENvbm5l Y3Rpb24gU2VsZWN0Iik7CisgICAgZHVtcF9yZWcoQVVEX0NOVExfU1RfQSwJCSJBdWRpbyBDb250 cm9sIFN0YXRlIFJlZ2lzdGVyIMKtIFRyYW5zY29kZXIgQSIpOworICAgIGR1bXBfcmVnKEFVRF9D TlRMX1NUX0IsCQkiQXVkaW8gQ29udHJvbCBTdGF0ZSBSZWdpc3RlciDCrSBUcmFuc2NvZGVyIEIi KTsKKyAgICBkdW1wX3JlZyhBVURfQ05UTF9TVDIsCQkiQXVkaW8gQ29udHJvbCBTdGF0ZSAyIik7 CisgICAgZHVtcF9yZWcoQVVEX0hETUlXX1NUQVRVUywJCSJBdWRpbyBIRE1JIFN0YXR1cyIpOwor ICAgIGR1bXBfcmVnKEFVRF9IRE1JV19IRE1JRURJRF9BLAkiSERNSSBEYXRhIEVESUQgQmxvY2sg wq0gVHJhbnNjb2RlciBBIik7CisgICAgZHVtcF9yZWcoQVVEX0hETUlXX0hETUlFRElEX0IsCSJI RE1JIERhdGEgRURJRCBCbG9jayDCrSBUcmFuc2NvZGVyIEIiKTsKKyAgICBkdW1wX3JlZyhBVURf SERNSVdfSU5GT0ZSX0EsCSJBdWRpbyBXaWRnZXQgRGF0YSBJc2xhbmQgUGFja2V0IMKtIFRyYW5z Y29kZXIgQSIpOworICAgIGR1bXBfcmVnKEFVRF9IRE1JV19JTkZPRlJfQiwJIkF1ZGlvIFdpZGdl dCBEYXRhIElzbGFuZCBQYWNrZXQgwq0gVHJhbnNjb2RlciBCIik7CisKKyAgICBwcmludGYoIlxu RGV0YWlsczpcblxuIik7CisKKyAgICBkd29yZCA9IElOUkVHKEFVRF9WSURfRElEKTsKKyAgICBw cmludGYoIkFVRF9WSURfRElEIHZlbmRvciBpZFx0XHRcdFx0XHQweCV4XG4iLCBkd29yZCA+PiAx Nik7CisgICAgcHJpbnRmKCJBVURfVklEX0RJRCBkZXZpY2UgaWRcdFx0XHRcdFx0MHgleFxuIiwg ZHdvcmQgJiAweGZmZmYpOworCisgICAgZHdvcmQgPSBJTlJFRyhBVURfUklEKTsKKyAgICBwcmlu dGYoIkFVRF9SSUQgTWFqb3JfUmV2aXNpb25cdFx0XHRcdFx0MHglbHhcbiIsIEJJVFMoZHdvcmQs IDIzLCAyMCkpOworICAgIHByaW50ZigiQVVEX1JJRCBNaW5vcl9SZXZpc2lvblx0XHRcdFx0XHQw eCVseFxuIiwgQklUUyhkd29yZCwgMTksIDE2KSk7CisgICAgcHJpbnRmKCJBVURfUklEIFJldmlz aW9uX0lkXHRcdFx0XHRcdDB4JWx4XG4iLCAgICBCSVRTKGR3b3JkLCAxNSwgOCkpOworICAgIHBy aW50ZigiQVVEX1JJRCBTdGVwcGluZ19JZFx0XHRcdFx0XHQweCVseFxuIiwgICAgQklUUyhkd29y ZCwgNywgMCkpOworCisgICAgZHdvcmQgPSBJTlJFRyhIRE1JQik7CisgICAgcHJpbnRmKCJIRE1J QiBIRE1JQl9FbmFibGVcdFx0XHRcdFx0JXVcbiIsICAgICAgISEoZHdvcmQgJiBTRFZPX0VOQUJM RSkpOworICAgIHByaW50ZigiSERNSUIgVHJhbnNjb2Rlcl9TZWxlY3RcdFx0XHRcdFx0JXNcbiIs IEJJVChkd29yZCwgMzApID8gIlRyYW5zY29kZXIgQiIgOiAiVHJhbnNjb2RlciBBIik7CisgICAg cHJpbnRmKCJIRE1JQiBIRENQX1BvcnRfU2VsZWN0XHRcdFx0XHRcdCVsdVxuIiwgQklUKGR3b3Jk LCA1KSk7CisgICAgcHJpbnRmKCJIRE1JQiBEaWdpdGFsX1BvcnRfRF9EZXRlY3RlZFx0XHRcdFx0 JWx1XG4iLCBCSVQoZHdvcmQsIDIpKTsKKyAgICBwcmludGYoIkhETUlCIE51bGxfcGFja2V0c19l bmFibGVkX2R1cmluZ19Wc3luY1x0XHRcdCV1XG4iLCAgISEoZHdvcmQgJiBTRFZPX05VTExfUEFD S0VUU19EVVJJTkdfVlNZTkMpKTsKKyAgICBwcmludGYoIkhETUlCIEF1ZGlvX091dHB1dF9FbmFi bGVcdFx0XHRcdCV1XG4iLCAhIShkd29yZCAmIFNEVk9fQVVESU9fRU5BQkxFKSk7CisKKyAgICBk d29yZCA9IElOUkVHKEhETUlDKTsKKyAgICBwcmludGYoIkhETUlDIEhETUlDX0VuYWJsZVx0XHRc dFx0XHQldVxuIiwgICAgICAhIShkd29yZCAmIFNEVk9fRU5BQkxFKSk7CisgICAgcHJpbnRmKCJI RE1JQyBUcmFuc2NvZGVyX1NlbGVjdFx0XHRcdFx0XHQlc1xuIiwgQklUKGR3b3JkLCAzMCkgPyAi VHJhbnNjb2RlciBCIiA6ICJUcmFuc2NvZGVyIEEiKTsKKyAgICBwcmludGYoIkhETUlDIEhEQ1Bf UG9ydF9TZWxlY3RcdFx0XHRcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDUpKTsKKyAgICBwcmludGYo IkhETUlDIERpZ2l0YWxfUG9ydF9EX0RldGVjdGVkXHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwg MikpOworICAgIHByaW50ZigiSERNSUMgTnVsbF9wYWNrZXRzX2VuYWJsZWRfZHVyaW5nX1ZzeW5j XHRcdFx0JXVcbiIsICAhIShkd29yZCAmIFNEVk9fTlVMTF9QQUNLRVRTX0RVUklOR19WU1lOQykp OworICAgIHByaW50ZigiSERNSUMgQXVkaW9fT3V0cHV0X0VuYWJsZVx0XHRcdFx0JXVcbiIsICEh KGR3b3JkICYgU0RWT19BVURJT19FTkFCTEUpKTsKKworICAgIGR3b3JkID0gSU5SRUcoSERNSUQp OworICAgIHByaW50ZigiSERNSUQgSERNSURfRW5hYmxlXHRcdFx0XHRcdCV1XG4iLCAgICAgICEh KGR3b3JkICYgU0RWT19FTkFCTEUpKTsKKyAgICBwcmludGYoIkhETUlEIFRyYW5zY29kZXJfU2Vs ZWN0XHRcdFx0XHRcdCVzXG4iLCBCSVQoZHdvcmQsIDMwKSA/ICJUcmFuc2NvZGVyIEIiIDogIlRy YW5zY29kZXIgQSIpOworICAgIHByaW50ZigiSERNSUQgSERDUF9Qb3J0X1NlbGVjdFx0XHRcdFx0 XHQlbHVcbiIsIEJJVChkd29yZCwgNSkpOworICAgIHByaW50ZigiSERNSUQgRGlnaXRhbF9Qb3J0 X0RfRGV0ZWN0ZWRcdFx0XHRcdCVsdVxuIiwgQklUKGR3b3JkLCAyKSk7CisgICAgcHJpbnRmKCJI RE1JRCBOdWxsX3BhY2tldHNfZW5hYmxlZF9kdXJpbmdfVnN5bmNcdFx0XHQldVxuIiwgICEhKGR3 b3JkICYgU0RWT19OVUxMX1BBQ0tFVFNfRFVSSU5HX1ZTWU5DKSk7CisgICAgcHJpbnRmKCJIRE1J RCBBdWRpb19PdXRwdXRfRW5hYmxlXHRcdFx0XHQldVxuIiwgISEoZHdvcmQgJiBTRFZPX0FVRElP X0VOQUJMRSkpOworCisgICAgZHdvcmQgPSBJTlJFRyhBVURfQ09ORklHX0EpOworICAgIHByaW50 ZigiQVVEX0NPTkZJR19BICBQaXhlbF9DbG9ja1x0XHRcdFx0WzB4JWx4XSAlc1xuIiwgQklUUyhk d29yZCwgMTksIDE2KSwKKwkJICAgIE9QTkFNRShwaXhlbF9jbG9jaywgQklUUyhkd29yZCwgMTks IDE2KSkpOworICAgIGR3b3JkID0gSU5SRUcoQVVEX0NPTkZJR19CKTsKKyAgICBwcmludGYoIkFV RF9DT05GSUdfQiAgUGl4ZWxfQ2xvY2tcdFx0XHRcdFsweCVseF0gJXNcbiIsIEJJVFMoZHdvcmQs IDE5LCAxNiksCisJCSAgICBPUE5BTUUocGl4ZWxfY2xvY2ssIEJJVFMoZHdvcmQsIDE5LCAxNikp KTsKKworICAgIGR3b3JkID0gSU5SRUcoQVVEX0NUU19FTkFCTEVfQSk7CisgICAgcHJpbnRmKCJB VURfQ1RTX0VOQUJMRV9BICBFbmFibGVfQ1RTX29yX01fcHJvZ3JhbW1pbmdcdFx0JWx1XG4iLCBC SVQoZHdvcmQsIDIwKSk7CisgICAgcHJpbnRmKCJBVURfQ1RTX0VOQUJMRV9BICBDVFMvTSB2YWx1 ZSBJbmRleFx0XHRcdCVzXG4iLCBCSVQoZHdvcmQsIDIxKSA/ICJDVFMiIDogIk0iKTsKKyAgICBw cmludGYoIkFVRF9DVFNfRU5BQkxFX0EgIENUU19wcm9ncmFtbWluZ1x0XHRcdCUjbHhcbiIsIEJJ VFMoZHdvcmQsIDE5LCAwKSk7CisgICAgZHdvcmQgPSBJTlJFRyhBVURfQ1RTX0VOQUJMRV9CKTsK KyAgICBwcmludGYoIkFVRF9DVFNfRU5BQkxFX0IgIEVuYWJsZV9DVFNfb3JfTV9wcm9ncmFtbWlu Z1x0XHQlbHVcbiIsIEJJVChkd29yZCwgMjApKTsKKyAgICBwcmludGYoIkFVRF9DVFNfRU5BQkxF X0IgIENUUy9NIHZhbHVlIEluZGV4XHRcdFx0JXNcbiIsIEJJVChkd29yZCwgMjEpID8gIkNUUyIg OiAiTSIpOworICAgIHByaW50ZigiQVVEX0NUU19FTkFCTEVfQiAgQ1RTX3Byb2dyYW1taW5nXHRc dFx0JSNseFxuIiwgQklUUyhkd29yZCwgMTksIDApKTsKKworICAgIGR3b3JkID0gSU5SRUcoQVVE X01JU0NfQ1RSTF9BKTsKKyAgICBwcmludGYoIkFVRF9NSVNDX0NUUkxfQSAgU2FtcGxlX0ZhYnJp Y2F0aW9uX0VOX2JpdFx0XHQlbHVcbiIsCUJJVChkd29yZCwgMikpOworICAgIHByaW50ZigiQVVE X01JU0NfQ1RSTF9BICBTYW1wbGVfcHJlc2VudF9EaXNhYmxlXHRcdFx0JWx1XG4iLAlCSVQoZHdv cmQsIDgpKTsKKyAgICBwcmludGYoIkFVRF9NSVNDX0NUUkxfQSAgT3V0cHV0X0RlbGF5XHRcdFx0 XHQlbHVcbiIsCQlCSVRTKGR3b3JkLCA3LCA0KSk7CisgICAgcHJpbnRmKCJBVURfTUlTQ19DVFJM X0EgIFByb19BbGxvd2VkXHRcdFx0XHQlbHVcbiIsCQkJQklUKGR3b3JkLCAxKSk7CisgICAgZHdv cmQgPSBJTlJFRyhBVURfTUlTQ19DVFJMX0IpOworICAgIHByaW50ZigiQVVEX01JU0NfQ1RSTF9C ICBTYW1wbGVfRmFicmljYXRpb25fRU5fYml0XHRcdCVsdVxuIiwJQklUKGR3b3JkLCAyKSk7Cisg ICAgcHJpbnRmKCJBVURfTUlTQ19DVFJMX0IgIFNhbXBsZV9wcmVzZW50X0Rpc2FibGVcdFx0XHQl bHVcbiIsCUJJVChkd29yZCwgOCkpOworICAgIHByaW50ZigiQVVEX01JU0NfQ1RSTF9CICBPdXRw dXRfRGVsYXlcdFx0XHRcdCVsdVxuIiwJCUJJVFMoZHdvcmQsIDcsIDQpKTsKKyAgICBwcmludGYo IkFVRF9NSVNDX0NUUkxfQiAgUHJvX0FsbG93ZWRcdFx0XHRcdCVsdVxuIiwJCQlCSVQoZHdvcmQs IDEpKTsKKworICAgIGR3b3JkID0gSU5SRUcoQVVEX1BXUlNUKTsKKyAgICBwcmludGYoIkFVRF9Q V1JTVCAgRnVuY3Rpb25fR3JvdXBfRGV2aWNlX1Bvd2VyX1N0YXRlX0N1cnJlbnRcdCVzXG4iLCBw b3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAyMywgMjIpXSk7CisgICAgcHJpbnRmKCJBVURfUFdSU1Qg IEZ1bmN0aW9uX0dyb3VwX0RldmljZV9Qb3dlcl9TdGF0ZV9TZXQgICAgXHQlc1xuIiwgcG93ZXJf c3RhdGVbQklUUyhkd29yZCwgMjEsIDIwKV0pOworICAgIHByaW50ZigiQVVEX1BXUlNUICBDb252 ZXJ0b3JCX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJyZW50ICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRl W0JJVFMoZHdvcmQsIDE5LCAxOCldKTsKKyAgICBwcmludGYoIkFVRF9QV1JTVCAgQ29udmVydG9y Ql9XaWRnZXRfUG93ZXJfU3RhdGVfUmVxdWVzdGVkICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtCSVRT KGR3b3JkLCAxNywgMTYpXSk7CisgICAgcHJpbnRmKCJBVURfUFdSU1QgIENvbnZlcnRvckFfV2lk Z2V0X1Bvd2VyX1N0YXRlX0N1cnJlbnQgICAgXHQlc1xuIiwgcG93ZXJfc3RhdGVbQklUUyhkd29y ZCwgMTUsIDE0KV0pOworICAgIHByaW50ZigiQVVEX1BXUlNUICBDb252ZXJ0b3JBX1dpZGdldF9Q b3dlcl9TdGF0ZV9SZXF1c3RlZCAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsIDEz LCAxMildKTsKKyAgICBwcmludGYoIkFVRF9QV1JTVCAgUGluRF9XaWRnZXRfUG93ZXJfU3RhdGVf Q3VycmVudCAgICAgICAgICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAxMSwgMTAp XSk7CisgICAgcHJpbnRmKCJBVURfUFdSU1QgIFBpbkRfV2lkZ2V0X1Bvd2VyX1N0YXRlX1NldCAg ICAgICAgICAgICAgXHQlc1xuIiwgcG93ZXJfc3RhdGVbQklUUyhkd29yZCwgIDksICA4KV0pOwor ICAgIHByaW50ZigiQVVEX1BXUlNUICBQaW5DX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJyZW50ICAg ICAgICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsICA3LCAgNildKTsKKyAgICBw cmludGYoIkFVRF9QV1JTVCAgUGluQ19XaWRnZXRfUG93ZXJfU3RhdGVfU2V0ICAgICAgICAgICAg ICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAgNSwgIDQpXSk7CisgICAgcHJpbnRm KCJBVURfUFdSU1QgIFBpbkJfV2lkZ2V0X1Bvd2VyX1N0YXRlX0N1cnJlbnQgICAgICAgICAgXHQl c1xuIiwgcG93ZXJfc3RhdGVbQklUUyhkd29yZCwgIDMsICAyKV0pOworICAgIHByaW50ZigiQVVE X1BXUlNUICBQaW5CX1dpZGdldF9Qb3dlcl9TdGF0ZV9TZXQgICAgICAgICAgICAgIFx0JXNcbiIs IHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsICAxLCAgMCldKTsKKworICAgIGR3b3JkID0gSU5SRUco QVVEX1BPUlRfRU5fSERfQ0ZHKTsKKyAgICBwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAgQ29u dmVydG9yX0FfRGlnZW5cdFx0XHQlbHVcbiIsCUJJVChkd29yZCwgMCkpOworICAgIHByaW50Zigi QVVEX1BPUlRfRU5fSERfQ0ZHICBDb252ZXJ0b3JfQl9EaWdlblx0XHRcdCVsdVxuIiwJQklUKGR3 b3JkLCAxKSk7CisgICAgcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIENvbnZlcnRvckFfU3Ry ZWFtX0lEXHRcdCVsdVxuIiwJQklUUyhkd29yZCwgIDcsIDQpKTsKKyAgICBwcmludGYoIkFVRF9Q T1JUX0VOX0hEX0NGRyAgQ29udmVydG9yQl9TdHJlYW1fSURcdFx0JWx1XG4iLAlCSVRTKGR3b3Jk LCAxMSwgOCkpOworICAgIHByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBQb3J0X0JfT3V0X0Vu YWJsZVx0XHRcdCVsdVxuIiwJQklUKGR3b3JkLCAxMikpOworICAgIHByaW50ZigiQVVEX1BPUlRf RU5fSERfQ0ZHICBQb3J0X0NfT3V0X0VuYWJsZVx0XHRcdCVsdVxuIiwJQklUKGR3b3JkLCAxMykp OworICAgIHByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBQb3J0X0RfT3V0X0VuYWJsZVx0XHRc dCVsdVxuIiwJQklUKGR3b3JkLCAxNCkpOworICAgIHByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZH ICBQb3J0X0JfQW1wX011dGVfU3RhdHVzXHRcdCVsdVxuIiwgQklUKGR3b3JkLCAxNikpOworICAg IHByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBQb3J0X0NfQW1wX011dGVfU3RhdHVzXHRcdCVs dVxuIiwgQklUKGR3b3JkLCAxNykpOworICAgIHByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBQ b3J0X0RfQW1wX011dGVfU3RhdHVzXHRcdCVsdVxuIiwgQklUKGR3b3JkLCAxOCkpOworCisgICAg ZHdvcmQgPSBJTlJFRyhBVURfT1VUX0RJR19DTlZUX0EpOworICAgIHByaW50ZigiQVVEX09VVF9E SUdfQ05WVF9BICBWXHRcdFx0XHRcdCVsdVxuIiwJCUJJVChkd29yZCwgMSkpOworICAgIHByaW50 ZigiQVVEX09VVF9ESUdfQ05WVF9BICBWQ0ZHXHRcdFx0XHQlbHVcbiIsCQlCSVQoZHdvcmQsIDIp KTsKKyAgICBwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQSAgUFJFXHRcdFx0XHRcdCVsdVxuIiwJ CUJJVChkd29yZCwgMykpOworICAgIHByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9BICBDb3B5XHRc dFx0XHQlbHVcbiIsCQlCSVQoZHdvcmQsIDQpKTsKKyAgICBwcmludGYoIkFVRF9PVVRfRElHX0NO VlRfQSAgTm9uLUF1ZGlvXHRcdFx0XHQweCVseFxuIiwJQklUKGR3b3JkLCA1KSk7CisgICAgcHJp bnRmKCJBVURfT1VUX0RJR19DTlZUX0EgIFBST1x0XHRcdFx0XHQlbHVcbiIsCQlCSVQoZHdvcmQs IDYpKTsKKyAgICBwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQSAgTGV2ZWxcdFx0XHRcdCVsdVxu IiwJCUJJVChkd29yZCwgNykpOworICAgIHByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9BICBDYXRl Z29yeV9Db2RlXHRcdFx0JWx1XG4iLAlCSVRTKGR3b3JkLCAxNCwgOCkpOworICAgIHByaW50Zigi QVVEX09VVF9ESUdfQ05WVF9BICBMb3dlc3RfQ2hhbm5lbF9OdW1iZXJcdFx0JWx1XG4iLEJJVFMo ZHdvcmQsIDE5LCAxNikpOworICAgIHByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9BICBTdHJlYW1f SURcdFx0XHRcdFx0XHQlbHVcbiIsCUJJVFMoZHdvcmQsIDIzLCAyMCkpOworCisgICAgZHdvcmQg PSBJTlJFRyhBVURfT1VUX0RJR19DTlZUX0IpOworICAgIHByaW50ZigiQVVEX09VVF9ESUdfQ05W VF9CICBWXHRcdFx0XHRcdCVsdVxuIiwJCUJJVChkd29yZCwgMSkpOworICAgIHByaW50ZigiQVVE X09VVF9ESUdfQ05WVF9CICBWQ0ZHXHRcdFx0XHQlbHVcbiIsCQlCSVQoZHdvcmQsIDIpKTsKKyAg ICBwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQiAgUFJFXHRcdFx0XHRcdCVsdVxuIiwJCUJJVChk d29yZCwgMykpOworICAgIHByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9CICBDb3B5XHRcdFx0XHQl bHVcbiIsCQlCSVQoZHdvcmQsIDQpKTsKKyAgICBwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQiAg Tm9uLUF1ZGlvXHRcdFx0XHQweCVseFxuIiwJQklUKGR3b3JkLCA1KSk7CisgICAgcHJpbnRmKCJB VURfT1VUX0RJR19DTlZUX0IgIFBST1x0XHRcdFx0XHQlbHVcbiIsCQlCSVQoZHdvcmQsIDYpKTsK KyAgICBwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQiAgTGV2ZWxcdFx0XHRcdCVsdVxuIiwJCUJJ VChkd29yZCwgNykpOworICAgIHByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9CICBDYXRlZ29yeV9D b2RlXHRcdFx0JWx1XG4iLAlCSVRTKGR3b3JkLCAxNCwgOCkpOworICAgIHByaW50ZigiQVVEX09V VF9ESUdfQ05WVF9CICBMb3dlc3RfQ2hhbm5lbF9OdW1iZXJcdFx0JWx1XG4iLEJJVFMoZHdvcmQs IDE5LCAxNikpOworICAgIHByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9CICBTdHJlYW1fSURcdFx0 XHQlbHVcbiIsCQlCSVRTKGR3b3JkLCAyMywgMjApKTsKKworICAgIHByaW50ZigiQVVEX09VVF9D SF9TVFIgIENvbnZlcnRlcl9DaGFubmVsX01BUAlQT1JUQglQT1JUQwlQT1JURFxuIik7CisgICAg Zm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworCSAgICBPVVRSRUcoQVVEX09VVF9DSF9TVFIsIGkg fCAoaSA8PCA4KSB8IChpIDw8IDE2KSk7CisJICAgIGR3b3JkID0gSU5SRUcoQVVEX09VVF9DSF9T VFIpOworCSAgICBwcmludGYoIlx0XHRcdFx0JWx1XHQlbHVcdCVsdVx0JWx1XG4iLAorCQkgICAx ICsgQklUUyhkd29yZCwgIDMsICAwKSwKKwkJICAgMSArIEJJVFMoZHdvcmQsICA3LCAgNCksCisJ CSAgIDEgKyBCSVRTKGR3b3JkLCAxNSwgMTIpLAorCQkgICAxICsgQklUUyhkd29yZCwgMjMsIDIw KSk7CisgICAgfQorCisgICAgZHdvcmQgPSBJTlJFRyhBVURfT1VUX1NUUl9ERVNDX0EpOworICAg IHByaW50ZigiQVVEX09VVF9TVFJfREVTQ19BICBIQlJfZW5hYmxlXHRcdFx0XHQlbHVcbiIsCSBC SVRTKGR3b3JkLCAyOCwgMjcpKTsKKyAgICBwcmludGYoIkFVRF9PVVRfU1RSX0RFU0NfQSAgQ29u dmVydG9yX0NoYW5uZWxfQ291bnRcdFx0JWx1XG4iLCBCSVRTKGR3b3JkLCAyMCwgMTYpKTsKKyAg ICBwcmludGYoIkFVRF9PVVRfU1RSX0RFU0NfQSAgQml0c19wZXJfU2FtcGxlXHRcdFx0JWx1XG4i LAkgQklUUyhkd29yZCwgNiwgNCkpOworICAgIHByaW50ZigiQVVEX09VVF9TVFJfREVTQ19BICBO dW1iZXJfb2ZfQ2hhbm5lbHNfaW5fYV9TdHJlYW1cdCVsdVxuIiwgMSArIEJJVFMoZHdvcmQsIDMs IDApKTsKKworICAgIGR3b3JkID0gSU5SRUcoQVVEX09VVF9TVFJfREVTQ19CKTsKKyAgICBwcmlu dGYoIkFVRF9PVVRfU1RSX0RFU0NfQiAgSEJSX2VuYWJsZVx0XHRcdFx0JWx1XG4iLAkgQklUUyhk d29yZCwgMjgsIDI3KSk7CisgICAgcHJpbnRmKCJBVURfT1VUX1NUUl9ERVNDX0IgIENvbnZlcnRv cl9DaGFubmVsX0NvdW50XHRcdCVsdVxuIiwgQklUUyhkd29yZCwgMjAsIDE2KSk7CisgICAgcHJp bnRmKCJBVURfT1VUX1NUUl9ERVNDX0IgIEJpdHNfcGVyX1NhbXBsZVx0XHRcdCVsdVxuIiwJIEJJ VFMoZHdvcmQsIDYsIDQpKTsKKyAgICBwcmludGYoIkFVRF9PVVRfU1RSX0RFU0NfQiAgTnVtYmVy X29mX0NoYW5uZWxzX2luX2FfU3RyZWFtXHQlbHVcbiIsIDEgKyBCSVRTKGR3b3JkLCAzLCAwKSk7 CisKKyAgICBkd29yZCA9IElOUkVHKEFVRF9QSU5XX0NPTk5MTkdfU0VMKTsKKyAgICBwcmludGYo IkFVRF9QSU5XX0NPTk5MTkdfU0VMICBDb25uZWN0aW9uX3NlbGVjdF9Db250cm9sX0JcdCVsdVxu IiwgQklUUyhkd29yZCwgIDcsICAwKSk7CisgICAgcHJpbnRmKCJBVURfUElOV19DT05OTE5HX1NF TCAgQ29ubmVjdGlvbl9zZWxlY3RfQ29udHJvbF9DXHQlbHVcbiIsIEJJVFMoZHdvcmQsIDE1LCAg OCkpOworICAgIHByaW50ZigiQVVEX1BJTldfQ09OTkxOR19TRUwgIENvbm5lY3Rpb25fc2VsZWN0 X0NvbnRyb2xfRFx0JWx1XG4iLCBCSVRTKGR3b3JkLCAyMywgMTYpKTsKKworICAgIGR3b3JkID0g SU5SRUcoQVVEX0NOVExfU1RfQSk7CisgICAgcHJpbnRmKCJBVURfQ05UTF9TVF9BICBESVBfUG9y dF9TZWxlY3RcdFx0XHRcdFslI2x4XSAlc1xuIiwKKwkJCQkJQklUUyhkd29yZCwgMzAsIDI5KSwg ZGlwX3BvcnRbQklUUyhkd29yZCwgMzAsIDI5KV0pOworICAgIHByaW50ZigiQVVEX0NOVExfU1Rf QSAgRElQX3R5cGVfZW5hYmxlX3N0YXR1cyBBdWRpbyBESVBcdFx0JWx1XG4iLCBCSVQoZHdvcmQs IDIxKSk7CisgICAgcHJpbnRmKCJBVURfQ05UTF9TVF9BICBESVBfdHlwZV9lbmFibGVfc3RhdHVz IEdlbmVyaWMgMSBBQ1AgRElQXHQlbHVcbiIsIEJJVChkd29yZCwgMjIpKTsKKyAgICBwcmludGYo IkFVRF9DTlRMX1NUX0EgIERJUF90eXBlX2VuYWJsZV9zdGF0dXMgR2VuZXJpYyAyIERJUFx0JWx1 XG4iLCBCSVQoZHdvcmQsIDIzKSk7CisgICAgcHJpbnRmKCJBVURfQ05UTF9TVF9BICBESVBfdHJh bnNtaXNzaW9uX2ZyZXF1ZW5jeVx0XHRbMHglbHhdICVzXG4iLAorCQkJCQlCSVRTKGR3b3JkLCAx NywgMTYpLCBkaXBfdHJhbnNbQklUUyhkd29yZCwgMTcsIDE2KV0pOworICAgIHByaW50ZigiQVVE X0NOVExfU1RfQSAgRUxEX0FDS1x0XHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgNCkpOworICAg IHByaW50ZigiQVVEX0NOVExfU1RfQSAgRUxEX2J1ZmZlcl9zaXplXHRcdFx0XHQlbHVcbiIsIEJJ VFMoZHdvcmQsIDE0LCAxMCkpOworCisgICAgZHdvcmQgPSBJTlJFRyhBVURfQ05UTF9TVF9CKTsK KyAgICBwcmludGYoIkFVRF9DTlRMX1NUX0IgIERJUF9Qb3J0X1NlbGVjdFx0XHRcdFx0WyUjbHhd ICVzXG4iLAorCQkJCQlCSVRTKGR3b3JkLCAzMCwgMjkpLCBkaXBfcG9ydFtCSVRTKGR3b3JkLCAz MCwgMjkpXSk7CisgICAgcHJpbnRmKCJBVURfQ05UTF9TVF9CICBESVBfdHlwZV9lbmFibGVfc3Rh dHVzIEF1ZGlvIERJUFx0XHQlbHVcbiIsIEJJVChkd29yZCwgMjEpKTsKKyAgICBwcmludGYoIkFV RF9DTlRMX1NUX0IgIERJUF90eXBlX2VuYWJsZV9zdGF0dXMgR2VuZXJpYyAxIEFDUCBESVBcdCVs dVxuIiwgQklUKGR3b3JkLCAyMikpOworICAgIHByaW50ZigiQVVEX0NOVExfU1RfQiAgRElQX3R5 cGVfZW5hYmxlX3N0YXR1cyBHZW5lcmljIDIgRElQXHQlbHVcbiIsIEJJVChkd29yZCwgMjMpKTsK KyAgICBwcmludGYoIkFVRF9DTlRMX1NUX0IgIERJUF90cmFuc21pc3Npb25fZnJlcXVlbmN5XHRc dFsweCVseF0gJXNcbiIsCisJCQkJCUJJVFMoZHdvcmQsIDE3LCAxNiksIGRpcF90cmFuc1tCSVRT KGR3b3JkLCAxNywgMTYpXSk7CisgICAgcHJpbnRmKCJBVURfQ05UTF9TVF9CICBFTERfQUNLXHRc dFx0XHRcdCVsdVxuIiwgQklUKGR3b3JkLCA0KSk7CisgICAgcHJpbnRmKCJBVURfQ05UTF9TVF9C ICBFTERfYnVmZmVyX3NpemVcdFx0XHRcdCVsdVxuIiwgQklUUyhkd29yZCwgMTQsIDEwKSk7CisK KyAgICBkd29yZCA9IElOUkVHKEFVRF9DTlRMX1NUMik7CisgICAgcHJpbnRmKCJBVURfQ05UTF9T VDIgIENQX1JlYWR5Qlx0XHRcdFx0XHQlbHVcbiIsCUJJVChkd29yZCwgMSkpOworICAgIHByaW50 ZigiQVVEX0NOVExfU1QyICBFTERfdmFsaWRCXHRcdFx0XHQlbHVcbiIsCUJJVChkd29yZCwgMCkp OworICAgIHByaW50ZigiQVVEX0NOVExfU1QyICBDUF9SZWFkeUNcdFx0XHRcdFx0JWx1XG4iLAlC SVQoZHdvcmQsIDUpKTsKKyAgICBwcmludGYoIkFVRF9DTlRMX1NUMiAgRUxEX3ZhbGlkQ1x0XHRc dFx0JWx1XG4iLAlCSVQoZHdvcmQsIDQpKTsKKyAgICBwcmludGYoIkFVRF9DTlRMX1NUMiAgQ1Bf UmVhZHlEXHRcdFx0XHRcdCVsdVxuIiwJQklUKGR3b3JkLCA5KSk7CisgICAgcHJpbnRmKCJBVURf Q05UTF9TVDIgIEVMRF92YWxpZERcdFx0XHRcdCVsdVxuIiwJQklUKGR3b3JkLCA4KSk7CisKKyAg ICBkd29yZCA9IElOUkVHKEFVRF9IRE1JV19TVEFUVVMpOworICAgIHByaW50ZigiQVVEX0hETUlX X1NUQVRVUyAgQ29udl9CX0NEQ0xLL0RPVENMS19GSUZPX1VuZGVycnVuXHQlbHVcbiIsIEJJVChk d29yZCwgMzEpKTsKKyAgICBwcmludGYoIkFVRF9IRE1JV19TVEFUVVMgIENvbnZfQl9DRENMSy9E T1RDTEtfRklGT19PdmVycnVuXHQlbHVcbiIsICBCSVQoZHdvcmQsIDMwKSk7CisgICAgcHJpbnRm KCJBVURfSERNSVdfU1RBVFVTICBDb252X0FfQ0RDTEsvRE9UQ0xLX0ZJRk9fVW5kZXJydW5cdCVs dVxuIiwgQklUKGR3b3JkLCAyOSkpOworICAgIHByaW50ZigiQVVEX0hETUlXX1NUQVRVUyAgQ29u dl9BX0NEQ0xLL0RPVENMS19GSUZPX092ZXJydW5cdCVsdVxuIiwgIEJJVChkd29yZCwgMjgpKTsK KyAgICBwcmludGYoIkFVRF9IRE1JV19TVEFUVVMgIEJDTEsvQ0RDTEtfRklGT19PdmVycnVuXHRc dCVsdVxuIiwJIEJJVChkd29yZCwgMjUpKTsKKyAgICBwcmludGYoIkFVRF9IRE1JV19TVEFUVVMg IEZ1bmN0aW9uX1Jlc2V0XHRcdFx0JWx1XG4iLAkJIEJJVChkd29yZCwgMjkpKTsKKworICAgIHBy aW50ZigiQVVEX0hETUlXX0hETUlFRElEX0EgSERNSSBFTEQ6XG5cdCIpOworICAgIGR3b3JkID0g SU5SRUcoQVVEX0NOVExfU1RfQSk7CisgICAgZHdvcmQgJj0gfkJJVE1BU0soOSwgNSk7CisgICAg T1VUUkVHKEFVRF9DTlRMX1NUX0EsIGR3b3JkKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgQklUUyhk d29yZCwgMTQsIDEwKSAvIDQ7IGkrKykKKwkgICAgcHJpbnRmKCIlMDh4ICIsIGh0b25sKElOUkVH KEFVRF9IRE1JV19IRE1JRURJRF9BKSkpOworICAgIHByaW50ZigiXG4iKTsKKworICAgIHByaW50 ZigiQVVEX0hETUlXX0hETUlFRElEX0IgSERNSSBFTEQ6XG5cdCIpOworICAgIGR3b3JkID0gSU5S RUcoQVVEX0NOVExfU1RfQik7CisgICAgZHdvcmQgJj0gfkJJVE1BU0soOSwgNSk7CisgICAgT1VU UkVHKEFVRF9DTlRMX1NUX0IsIGR3b3JkKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgQklUUyhkd29y ZCwgMTQsIDEwKSAvIDQ7IGkrKykKKwkgICAgcHJpbnRmKCIlMDh4ICIsIGh0b25sKElOUkVHKEFV RF9IRE1JV19IRE1JRURJRF9CKSkpOworICAgIHByaW50ZigiXG4iKTsKKworICAgIHByaW50Zigi QVVEX0hETUlXX0lORk9GUl9BIEhETUkgYXVkaW8gSW5mb2ZyYW1lOlxuXHQiKTsKKyAgICBkd29y ZCA9IElOUkVHKEFVRF9DTlRMX1NUX0EpOworICAgIGR3b3JkICY9IH5CSVRNQVNLKDIwLCAxOCk7 CisgICAgZHdvcmQgJj0gfkJJVE1BU0soMywgMCk7CisgICAgT1VUUkVHKEFVRF9DTlRMX1NUX0Es IGR3b3JkKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQorCSAgICBwcmludGYoIiUwOHgg IiwgaHRvbmwoSU5SRUcoQVVEX0hETUlXX0lORk9GUl9BKSkpOworICAgIHByaW50ZigiXG4iKTsK KworICAgIHByaW50ZigiQVVEX0hETUlXX0lORk9GUl9CIEhETUkgYXVkaW8gSW5mb2ZyYW1lOlxu XHQiKTsKKyAgICBkd29yZCA9IElOUkVHKEFVRF9DTlRMX1NUX0IpOworICAgIGR3b3JkICY9IH5C SVRNQVNLKDIwLCAxOCk7CisgICAgZHdvcmQgJj0gfkJJVE1BU0soMywgMCk7CisgICAgT1VUUkVH KEFVRF9DTlRMX1NUX0IsIGR3b3JkKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQorCSAg ICBwcmludGYoIiUwOHggIiwgaHRvbmwoSU5SRUcoQVVEX0hETUlXX0lORk9GUl9CKSkpOworICAg IHByaW50ZigiXG4iKTsKKworfQorCisKKyN1bmRlZiBBVURfQ09ORklHX0EKKyN1bmRlZiBBVURf TUlTQ19DVFJMX0EKKyN1bmRlZiBBVURfVklEX0RJRAorI3VuZGVmIEFVRF9SSUQKKyN1bmRlZiBB VURfQ1RTX0VOQUJMRV9BCisjdW5kZWYgQVVEX1BXUlNUCisjdW5kZWYgQVVEX0hETUlXX0hETUlF RElEX0EKKyN1bmRlZiBBVURfSERNSVdfSU5GT0ZSX0EKKyN1bmRlZiBBVURfUE9SVF9FTl9IRF9D RkcKKyN1bmRlZiBBVURfT1VUX0RJR19DTlZUX0EKKyN1bmRlZiBBVURfT1VUX1NUUl9ERVNDX0EK KyN1bmRlZiBBVURfT1VUX0NIX1NUUgorI3VuZGVmIEFVRF9QSU5XX0NPTk5MTkdfTElTVAorI3Vu ZGVmIEFVRF9DTlRMX1NUX0EKKyN1bmRlZiBBVURfSERNSVdfU1RBVFVTCisjdW5kZWYgQVVEX0NP TkZJR19CCisjdW5kZWYgQVVEX01JU0NfQ1RSTF9CCisjdW5kZWYgQVVEX0NUU19FTkFCTEVfQgor I3VuZGVmIEFVRF9IRE1JV19IRE1JRURJRF9CCisjdW5kZWYgQVVEX0hETUlXX0lORk9GUl9CCisj dW5kZWYgQVVEX09VVF9ESUdfQ05WVF9CCisjdW5kZWYgQVVEX09VVF9TVFJfREVTQ19CCisjdW5k ZWYgQVVEX0NOVExfU1RfQgorCisvKgorICogQ291Z2FyUG9pbnQgcmVnaXN0ZXJzCisgKi8KKyNk ZWZpbmUgRFBfQ1RMX0MgICAgICAgICAgICAgIDB4RTQyMDAKKyNkZWZpbmUgRFBfQVVYX0NUTF9D ICAgICAgICAgIDB4RTQyMTAKKyNkZWZpbmUgRFBfQVVYX1RTVF9DICAgICAgICAgIDB4RTQyMjgK KyNkZWZpbmUgU1BPUlRfRERJX0NSQ19DICAgICAgIDB4RTQyNTAKKyNkZWZpbmUgU1BPUlRfRERJ X0NSQ19SICAgICAgIDB4RTQyNjQKKyNkZWZpbmUgRFBfQ1RMX0QgICAgICAgICAgICAgIDB4RTQz MDAKKyNkZWZpbmUgRFBfQVVYX0NUTF9EICAgICAgICAgIDB4RTQzMTAKKyNkZWZpbmUgRFBfQVVY X1RTVF9EICAgICAgICAgIDB4RTQzMjgKKyNkZWZpbmUgU1BPUlRfRERJX0NSQ19DVExfRCAgIDB4 RTQzNTAKKyNkZWZpbmUgQVVEX0NPTkZJR19BICAgICAgICAgIDB4RTUwMDAKKyNkZWZpbmUgQVVE X01JU0NfQ1RSTF9BICAgICAgIDB4RTUwMTAKKyNkZWZpbmUgQVVEX1ZJRF9ESUQgICAgICAgICAg IDB4RTUwMjAKKyNkZWZpbmUgQVVEX1JJRCAgICAgICAgICAgICAgIDB4RTUwMjQKKyNkZWZpbmUg QVVEX0NUU19FTkFCTEVfQSAgICAgIDB4RTUwMjgKKyNkZWZpbmUgQVVEX1BXUlNUICAgICAgICAg ICAgIDB4RTUwNEMKKyNkZWZpbmUgQVVEX0hETUlXX0hETUlFRElEX0EgIDB4RTUwNTAKKyNkZWZp bmUgQVVEX0hETUlXX0lORk9GUl9BICAgIDB4RTUwNTQKKyNkZWZpbmUgQVVEX1BPUlRfRU5fSERf Q0ZHICAgIDB4RTUwN0MKKyNkZWZpbmUgQVVEX09VVF9ESUdfQ05WVF9BICAgIDB4RTUwODAKKyNk ZWZpbmUgQVVEX09VVF9TVFJfREVTQ19BICAgIDB4RTUwODQKKyNkZWZpbmUgQVVEX09VVF9DSF9T VFIgICAgICAgIDB4RTUwODgKKyNkZWZpbmUgQVVEX1BJTldfQ09OTkxOR19MSVNUIDB4RTUwQTgK KyNkZWZpbmUgQVVEX1BJTldfQ09OTkxOR19TRUxBIDB4RTUwQUMKKyNkZWZpbmUgQVVEX0NOVExf U1RfQSAgICAgICAgIDB4RTUwQjQKKyNkZWZpbmUgQVVEX0NOVFJMX1NUMiAgICAgICAgIDB4RTUw QzAKKyNkZWZpbmUgQVVEX0NOVFJMX1NUMyAgICAgICAgIDB4RTUwQzQKKyNkZWZpbmUgQVVEX0hE TUlXX1NUQVRVUyAgICAgIDB4RTUwRDQKKyNkZWZpbmUgQVVEX0NPTkZJR19CICAgICAgICAgIDB4 RTUxMDAKKyNkZWZpbmUgQVVEX01JU0NfQ1RSTF9CICAgICAgIDB4RTUxMTAKKyNkZWZpbmUgQVVE X0NUU19FTkFCTEVfQiAgICAgIDB4RTUxMjgKKyNkZWZpbmUgQVVEX0hETUlXX0hETUlFRElEX0Ig IDB4RTUxNTAKKyNkZWZpbmUgQVVEX0hETUlXX0lORk9GUl9CICAgIDB4RTUxNTQKKyNkZWZpbmUg QVVEX09VVF9ESUdfQ05WVF9CICAgIDB4RTUxODAKKyNkZWZpbmUgQVVEX09VVF9TVFJfREVTQ19C ICAgIDB4RTUxODQKKyNkZWZpbmUgQVVEX0NOVExfU1RfQiAgICAgICAgIDB4RTUxQjQKKyNkZWZp bmUgQVVEX0NPTkZJR19DICAgICAgICAgIDB4RTUyMDAKKyNkZWZpbmUgQVVEX01JU0NfQ1RSTF9D ICAgICAgIDB4RTUyMTAKKyNkZWZpbmUgQVVEX0NUU19FTkFCTEVfQyAgICAgIDB4RTUyMjgKKyNk ZWZpbmUgQVVEX0hETUlXX0hETUlFRElEX0MgIDB4RTUyNTAKKyNkZWZpbmUgQVVEX0hETUlXX0lO Rk9GUl9DICAgIDB4RTUyNTQKKyNkZWZpbmUgQVVEX09VVF9ESUdfQ05WVF9DICAgIDB4RTUyODAK KyNkZWZpbmUgQVVEX09VVF9TVFJfREVTQ19DICAgIDB4RTUyODQKKyNkZWZpbmUgQVVEX0NOVExf U1RfQyAgICAgICAgIDB4RTUyQjQKKyNkZWZpbmUgQVVEX0NPTkZJR19EICAgICAgICAgIDB4RTUz MDAKKyNkZWZpbmUgQVVEX01JU0NfQ1RSTF9EICAgICAgIDB4RTUzMTAKKyNkZWZpbmUgQVVEX0NU U19FTkFCTEVfRCAgICAgIDB4RTUzMjgKKyNkZWZpbmUgQVVEX0hETUlXX0hETUlFRElEX0QgIDB4 RTUzNTAKKyNkZWZpbmUgQVVEX0hETUlXX0lORk9GUl9EICAgIDB4RTUzNTQKKyNkZWZpbmUgQVVE X09VVF9ESUdfQ05WVF9EICAgIDB4RTUzODAKKyNkZWZpbmUgQVVEX09VVF9TVFJfREVTQ19EICAg IDB4RTUzODQKKyNkZWZpbmUgQVVEX0NOVExfU1RfRCAgICAgICAgIDB4RTUzQjQKKworCitzdGF0 aWMgdm9pZCBkdW1wX2NwdCh2b2lkKQoreworICAgIHVpbnQzMl90IGR3b3JkOworICAgIGludCBp OworCisgICAgZHVtcF9yZWcoSERNSUIsCQkJInNEVk8vSERNSSBQb3J0IEIgQ29udHJvbCIpOwor ICAgIGR1bXBfcmVnKEhETUlDLAkJCSJIRE1JIFBvcnQgQyBDb250cm9sIik7CisgICAgZHVtcF9y ZWcoSERNSUQsCQkJIkhETUkgUG9ydCBEIENvbnRyb2wiKTsKKyAgICBkdW1wX3JlZyhBVURfQ09O RklHX0EsCQkiQXVkaW8gQ29uZmlndXJhdGlvbiDCrSBUcmFuc2NvZGVyIEEiKTsKKyAgICBkdW1w X3JlZyhBVURfQ09ORklHX0IsCQkiQXVkaW8gQ29uZmlndXJhdGlvbiDCrSBUcmFuc2NvZGVyIEIi KTsKKyAgICBkdW1wX3JlZyhBVURfQ09ORklHX0MsCQkiQXVkaW8gQ29uZmlndXJhdGlvbiDCrSBU cmFuc2NvZGVyIEMiKTsKKyAgICBkdW1wX3JlZyhBVURfQ1RTX0VOQUJMRV9BLAkJIkF1ZGlvIENU UyBQcm9ncmFtbWluZyBFbmFibGUgwq0gVHJhbnNjb2RlciBBIik7CisgICAgZHVtcF9yZWcoQVVE X0NUU19FTkFCTEVfQiwJCSJBdWRpbyBDVFMgUHJvZ3JhbW1pbmcgRW5hYmxlIMKtIFRyYW5zY29k ZXIgQiIpOworICAgIGR1bXBfcmVnKEFVRF9DVFNfRU5BQkxFX0MsCQkiQXVkaW8gQ1RTIFByb2dy YW1taW5nIEVuYWJsZSDCrSBUcmFuc2NvZGVyIEMiKTsKKyAgICBkdW1wX3JlZyhBVURfTUlTQ19D VFJMX0EsCQkiQXVkaW8gTUlTQyBDb250cm9sIGZvciBUcmFuc2NvZGVyIEEiKTsKKyAgICBkdW1w X3JlZyhBVURfTUlTQ19DVFJMX0IsCQkiQXVkaW8gTUlTQyBDb250cm9sIGZvciBUcmFuc2NvZGVy IEIiKTsKKyAgICBkdW1wX3JlZyhBVURfTUlTQ19DVFJMX0MsCQkiQXVkaW8gTUlTQyBDb250cm9s IGZvciBUcmFuc2NvZGVyIEMiKTsKKyAgICBkdW1wX3JlZyhBVURfVklEX0RJRCwJCSJBdWRpbyBW ZW5kb3IgSUQgLyBEZXZpY2UgSUQiKTsKKyAgICBkdW1wX3JlZyhBVURfUklELAkJCSJBdWRpbyBS ZXZpc2lvbiBJRCIpOworICAgIGR1bXBfcmVnKEFVRF9QV1JTVCwJCQkiQXVkaW8gUG93ZXIgU3Rh dGUgKEZ1bmN0aW9uIEdyb3VwLCBDb252ZXJ0b3IsIFBpbiBXaWRnZXQpIik7CisgICAgZHVtcF9y ZWcoQVVEX1BPUlRfRU5fSERfQ0ZHLAkiQXVkaW8gUG9ydCBFbmFibGUgSERBdWRpbyBDb25maWci KTsKKyAgICBkdW1wX3JlZyhBVURfT1VUX0RJR19DTlZUX0EsCSJBdWRpbyBEaWdpdGFsIENvbnZl cnRlciDCrSBDb252IEEiKTsKKyAgICBkdW1wX3JlZyhBVURfT1VUX0RJR19DTlZUX0IsCSJBdWRp byBEaWdpdGFsIENvbnZlcnRlciDCrSBDb252IEIiKTsKKyAgICBkdW1wX3JlZyhBVURfT1VUX0RJ R19DTlZUX0MsCSJBdWRpbyBEaWdpdGFsIENvbnZlcnRlciDCrSBDb252IEMiKTsKKyAgICBkdW1w X3JlZyhBVURfT1VUX0NIX1NUUiwJCSJBdWRpbyBDaGFubmVsIElEIGFuZCBTdHJlYW0gSUQiKTsK KyAgICBkdW1wX3JlZyhBVURfT1VUX1NUUl9ERVNDX0EsCSJBdWRpbyBTdHJlYW0gRGVzY3JpcHRv ciBGb3JtYXQgwq0gQ29udiBBIik7CisgICAgZHVtcF9yZWcoQVVEX09VVF9TVFJfREVTQ19CLAki QXVkaW8gU3RyZWFtIERlc2NyaXB0b3IgRm9ybWF0IMKtIENvbnYgQiIpOworICAgIGR1bXBfcmVn KEFVRF9PVVRfU1RSX0RFU0NfQywJIkF1ZGlvIFN0cmVhbSBEZXNjcmlwdG9yIEZvcm1hdCDCrSBD b252IEMiKTsKKyAgICBkdW1wX3JlZyhBVURfUElOV19DT05OTE5HX0xJU1QsCSJBdWRpbyBDb25u ZWN0aW9uIExpc3QiKTsKKyAgICBkdW1wX3JlZyhBVURfUElOV19DT05OTE5HX1NFTCwJIkF1ZGlv IENvbm5lY3Rpb24gU2VsZWN0Iik7CisgICAgZHVtcF9yZWcoQVVEX0NOVExfU1RfQSwJCSJBdWRp byBDb250cm9sIFN0YXRlIFJlZ2lzdGVyIMKtIFRyYW5zY29kZXIgQSIpOworICAgIGR1bXBfcmVn KEFVRF9DTlRMX1NUX0IsCQkiQXVkaW8gQ29udHJvbCBTdGF0ZSBSZWdpc3RlciDCrSBUcmFuc2Nv ZGVyIEIiKTsKKyAgICBkdW1wX3JlZyhBVURfQ05UTF9TVF9DLAkJIkF1ZGlvIENvbnRyb2wgU3Rh dGUgUmVnaXN0ZXIgwq0gVHJhbnNjb2RlciBDIik7CisgICAgZHVtcF9yZWcoQVVEX0NOVFJMX1NU MiwJCSJBdWRpbyBDb250cm9sIFN0YXRlIDIiKTsKKyAgICBkdW1wX3JlZyhBVURfQ05UUkxfU1Qz LAkJIkF1ZGlvIENvbnRyb2wgU3RhdGUgMyIpOworICAgIGR1bXBfcmVnKEFVRF9IRE1JV19TVEFU VVMsCQkiQXVkaW8gSERNSSBTdGF0dXMiKTsKKyAgICBkdW1wX3JlZyhBVURfSERNSVdfSERNSUVE SURfQSwJIkhETUkgRGF0YSBFRElEIEJsb2NrIMKtIFRyYW5zY29kZXIgQSIpOworICAgIGR1bXBf cmVnKEFVRF9IRE1JV19IRE1JRURJRF9CLAkiSERNSSBEYXRhIEVESUQgQmxvY2sgwq0gVHJhbnNj b2RlciBCIik7CisgICAgZHVtcF9yZWcoQVVEX0hETUlXX0hETUlFRElEX0MsCSJIRE1JIERhdGEg RURJRCBCbG9jayDCrSBUcmFuc2NvZGVyIEMiKTsKKyAgICBkdW1wX3JlZyhBVURfSERNSVdfSU5G T0ZSX0EsCSJBdWRpbyBXaWRnZXQgRGF0YSBJc2xhbmQgUGFja2V0IMKtIFRyYW5zY29kZXIgQSIp OworICAgIGR1bXBfcmVnKEFVRF9IRE1JV19JTkZPRlJfQiwJIkF1ZGlvIFdpZGdldCBEYXRhIElz bGFuZCBQYWNrZXQgwq0gVHJhbnNjb2RlciBCIik7CisgICAgZHVtcF9yZWcoQVVEX0hETUlXX0lO Rk9GUl9DLAkiQXVkaW8gV2lkZ2V0IERhdGEgSXNsYW5kIFBhY2tldCDCrSBUcmFuc2NvZGVyIEMi KTsKKworICAgIHByaW50ZigiXG5EZXRhaWxzOlxuXG4iKTsKKworICAgIGR3b3JkID0gSU5SRUco QVVEX1ZJRF9ESUQpOworICAgIHByaW50ZigiQVVEX1ZJRF9ESUQgdmVuZG9yIGlkXHRcdFx0XHRc dDB4JXhcbiIsIGR3b3JkID4+IDE2KTsKKyAgICBwcmludGYoIkFVRF9WSURfRElEIGRldmljZSBp ZFx0XHRcdFx0XHQweCV4XG4iLCBkd29yZCAmIDB4ZmZmZik7CisKKyAgICBkd29yZCA9IElOUkVH KEFVRF9SSUQpOworICAgIHByaW50ZigiQVVEX1JJRCBNYWpvcl9SZXZpc2lvblx0XHRcdFx0XHQw eCVseFxuIiwgQklUUyhkd29yZCwgMjMsIDIwKSk7CisgICAgcHJpbnRmKCJBVURfUklEIE1pbm9y X1JldmlzaW9uXHRcdFx0XHRcdDB4JWx4XG4iLCBCSVRTKGR3b3JkLCAxOSwgMTYpKTsKKyAgICBw cmludGYoIkFVRF9SSUQgUmV2aXNpb25fSWRcdFx0XHRcdFx0MHglbHhcbiIsICAgIEJJVFMoZHdv cmQsIDE1LCA4KSk7CisgICAgcHJpbnRmKCJBVURfUklEIFN0ZXBwaW5nX0lkXHRcdFx0XHRcdDB4 JWx4XG4iLCAgICBCSVRTKGR3b3JkLCA3LCAwKSk7CisKKyAgICBkd29yZCA9IElOUkVHKEhETUlC KTsKKyAgICBwcmludGYoIkhETUlCIFBvcnRfRW5hYmxlXHRcdFx0XHRcdCV1XG4iLCAgICAgICEh KGR3b3JkICYgU0RWT19FTkFCTEUpKTsKKyAgICBwcmludGYoIkhETUlCIFRyYW5zY29kZXJfU2Vs ZWN0XHRcdFx0XHRcdFsweCVseF0gJXNcbiIsCisJCQkJQklUUyhkd29yZCwgMzAsIDI5KSwgdHJh bnNjb2Rlcl9zZWxlY3RbQklUUyhkd29yZCwgMzAsIDI5KV0pOworICAgIHByaW50ZigiSERNSUIg c0RWT19Cb3JkZXJfRW5hYmxlXHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgNykpOworICAgIHBy aW50ZigiSERNSUIgSERDUF9Qb3J0X1NlbGVjdFx0XHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwg NSkpOworICAgIHByaW50ZigiSERNSUIgUG9ydF9EZXRlY3RlZFx0XHRcdFx0XHQlbHVcbiIsIEJJ VChkd29yZCwgMikpOworICAgIHByaW50ZigiSERNSUIgSERNSV9vcl9EVklfU2VsZWN0XHRcdFx0 XHQlc1xuIiwgQklUKGR3b3JkLCA5KSA/ICJIRE1JIiA6ICJEVkkiKTsKKyAgICBwcmludGYoIkhE TUlCIEF1ZGlvX091dHB1dF9FbmFibGVcdFx0XHRcdCV1XG4iLCAhIShkd29yZCAmIFNEVk9fQVVE SU9fRU5BQkxFKSk7CisKKyAgICBkd29yZCA9IElOUkVHKEhETUlDKTsKKyAgICBwcmludGYoIkhE TUlDIFBvcnRfRW5hYmxlXHRcdFx0XHRcdCV1XG4iLCAgICAgICEhKGR3b3JkICYgU0RWT19FTkFC TEUpKTsKKyAgICBwcmludGYoIkhETUlDIFRyYW5zY29kZXJfU2VsZWN0XHRcdFx0XHRcdFsweCVs eF0gJXNcbiIsCisJCQkJQklUUyhkd29yZCwgMzAsIDI5KSwgdHJhbnNjb2Rlcl9zZWxlY3RbQklU Uyhkd29yZCwgMzAsIDI5KV0pOworICAgIHByaW50ZigiSERNSUMgc0RWT19Cb3JkZXJfRW5hYmxl XHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgNykpOworICAgIHByaW50ZigiSERNSUMgSERDUF9Q b3J0X1NlbGVjdFx0XHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgNSkpOworICAgIHByaW50Zigi SERNSUMgUG9ydF9EZXRlY3RlZFx0XHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgMikpOworICAg IHByaW50ZigiSERNSUMgSERNSV9vcl9EVklfU2VsZWN0XHRcdFx0XHQlc1xuIiwgQklUKGR3b3Jk LCA5KSA/ICJIRE1JIiA6ICJEVkkiKTsKKyAgICBwcmludGYoIkhETUlDIEF1ZGlvX091dHB1dF9F bmFibGVcdFx0XHRcdCV1XG4iLCAhIShkd29yZCAmIFNEVk9fQVVESU9fRU5BQkxFKSk7CisKKyAg ICBkd29yZCA9IElOUkVHKEhETUlEKTsKKyAgICBwcmludGYoIkhETUlEIFBvcnRfRW5hYmxlXHRc dFx0XHRcdCV1XG4iLCAgICAgICEhKGR3b3JkICYgU0RWT19FTkFCTEUpKTsKKyAgICBwcmludGYo IkhETUlEIFRyYW5zY29kZXJfU2VsZWN0XHRcdFx0XHRcdFsweCVseF0gJXNcbiIsCisJCQkJQklU Uyhkd29yZCwgMzAsIDI5KSwgdHJhbnNjb2Rlcl9zZWxlY3RbQklUUyhkd29yZCwgMzAsIDI5KV0p OworICAgIHByaW50ZigiSERNSUQgc0RWT19Cb3JkZXJfRW5hYmxlXHRcdFx0XHQlbHVcbiIsIEJJ VChkd29yZCwgNykpOworICAgIHByaW50ZigiSERNSUQgSERDUF9Qb3J0X1NlbGVjdFx0XHRcdFx0 XHQlbHVcbiIsIEJJVChkd29yZCwgNSkpOworICAgIHByaW50ZigiSERNSUQgUG9ydF9EZXRlY3Rl ZFx0XHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgMikpOworICAgIHByaW50ZigiSERNSUQgSERN SV9vcl9EVklfU2VsZWN0XHRcdFx0XHQlc1xuIiwgQklUKGR3b3JkLCA5KSA/ICJIRE1JIiA6ICJE VkkiKTsKKyAgICBwcmludGYoIkhETUlEIEF1ZGlvX091dHB1dF9FbmFibGVcdFx0XHRcdCV1XG4i LCAhIShkd29yZCAmIFNEVk9fQVVESU9fRU5BQkxFKSk7CisKKyAgICBkd29yZCA9IElOUkVHKFRS QU5TX0RQX0NUTF9BKTsKKyAgICBwcmludGYoIlRSQU5TX0RQX0NUTF9BIERpc3BsYXlQb3J0X0Vu YWJsZVx0XHRcdCVsdVxuIiwgICAgICBCSVQoZHdvcmQsIDMxKSk7CisgICAgcHJpbnRmKCJUUkFO U19EUF9DVExfQSBQb3J0X1dpZHRoX1NlbGVjdGlvblx0XHRcdFsweCVseF0gJXNcbiIsCisJCQkJ QklUUyhkd29yZCwgMjEsIDE5KSwgZHBfcG9ydF93aWR0aFtCSVRTKGR3b3JkLCAyMSwgMTkpXSk7 CisgICAgcHJpbnRmKCJUUkFOU19EUF9DVExfQSBQb3J0X0RldGVjdGVkXHRcdFx0XHQlbHVcbiIs IEJJVChkd29yZCwgMikpOworICAgIHByaW50ZigiVFJBTlNfRFBfQ1RMX0EgSERDUF9Qb3J0X1Nl bGVjdFx0XHRcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDUpKTsKKyAgICBwcmludGYoIlRSQU5TX0RQ X0NUTF9BIEF1ZGlvX091dHB1dF9FbmFibGVcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgNikpOwor CisgICAgZHdvcmQgPSBJTlJFRyhUUkFOU19EUF9DVExfQik7CisgICAgcHJpbnRmKCJUUkFOU19E UF9DVExfQiBEaXNwbGF5UG9ydF9FbmFibGVcdFx0XHQlbHVcbiIsICAgICAgQklUKGR3b3JkLCAz MSkpOworICAgIHByaW50ZigiVFJBTlNfRFBfQ1RMX0IgUG9ydF9XaWR0aF9TZWxlY3Rpb25cdFx0 XHRbMHglbHhdICVzXG4iLAorCQkJCUJJVFMoZHdvcmQsIDIxLCAxOSksIGRwX3BvcnRfd2lkdGhb QklUUyhkd29yZCwgMjEsIDE5KV0pOworICAgIHByaW50ZigiVFJBTlNfRFBfQ1RMX0IgUG9ydF9E ZXRlY3RlZFx0XHRcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIpKTsKKyAgICBwcmludGYoIlRSQU5T X0RQX0NUTF9CIEhEQ1BfUG9ydF9TZWxlY3RcdFx0XHRcdCVsdVxuIiwgQklUKGR3b3JkLCA1KSk7 CisgICAgcHJpbnRmKCJUUkFOU19EUF9DVExfQiBBdWRpb19PdXRwdXRfRW5hYmxlXHRcdFx0JWx1 XG4iLCBCSVQoZHdvcmQsIDYpKTsKKworICAgIGR3b3JkID0gSU5SRUcoVFJBTlNfRFBfQ1RMX0Mp OworICAgIHByaW50ZigiVFJBTlNfRFBfQ1RMX0MgRGlzcGxheVBvcnRfRW5hYmxlXHRcdFx0JWx1 XG4iLCAgICAgIEJJVChkd29yZCwgMzEpKTsKKyAgICBwcmludGYoIlRSQU5TX0RQX0NUTF9DIFBv cnRfV2lkdGhfU2VsZWN0aW9uXHRcdFx0WzB4JWx4XSAlc1xuIiwKKwkJCQlCSVRTKGR3b3JkLCAy MSwgMTkpLCBkcF9wb3J0X3dpZHRoW0JJVFMoZHdvcmQsIDIxLCAxOSldKTsKKyAgICBwcmludGYo IlRSQU5TX0RQX0NUTF9DIFBvcnRfRGV0ZWN0ZWRcdFx0XHRcdCVsdVxuIiwgQklUKGR3b3JkLCAy KSk7CisgICAgcHJpbnRmKCJUUkFOU19EUF9DVExfQyBIRENQX1BvcnRfU2VsZWN0XHRcdFx0XHQl bHVcbiIsIEJJVChkd29yZCwgNSkpOworICAgIHByaW50ZigiVFJBTlNfRFBfQ1RMX0MgQXVkaW9f T3V0cHV0X0VuYWJsZVx0XHRcdCVsdVxuIiwgQklUKGR3b3JkLCA2KSk7CisKKyAgICBkd29yZCA9 IElOUkVHKEFVRF9DT05GSUdfQSk7CisgICAgcHJpbnRmKCJBVURfQ09ORklHX0EgIFBpeGVsX0Ns b2NrX0hETUlcdFx0XHRcdFsweCVseF0gJXNcbiIsIEJJVFMoZHdvcmQsIDE5LCAxNiksCisJCSAg ICBPUE5BTUUocGl4ZWxfY2xvY2ssIEJJVFMoZHdvcmQsIDE5LCAxNikpKTsKKyAgICBkd29yZCA9 IElOUkVHKEFVRF9DT05GSUdfQik7CisgICAgcHJpbnRmKCJBVURfQ09ORklHX0IgIFBpeGVsX0Ns b2NrX0hETUlcdFx0XHRcdFsweCVseF0gJXNcbiIsIEJJVFMoZHdvcmQsIDE5LCAxNiksCisJCSAg ICBPUE5BTUUocGl4ZWxfY2xvY2ssIEJJVFMoZHdvcmQsIDE5LCAxNikpKTsKKyAgICBkd29yZCA9 IElOUkVHKEFVRF9DT05GSUdfQyk7CisgICAgcHJpbnRmKCJBVURfQ09ORklHX0MgIFBpeGVsX0Ns b2NrX0hETUlcdFx0XHRcdFsweCVseF0gJXNcbiIsIEJJVFMoZHdvcmQsIDE5LCAxNiksCisJCSAg ICBPUE5BTUUocGl4ZWxfY2xvY2ssIEJJVFMoZHdvcmQsIDE5LCAxNikpKTsKKworICAgIGR3b3Jk ID0gSU5SRUcoQVVEX0NUU19FTkFCTEVfQSk7CisgICAgcHJpbnRmKCJBVURfQ1RTX0VOQUJMRV9B ICBFbmFibGVfQ1RTX29yX01fcHJvZ3JhbW1pbmdcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIwKSk7 CisgICAgcHJpbnRmKCJBVURfQ1RTX0VOQUJMRV9BICBDVFNfTSB2YWx1ZSBJbmRleFx0XHRcdCVz XG4iLCBCSVQoZHdvcmQsIDIxKSA/ICJDVFMiIDogIk0iKTsKKyAgICBwcmludGYoIkFVRF9DVFNf RU5BQkxFX0EgIENUU19wcm9ncmFtbWluZ1x0XHRcdCUjbHhcbiIsIEJJVFMoZHdvcmQsIDE5LCAw KSk7CisgICAgZHdvcmQgPSBJTlJFRyhBVURfQ1RTX0VOQUJMRV9CKTsKKyAgICBwcmludGYoIkFV RF9DVFNfRU5BQkxFX0IgIEVuYWJsZV9DVFNfb3JfTV9wcm9ncmFtbWluZ1x0XHQlbHVcbiIsIEJJ VChkd29yZCwgMjApKTsKKyAgICBwcmludGYoIkFVRF9DVFNfRU5BQkxFX0IgIENUU19NIHZhbHVl IEluZGV4XHRcdFx0JXNcbiIsIEJJVChkd29yZCwgMjEpID8gIkNUUyIgOiAiTSIpOworICAgIHBy aW50ZigiQVVEX0NUU19FTkFCTEVfQiAgQ1RTX3Byb2dyYW1taW5nXHRcdFx0JSNseFxuIiwgQklU Uyhkd29yZCwgMTksIDApKTsKKyAgICBkd29yZCA9IElOUkVHKEFVRF9DVFNfRU5BQkxFX0MpOwor ICAgIHByaW50ZigiQVVEX0NUU19FTkFCTEVfQyAgRW5hYmxlX0NUU19vcl9NX3Byb2dyYW1taW5n XHRcdCVsdVxuIiwgQklUKGR3b3JkLCAyMCkpOworICAgIHByaW50ZigiQVVEX0NUU19FTkFCTEVf QyAgQ1RTX00gdmFsdWUgSW5kZXhcdFx0XHQlc1xuIiwgQklUKGR3b3JkLCAyMSkgPyAiQ1RTIiA6 ICJNIik7CisgICAgcHJpbnRmKCJBVURfQ1RTX0VOQUJMRV9DICBDVFNfcHJvZ3JhbW1pbmdcdFx0 XHQlI2x4XG4iLCBCSVRTKGR3b3JkLCAxOSwgMCkpOworCisgICAgZHdvcmQgPSBJTlJFRyhBVURf TUlTQ19DVFJMX0EpOworICAgIHByaW50ZigiQVVEX01JU0NfQ1RSTF9BICBTYW1wbGVfRmFicmlj YXRpb25fRU5fYml0XHRcdCVsdVxuIiwJQklUKGR3b3JkLCAyKSk7CisgICAgcHJpbnRmKCJBVURf TUlTQ19DVFJMX0EgIFNhbXBsZV9wcmVzZW50X0Rpc2FibGVcdFx0XHQlbHVcbiIsCUJJVChkd29y ZCwgOCkpOworICAgIHByaW50ZigiQVVEX01JU0NfQ1RSTF9BICBPdXRwdXRfRGVsYXlcdFx0XHRc dCVsdVxuIiwJCUJJVFMoZHdvcmQsIDcsIDQpKTsKKyAgICBwcmludGYoIkFVRF9NSVNDX0NUUkxf QSAgUHJvX0FsbG93ZWRcdFx0XHRcdCVsdVxuIiwJCQlCSVQoZHdvcmQsIDEpKTsKKyAgICBkd29y ZCA9IElOUkVHKEFVRF9NSVNDX0NUUkxfQik7CisgICAgcHJpbnRmKCJBVURfTUlTQ19DVFJMX0Ig IFNhbXBsZV9GYWJyaWNhdGlvbl9FTl9iaXRcdFx0JWx1XG4iLAlCSVQoZHdvcmQsIDIpKTsKKyAg ICBwcmludGYoIkFVRF9NSVNDX0NUUkxfQiAgU2FtcGxlX3ByZXNlbnRfRGlzYWJsZVx0XHRcdCVs dVxuIiwJQklUKGR3b3JkLCA4KSk7CisgICAgcHJpbnRmKCJBVURfTUlTQ19DVFJMX0IgIE91dHB1 dF9EZWxheVx0XHRcdFx0JWx1XG4iLAkJQklUUyhkd29yZCwgNywgNCkpOworICAgIHByaW50Zigi QVVEX01JU0NfQ1RSTF9CICBQcm9fQWxsb3dlZFx0XHRcdFx0JWx1XG4iLAkJCUJJVChkd29yZCwg MSkpOworICAgIGR3b3JkID0gSU5SRUcoQVVEX01JU0NfQ1RSTF9DKTsKKyAgICBwcmludGYoIkFV RF9NSVNDX0NUUkxfQyAgU2FtcGxlX0ZhYnJpY2F0aW9uX0VOX2JpdFx0XHQlbHVcbiIsCUJJVChk d29yZCwgMikpOworICAgIHByaW50ZigiQVVEX01JU0NfQ1RSTF9DICBTYW1wbGVfcHJlc2VudF9E aXNhYmxlXHRcdFx0JWx1XG4iLAlCSVQoZHdvcmQsIDgpKTsKKyAgICBwcmludGYoIkFVRF9NSVND X0NUUkxfQyAgT3V0cHV0X0RlbGF5XHRcdFx0XHQlbHVcbiIsCQlCSVRTKGR3b3JkLCA3LCA0KSk7 CisgICAgcHJpbnRmKCJBVURfTUlTQ19DVFJMX0MgIFByb19BbGxvd2VkXHRcdFx0XHQlbHVcbiIs CQkJQklUKGR3b3JkLCAxKSk7CisKKyAgICBkd29yZCA9IElOUkVHKEFVRF9QV1JTVCk7CisgICAg cHJpbnRmKCJBVURfUFdSU1QgIEZ1bmNfR3JwX0Rldl9Qd3JTdF9DdXJyICAgICAgICAgICAgICAg ICAgXHQlc1xuIiwgcG93ZXJfc3RhdGVbQklUUyhkd29yZCwgMjcsIDI2KV0pOworICAgIHByaW50 ZigiQVVEX1BXUlNUICBGdW5jX0dycF9EZXZfUHdyU3RfU2V0ICAgICAgICAgICAgICAgICAgIFx0 JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsIDI1LCAyNCldKTsKKyAgICBwcmludGYoIkFV RF9QV1JTVCAgQ29udmVydG9yQV9XaWRnZXRfUG93ZXJfU3RhdGVfQ3VycmVudCAgICBcdCVzXG4i LCBwb3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAxNSwgMTQpXSk7CisgICAgcHJpbnRmKCJBVURfUFdS U1QgIENvbnZlcnRvckFfV2lkZ2V0X1Bvd2VyX1N0YXRlX1JlcXVzdGVkICAgXHQlc1xuIiwgcG93 ZXJfc3RhdGVbQklUUyhkd29yZCwgMTMsIDEyKV0pOworICAgIHByaW50ZigiQVVEX1BXUlNUICBD b252ZXJ0b3JCX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJyZW50ICAgIFx0JXNcbiIsIHBvd2VyX3N0 YXRlW0JJVFMoZHdvcmQsIDE5LCAxOCldKTsKKyAgICBwcmludGYoIkFVRF9QV1JTVCAgQ29udmVy dG9yQl9XaWRnZXRfUG93ZXJfU3RhdGVfUmVxdWVzdGVkICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtC SVRTKGR3b3JkLCAxNywgMTYpXSk7CisgICAgcHJpbnRmKCJBVURfUFdSU1QgIENvbnZDX1dpZGdl dF9Qd3JTdF9DdXJyICAgICAgICAgICAgICAgICAgXHQlc1xuIiwgcG93ZXJfc3RhdGVbQklUUyhk d29yZCwgMjMsIDIyKV0pOworICAgIHByaW50ZigiQVVEX1BXUlNUICBDb252Q19XaWRnZXRfUHdy U3RfUmVxICAgICAgICAgICAgICAgICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQs IDIxLCAyMCldKTsKKyAgICBwcmludGYoIkFVRF9QV1JTVCAgUGluQl9XaWRnZXRfUG93ZXJfU3Rh dGVfQ3VycmVudCAgICAgICAgICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAgMywg IDIpXSk7CisgICAgcHJpbnRmKCJBVURfUFdSU1QgIFBpbkJfV2lkZ2V0X1Bvd2VyX1N0YXRlX1Nl dCAgICAgICAgICAgICAgXHQlc1xuIiwgcG93ZXJfc3RhdGVbQklUUyhkd29yZCwgIDEsICAwKV0p OworICAgIHByaW50ZigiQVVEX1BXUlNUICBQaW5DX1dpZGdldF9Qb3dlcl9TdGF0ZV9DdXJyZW50 ICAgICAgICAgIFx0JXNcbiIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsICA3LCAgNildKTsKKyAg ICBwcmludGYoIkFVRF9QV1JTVCAgUGluQ19XaWRnZXRfUG93ZXJfU3RhdGVfU2V0ICAgICAgICAg ICAgICBcdCVzXG4iLCBwb3dlcl9zdGF0ZVtCSVRTKGR3b3JkLCAgNSwgIDQpXSk7CisgICAgcHJp bnRmKCJBVURfUFdSU1QgIFBpbkRfV2lkZ2V0X1Bvd2VyX1N0YXRlX0N1cnJlbnQgICAgICAgICAg XHQlc1xuIiwgcG93ZXJfc3RhdGVbQklUUyhkd29yZCwgMTEsIDEwKV0pOworICAgIHByaW50Zigi QVVEX1BXUlNUICBQaW5EX1dpZGdldF9Qb3dlcl9TdGF0ZV9TZXQgICAgICAgICAgICAgIFx0JXNc biIsIHBvd2VyX3N0YXRlW0JJVFMoZHdvcmQsICA5LCAgOCldKTsKKworICAgIGR3b3JkID0gSU5S RUcoQVVEX1BPUlRfRU5fSERfQ0ZHKTsKKyAgICBwcmludGYoIkFVRF9QT1JUX0VOX0hEX0NGRyAg Q29udmVydG9yX0FfRGlnZW5cdFx0XHQlbHVcbiIsCUJJVChkd29yZCwgMCkpOworICAgIHByaW50 ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBDb252ZXJ0b3JfQl9EaWdlblx0XHRcdCVsdVxuIiwJQklU KGR3b3JkLCAxKSk7CisgICAgcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIENvbnZlcnRvcl9D X0RpZ2VuXHRcdFx0JWx1XG4iLAlCSVQoZHdvcmQsIDIpKTsKKyAgICBwcmludGYoIkFVRF9QT1JU X0VOX0hEX0NGRyAgQ29udmVydG9yQV9TdHJlYW1fSURcdFx0JWx1XG4iLAlCSVRTKGR3b3JkLCAg NywgNCkpOworICAgIHByaW50ZigiQVVEX1BPUlRfRU5fSERfQ0ZHICBDb252ZXJ0b3JCX1N0cmVh bV9JRFx0XHQlbHVcbiIsCUJJVFMoZHdvcmQsIDExLCA4KSk7CisgICAgcHJpbnRmKCJBVURfUE9S VF9FTl9IRF9DRkcgIENvbnZlcnRvckNfU3RyZWFtX0lEXHRcdCVsdVxuIiwJQklUUyhkd29yZCwg MTUsIDEyKSk7CisgICAgcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfQl9PdXRfRW5h YmxlXHRcdFx0JWx1XG4iLAlCSVQoZHdvcmQsIDE2KSk7CisgICAgcHJpbnRmKCJBVURfUE9SVF9F Tl9IRF9DRkcgIFBvcnRfQ19PdXRfRW5hYmxlXHRcdFx0JWx1XG4iLAlCSVQoZHdvcmQsIDE3KSk7 CisgICAgcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfRF9PdXRfRW5hYmxlXHRcdFx0 JWx1XG4iLAlCSVQoZHdvcmQsIDE4KSk7CisgICAgcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcg IFBvcnRfQl9BbXBfTXV0ZV9TdGF0dXNcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIwKSk7CisgICAg cHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBvcnRfQ19BbXBfTXV0ZV9TdGF0dXNcdFx0JWx1 XG4iLCBCSVQoZHdvcmQsIDIxKSk7CisgICAgcHJpbnRmKCJBVURfUE9SVF9FTl9IRF9DRkcgIFBv cnRfRF9BbXBfTXV0ZV9TdGF0dXNcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIyKSk7CisKKyAgICBk d29yZCA9IElOUkVHKEFVRF9PVVRfRElHX0NOVlRfQSk7CisgICAgcHJpbnRmKCJBVURfT1VUX0RJ R19DTlZUX0EgIFZcdFx0XHRcdFx0JWx1XG4iLAkJQklUKGR3b3JkLCAxKSk7CisgICAgcHJpbnRm KCJBVURfT1VUX0RJR19DTlZUX0EgIFZDRkdcdFx0XHRcdCVsdVxuIiwJCUJJVChkd29yZCwgMikp OworICAgIHByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9BICBQUkVcdFx0XHRcdFx0JWx1XG4iLAkJ QklUKGR3b3JkLCAzKSk7CisgICAgcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0EgIENvcHlcdFx0 XHRcdCVsdVxuIiwJCUJJVChkd29yZCwgNCkpOworICAgIHByaW50ZigiQVVEX09VVF9ESUdfQ05W VF9BICBOb25BdWRpb1x0XHRcdFx0MHglbHhcbiIsCUJJVChkd29yZCwgNSkpOworICAgIHByaW50 ZigiQVVEX09VVF9ESUdfQ05WVF9BICBQUk9cdFx0XHRcdFx0JWx1XG4iLAkJQklUKGR3b3JkLCA2 KSk7CisgICAgcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0EgIExldmVsXHRcdFx0XHQlbHVcbiIs CQlCSVQoZHdvcmQsIDcpKTsKKyAgICBwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQSAgQ2F0ZWdv cnlfQ29kZVx0XHRcdCVsdVxuIiwJQklUUyhkd29yZCwgMTQsIDgpKTsKKyAgICBwcmludGYoIkFV RF9PVVRfRElHX0NOVlRfQSAgTG93ZXN0X0NoYW5uZWxfTnVtYmVyXHRcdCVsdVxuIixCSVRTKGR3 b3JkLCAxOSwgMTYpKTsKKyAgICBwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQSAgU3RyZWFtX0lE XHRcdFx0XHQlbHVcbiIsCUJJVFMoZHdvcmQsIDIzLCAyMCkpOworCisgICAgZHdvcmQgPSBJTlJF RyhBVURfT1VUX0RJR19DTlZUX0IpOworICAgIHByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9CICBW XHRcdFx0XHRcdCVsdVxuIiwJCUJJVChkd29yZCwgMSkpOworICAgIHByaW50ZigiQVVEX09VVF9E SUdfQ05WVF9CICBWQ0ZHXHRcdFx0XHQlbHVcbiIsCQlCSVQoZHdvcmQsIDIpKTsKKyAgICBwcmlu dGYoIkFVRF9PVVRfRElHX0NOVlRfQiAgUFJFXHRcdFx0XHRcdCVsdVxuIiwJCUJJVChkd29yZCwg MykpOworICAgIHByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9CICBDb3B5XHRcdFx0XHQlbHVcbiIs CQlCSVQoZHdvcmQsIDQpKTsKKyAgICBwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQiAgTm9uQXVk aW9cdFx0XHRcdDB4JWx4XG4iLAlCSVQoZHdvcmQsIDUpKTsKKyAgICBwcmludGYoIkFVRF9PVVRf RElHX0NOVlRfQiAgUFJPXHRcdFx0XHRcdCVsdVxuIiwJCUJJVChkd29yZCwgNikpOworICAgIHBy aW50ZigiQVVEX09VVF9ESUdfQ05WVF9CICBMZXZlbFx0XHRcdFx0JWx1XG4iLAkJQklUKGR3b3Jk LCA3KSk7CisgICAgcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0IgIENhdGVnb3J5X0NvZGVcdFx0 XHQlbHVcbiIsCUJJVFMoZHdvcmQsIDE0LCA4KSk7CisgICAgcHJpbnRmKCJBVURfT1VUX0RJR19D TlZUX0IgIExvd2VzdF9DaGFubmVsX051bWJlclx0XHQlbHVcbiIsQklUUyhkd29yZCwgMTksIDE2 KSk7CisgICAgcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0IgIFN0cmVhbV9JRFx0XHRcdFx0JWx1 XG4iLAlCSVRTKGR3b3JkLCAyMywgMjApKTsKKworICAgIGR3b3JkID0gSU5SRUcoQVVEX09VVF9E SUdfQ05WVF9DKTsKKyAgICBwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQyAgVlx0XHRcdFx0XHQl bHVcbiIsCQlCSVQoZHdvcmQsIDEpKTsKKyAgICBwcmludGYoIkFVRF9PVVRfRElHX0NOVlRfQyAg VkNGR1x0XHRcdFx0JWx1XG4iLAkJQklUKGR3b3JkLCAyKSk7CisgICAgcHJpbnRmKCJBVURfT1VU X0RJR19DTlZUX0MgIFBSRVx0XHRcdFx0XHQlbHVcbiIsCQlCSVQoZHdvcmQsIDMpKTsKKyAgICBw cmludGYoIkFVRF9PVVRfRElHX0NOVlRfQyAgQ29weVx0XHRcdFx0JWx1XG4iLAkJQklUKGR3b3Jk LCA0KSk7CisgICAgcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0MgIE5vbkF1ZGlvXHRcdFx0XHQw eCVseFxuIiwJQklUKGR3b3JkLCA1KSk7CisgICAgcHJpbnRmKCJBVURfT1VUX0RJR19DTlZUX0Mg IFBST1x0XHRcdFx0XHQlbHVcbiIsCQlCSVQoZHdvcmQsIDYpKTsKKyAgICBwcmludGYoIkFVRF9P VVRfRElHX0NOVlRfQyAgTGV2ZWxcdFx0XHRcdCVsdVxuIiwJCUJJVChkd29yZCwgNykpOworICAg IHByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9DICBDYXRlZ29yeV9Db2RlXHRcdFx0JWx1XG4iLAlC SVRTKGR3b3JkLCAxNCwgOCkpOworICAgIHByaW50ZigiQVVEX09VVF9ESUdfQ05WVF9DICBMb3dl c3RfQ2hhbm5lbF9OdW1iZXJcdFx0JWx1XG4iLEJJVFMoZHdvcmQsIDE5LCAxNikpOworICAgIHBy aW50ZigiQVVEX09VVF9ESUdfQ05WVF9DICBTdHJlYW1fSURcdFx0XHRcdCVsdVxuIiwJQklUUyhk d29yZCwgMjMsIDIwKSk7CisKKyAgICBwcmludGYoIkFVRF9PVVRfQ0hfU1RSICBDb252ZXJ0ZXJf Q2hhbm5lbF9NQVAJUE9SVEIJUE9SVEMJUE9SVERcbiIpOworICAgIGZvciAoaSA9IDA7IGkgPCA4 OyBpKyspIHsKKwkgICAgT1VUUkVHKEFVRF9PVVRfQ0hfU1RSLCBpIHwgKGkgPDwgOCkgfCAoaSA8 PCAxNikpOworCSAgICBkd29yZCA9IElOUkVHKEFVRF9PVVRfQ0hfU1RSKTsKKwkgICAgcHJpbnRm KCJcdFx0XHRcdCVsdVx0JWx1XHQlbHVcdCVsdVxuIiwKKwkJICAgMSArIEJJVFMoZHdvcmQsICAz LCAgMCksCisJCSAgIDEgKyBCSVRTKGR3b3JkLCAgNywgIDQpLAorCQkgICAxICsgQklUUyhkd29y ZCwgMTUsIDEyKSwKKwkJICAgMSArIEJJVFMoZHdvcmQsIDIzLCAyMCkpOworICAgIH0KKworICAg IGR3b3JkID0gSU5SRUcoQVVEX09VVF9TVFJfREVTQ19BKTsKKyAgICBwcmludGYoIkFVRF9PVVRf U1RSX0RFU0NfQSAgSEJSX2VuYWJsZVx0XHRcdFx0JWx1XG4iLAkgQklUUyhkd29yZCwgMjgsIDI3 KSk7CisgICAgcHJpbnRmKCJBVURfT1VUX1NUUl9ERVNDX0EgIENvbnZlcnRvcl9DaGFubmVsX0Nv dW50XHRcdCVsdVxuIiwgQklUUyhkd29yZCwgMjAsIDE2KSk7CisgICAgcHJpbnRmKCJBVURfT1VU X1NUUl9ERVNDX0EgIEJpdHNfcGVyX1NhbXBsZVx0XHRcdCVsdVxuIiwJIEJJVFMoZHdvcmQsIDYs IDQpKTsKKyAgICBwcmludGYoIkFVRF9PVVRfU1RSX0RFU0NfQSAgTnVtYmVyX29mX0NoYW5uZWxz X2luX2FfU3RyZWFtXHQlbHVcbiIsIDEgKyBCSVRTKGR3b3JkLCAzLCAwKSk7CisKKyAgICBkd29y ZCA9IElOUkVHKEFVRF9PVVRfU1RSX0RFU0NfQik7CisgICAgcHJpbnRmKCJBVURfT1VUX1NUUl9E RVNDX0IgIEhCUl9lbmFibGVcdFx0XHRcdCVsdVxuIiwJIEJJVFMoZHdvcmQsIDI4LCAyNykpOwor ICAgIHByaW50ZigiQVVEX09VVF9TVFJfREVTQ19CICBDb252ZXJ0b3JfQ2hhbm5lbF9Db3VudFx0 XHQlbHVcbiIsIEJJVFMoZHdvcmQsIDIwLCAxNikpOworICAgIHByaW50ZigiQVVEX09VVF9TVFJf REVTQ19CICBCaXRzX3Blcl9TYW1wbGVcdFx0XHQlbHVcbiIsCSBCSVRTKGR3b3JkLCA2LCA0KSk7 CisgICAgcHJpbnRmKCJBVURfT1VUX1NUUl9ERVNDX0IgIE51bWJlcl9vZl9DaGFubmVsc19pbl9h X1N0cmVhbVx0JWx1XG4iLCAxICsgQklUUyhkd29yZCwgMywgMCkpOworCisgICAgZHdvcmQgPSBJ TlJFRyhBVURfT1VUX1NUUl9ERVNDX0MpOworICAgIHByaW50ZigiQVVEX09VVF9TVFJfREVTQ19D ICBIQlJfZW5hYmxlXHRcdFx0XHQlbHVcbiIsCSBCSVRTKGR3b3JkLCAyOCwgMjcpKTsKKyAgICBw cmludGYoIkFVRF9PVVRfU1RSX0RFU0NfQyAgQ29udmVydG9yX0NoYW5uZWxfQ291bnRcdFx0JWx1 XG4iLCBCSVRTKGR3b3JkLCAyMCwgMTYpKTsKKyAgICBwcmludGYoIkFVRF9PVVRfU1RSX0RFU0Nf QyAgQml0c19wZXJfU2FtcGxlXHRcdFx0JWx1XG4iLAkgQklUUyhkd29yZCwgNiwgNCkpOworICAg IHByaW50ZigiQVVEX09VVF9TVFJfREVTQ19DICBOdW1iZXJfb2ZfQ2hhbm5lbHNfaW5fYV9TdHJl YW1cdCVsdVxuIiwgMSArIEJJVFMoZHdvcmQsIDMsIDApKTsKKworICAgIGR3b3JkID0gSU5SRUco QVVEX1BJTldfQ09OTkxOR19TRUwpOworICAgIHByaW50ZigiQVVEX1BJTldfQ09OTkxOR19TRUwg IENvbm5lY3Rpb25fc2VsZWN0X0NvbnRyb2xfQlx0JWx1XG4iLCBCSVRTKGR3b3JkLCAgNywgIDAp KTsKKyAgICBwcmludGYoIkFVRF9QSU5XX0NPTk5MTkdfU0VMICBDb25uZWN0aW9uX3NlbGVjdF9D b250cm9sX0NcdCVsdVxuIiwgQklUUyhkd29yZCwgMTUsICA4KSk7CisgICAgcHJpbnRmKCJBVURf UElOV19DT05OTE5HX1NFTCAgQ29ubmVjdGlvbl9zZWxlY3RfQ29udHJvbF9EXHQlbHVcbiIsIEJJ VFMoZHdvcmQsIDIzLCAxNikpOworCisgICAgZHdvcmQgPSBJTlJFRyhBVURfQ05UTF9TVF9BKTsK KyAgICBwcmludGYoIkFVRF9DTlRMX1NUX0EgIERJUF9Qb3J0X1NlbGVjdFx0XHRcdFx0WyUjbHhd ICVzXG4iLAorCQkJCQlCSVRTKGR3b3JkLCAzMCwgMjkpLCBkaXBfcG9ydFtCSVRTKGR3b3JkLCAz MCwgMjkpXSk7CisgICAgcHJpbnRmKCJBVURfQ05UTF9TVF9BICBESVBfdHlwZV9lbmFibGVfc3Rh dHVzIEF1ZGlvIERJUFx0XHQlbHVcbiIsIEJJVChkd29yZCwgMjEpKTsKKyAgICBwcmludGYoIkFV RF9DTlRMX1NUX0EgIERJUF90eXBlX2VuYWJsZV9zdGF0dXMgR2VuZXJpYyAxIEFDUCBESVBcdCVs dVxuIiwgQklUKGR3b3JkLCAyMikpOworICAgIHByaW50ZigiQVVEX0NOVExfU1RfQSAgRElQX3R5 cGVfZW5hYmxlX3N0YXR1cyBHZW5lcmljIDIgRElQXHQlbHVcbiIsIEJJVChkd29yZCwgMjMpKTsK KyAgICBwcmludGYoIkFVRF9DTlRMX1NUX0EgIERJUF90cmFuc21pc3Npb25fZnJlcXVlbmN5XHRc dFsweCVseF0gJXNcbiIsCisJCQkJCUJJVFMoZHdvcmQsIDE3LCAxNiksIGRpcF90cmFuc1tCSVRT KGR3b3JkLCAxNywgMTYpXSk7CisgICAgcHJpbnRmKCJBVURfQ05UTF9TVF9BICBFTERfQUNLXHRc dFx0XHRcdCVsdVxuIiwgQklUKGR3b3JkLCA0KSk7CisgICAgcHJpbnRmKCJBVURfQ05UTF9TVF9B ICBFTERfYnVmZmVyX3NpemVcdFx0XHRcdCVsdVxuIiwgQklUUyhkd29yZCwgMTQsIDEwKSk7CisK KyAgICBkd29yZCA9IElOUkVHKEFVRF9DTlRMX1NUX0IpOworICAgIHByaW50ZigiQVVEX0NOVExf U1RfQiAgRElQX1BvcnRfU2VsZWN0XHRcdFx0XHRbJSNseF0gJXNcbiIsCisJCQkJCUJJVFMoZHdv cmQsIDMwLCAyOSksIGRpcF9wb3J0W0JJVFMoZHdvcmQsIDMwLCAyOSldKTsKKyAgICBwcmludGYo IkFVRF9DTlRMX1NUX0IgIERJUF90eXBlX2VuYWJsZV9zdGF0dXMgQXVkaW8gRElQXHRcdCVsdVxu IiwgQklUKGR3b3JkLCAyMSkpOworICAgIHByaW50ZigiQVVEX0NOVExfU1RfQiAgRElQX3R5cGVf ZW5hYmxlX3N0YXR1cyBHZW5lcmljIDEgQUNQIERJUFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIyKSk7 CisgICAgcHJpbnRmKCJBVURfQ05UTF9TVF9CICBESVBfdHlwZV9lbmFibGVfc3RhdHVzIEdlbmVy aWMgMiBESVBcdCVsdVxuIiwgQklUKGR3b3JkLCAyMykpOworICAgIHByaW50ZigiQVVEX0NOVExf U1RfQiAgRElQX3RyYW5zbWlzc2lvbl9mcmVxdWVuY3lcdFx0WzB4JWx4XSAlc1xuIiwKKwkJCQkJ QklUUyhkd29yZCwgMTcsIDE2KSwgZGlwX3RyYW5zW0JJVFMoZHdvcmQsIDE3LCAxNildKTsKKyAg ICBwcmludGYoIkFVRF9DTlRMX1NUX0IgIEVMRF9BQ0tcdFx0XHRcdFx0JWx1XG4iLCBCSVQoZHdv cmQsIDQpKTsKKyAgICBwcmludGYoIkFVRF9DTlRMX1NUX0IgIEVMRF9idWZmZXJfc2l6ZVx0XHRc dFx0JWx1XG4iLCBCSVRTKGR3b3JkLCAxNCwgMTApKTsKKworICAgIGR3b3JkID0gSU5SRUcoQVVE X0NOVExfU1RfQyk7CisgICAgcHJpbnRmKCJBVURfQ05UTF9TVF9DICBESVBfUG9ydF9TZWxlY3Rc dFx0XHRcdFslI2x4XSAlc1xuIiwKKwkJCQkJQklUUyhkd29yZCwgMzAsIDI5KSwgZGlwX3BvcnRb QklUUyhkd29yZCwgMzAsIDI5KV0pOworICAgIHByaW50ZigiQVVEX0NOVExfU1RfQyAgRElQX3R5 cGVfZW5hYmxlX3N0YXR1cyBBdWRpbyBESVBcdFx0JWx1XG4iLCBCSVQoZHdvcmQsIDIxKSk7Cisg ICAgcHJpbnRmKCJBVURfQ05UTF9TVF9DICBESVBfdHlwZV9lbmFibGVfc3RhdHVzIEdlbmVyaWMg MSBBQ1AgRElQXHQlbHVcbiIsIEJJVChkd29yZCwgMjIpKTsKKyAgICBwcmludGYoIkFVRF9DTlRM X1NUX0MgIERJUF90eXBlX2VuYWJsZV9zdGF0dXMgR2VuZXJpYyAyIERJUFx0JWx1XG4iLCBCSVQo ZHdvcmQsIDIzKSk7CisgICAgcHJpbnRmKCJBVURfQ05UTF9TVF9DICBESVBfdHJhbnNtaXNzaW9u X2ZyZXF1ZW5jeVx0XHRbMHglbHhdICVzXG4iLAorCQkJCQlCSVRTKGR3b3JkLCAxNywgMTYpLCBk aXBfdHJhbnNbQklUUyhkd29yZCwgMTcsIDE2KV0pOworICAgIHByaW50ZigiQVVEX0NOVExfU1Rf QyAgRUxEX0FDS1x0XHRcdFx0XHQlbHVcbiIsIEJJVChkd29yZCwgNCkpOworICAgIHByaW50Zigi QVVEX0NOVExfU1RfQyAgRUxEX2J1ZmZlcl9zaXplXHRcdFx0XHQlbHVcbiIsIEJJVFMoZHdvcmQs IDE0LCAxMCkpOworCisgICAgZHdvcmQgPSBJTlJFRyhBVURfQ05UUkxfU1QyKTsKKyAgICBwcmlu dGYoIkFVRF9DTlRSTF9TVDIgIENQX1JlYWR5Qlx0XHRcdFx0JWx1XG4iLAlCSVQoZHdvcmQsIDEp KTsKKyAgICBwcmludGYoIkFVRF9DTlRSTF9TVDIgIEVMRF92YWxpZEJcdFx0XHRcdCVsdVxuIiwJ QklUKGR3b3JkLCAwKSk7CisgICAgcHJpbnRmKCJBVURfQ05UUkxfU1QyICBDUF9SZWFkeUNcdFx0 XHRcdCVsdVxuIiwJQklUKGR3b3JkLCA1KSk7CisgICAgcHJpbnRmKCJBVURfQ05UUkxfU1QyICBF TERfdmFsaWRDXHRcdFx0XHQlbHVcbiIsCUJJVChkd29yZCwgNCkpOworICAgIHByaW50ZigiQVVE X0NOVFJMX1NUMiAgQ1BfUmVhZHlEXHRcdFx0XHQlbHVcbiIsCUJJVChkd29yZCwgOSkpOworICAg IHByaW50ZigiQVVEX0NOVFJMX1NUMiAgRUxEX3ZhbGlkRFx0XHRcdFx0JWx1XG4iLAlCSVQoZHdv cmQsIDgpKTsKKworICAgIGR3b3JkID0gSU5SRUcoQVVEX0NOVFJMX1NUMyk7CisgICAgcHJpbnRm KCJBVURfQ05UUkxfU1QzICBUcmFuc0FfRFBUX0F1ZGlvX091dHB1dF9Fblx0XHQlbHVcbiIsCUJJ VChkd29yZCwgMykpOworICAgIHByaW50ZigiQVVEX0NOVFJMX1NUMyAgVHJhbnNBX3RvX1BvcnRf U2VsXHRcdFx0WyUjbHhdICVzXG4iLAorCQkJCUJJVFMoZHdvcmQsIDIsIDApLCB0cmFuc190b19w b3J0X3NlbFtCSVRTKGR3b3JkLCAyLCAwKV0pOworICAgIHByaW50ZigiQVVEX0NOVFJMX1NUMyAg VHJhbnNCX0RQVF9BdWRpb19PdXRwdXRfRW5cdFx0JWx1XG4iLAlCSVQoZHdvcmQsIDcpKTsKKyAg ICBwcmludGYoIkFVRF9DTlRSTF9TVDMgIFRyYW5zQl90b19Qb3J0X1NlbFx0XHRcdFslI2x4XSAl c1xuIiwKKwkJCQlCSVRTKGR3b3JkLCA2LCA0KSwgdHJhbnNfdG9fcG9ydF9zZWxbQklUUyhkd29y ZCwgNiwgNCldKTsKKyAgICBwcmludGYoIkFVRF9DTlRSTF9TVDMgIFRyYW5zQ19EUFRfQXVkaW9f T3V0cHV0X0VuXHRcdCVsdVxuIiwJQklUKGR3b3JkLCAxMSkpOworICAgIHByaW50ZigiQVVEX0NO VFJMX1NUMyAgVHJhbnNDX3RvX1BvcnRfU2VsXHRcdFx0WyUjbHhdICVzXG4iLAorCQkJCUJJVFMo ZHdvcmQsIDEwLCA4KSwgdHJhbnNfdG9fcG9ydF9zZWxbQklUUyhkd29yZCwgMTAsIDgpXSk7CisK KyAgICBkd29yZCA9IElOUkVHKEFVRF9IRE1JV19TVEFUVVMpOworICAgIHByaW50ZigiQVVEX0hE TUlXX1NUQVRVUyAgQ29udl9BX0NEQ0xLL0RPVENMS19GSUZPX1VuZGVycnVuXHQlbHVcbiIsIEJJ VChkd29yZCwgMjcpKTsKKyAgICBwcmludGYoIkFVRF9IRE1JV19TVEFUVVMgIENvbnZfQV9DRENM Sy9ET1RDTEtfRklGT19PdmVycnVuXHQlbHVcbiIsICBCSVQoZHdvcmQsIDI2KSk7CisgICAgcHJp bnRmKCJBVURfSERNSVdfU1RBVFVTICBDb252X0JfQ0RDTEsvRE9UQ0xLX0ZJRk9fVW5kZXJydW5c dCVsdVxuIiwgQklUKGR3b3JkLCAyOSkpOworICAgIHByaW50ZigiQVVEX0hETUlXX1NUQVRVUyAg Q29udl9CX0NEQ0xLL0RPVENMS19GSUZPX092ZXJydW5cdCVsdVxuIiwgIEJJVChkd29yZCwgMjgp KTsKKyAgICBwcmludGYoIkFVRF9IRE1JV19TVEFUVVMgIENvbnZfQ19DRENMSy9ET1RDTEtfRklG T19VbmRlcnJ1blx0JWx1XG4iLCBCSVQoZHdvcmQsIDMxKSk7CisgICAgcHJpbnRmKCJBVURfSERN SVdfU1RBVFVTICBDb252X0NfQ0RDTEsvRE9UQ0xLX0ZJRk9fT3ZlcnJ1blx0JWx1XG4iLCAgQklU KGR3b3JkLCAzMCkpOworICAgIHByaW50ZigiQVVEX0hETUlXX1NUQVRVUyAgQkNMSy9DRENMS19G SUZPX092ZXJydW5cdFx0JWx1XG4iLAkgQklUKGR3b3JkLCAyNSkpOworICAgIHByaW50ZigiQVVE X0hETUlXX1NUQVRVUyAgRnVuY3Rpb25fUmVzZXRcdFx0XHQlbHVcbiIsCQkgQklUKGR3b3JkLCAy NCkpOworCisgICAgcHJpbnRmKCJBVURfSERNSVdfSERNSUVESURfQSBIRE1JIEVMRDpcblx0Iik7 CisgICAgZHdvcmQgPSBJTlJFRyhBVURfQ05UTF9TVF9BKTsKKyAgICBkd29yZCAmPSB+QklUTUFT Syg5LCA1KTsKKyAgICBPVVRSRUcoQVVEX0NOVExfU1RfQSwgZHdvcmQpOworICAgIGZvciAoaSA9 IDA7IGkgPCBCSVRTKGR3b3JkLCAxNCwgMTApIC8gNDsgaSsrKQorCSAgICBwcmludGYoIiUwOHgg IiwgaHRvbmwoSU5SRUcoQVVEX0hETUlXX0hETUlFRElEX0EpKSk7CisgICAgcHJpbnRmKCJcbiIp OworCisgICAgcHJpbnRmKCJBVURfSERNSVdfSERNSUVESURfQiBIRE1JIEVMRDpcblx0Iik7Cisg ICAgZHdvcmQgPSBJTlJFRyhBVURfQ05UTF9TVF9CKTsKKyAgICBkd29yZCAmPSB+QklUTUFTSyg5 LCA1KTsKKyAgICBPVVRSRUcoQVVEX0NOVExfU1RfQiwgZHdvcmQpOworICAgIGZvciAoaSA9IDA7 IGkgPCBCSVRTKGR3b3JkLCAxNCwgMTApIC8gNDsgaSsrKQorCSAgICBwcmludGYoIiUwOHggIiwg aHRvbmwoSU5SRUcoQVVEX0hETUlXX0hETUlFRElEX0IpKSk7CisgICAgcHJpbnRmKCJcbiIpOwor CisgICAgcHJpbnRmKCJBVURfSERNSVdfSERNSUVESURfQyBIRE1JIEVMRDpcblx0Iik7CisgICAg ZHdvcmQgPSBJTlJFRyhBVURfQ05UTF9TVF9DKTsKKyAgICBkd29yZCAmPSB+QklUTUFTSyg5LCA1 KTsKKyAgICBPVVRSRUcoQVVEX0NOVExfU1RfQywgZHdvcmQpOworICAgIGZvciAoaSA9IDA7IGkg PCBCSVRTKGR3b3JkLCAxNCwgMTApIC8gNDsgaSsrKQorCSAgICBwcmludGYoIiUwOHggIiwgaHRv bmwoSU5SRUcoQVVEX0hETUlXX0hETUlFRElEX0MpKSk7CisgICAgcHJpbnRmKCJcbiIpOworCisg ICAgcHJpbnRmKCJBVURfSERNSVdfSU5GT0ZSX0EgSERNSSBhdWRpbyBJbmZvZnJhbWU6XG5cdCIp OworICAgIGR3b3JkID0gSU5SRUcoQVVEX0NOVExfU1RfQSk7CisgICAgZHdvcmQgJj0gfkJJVE1B U0soMjAsIDE4KTsKKyAgICBkd29yZCAmPSB+QklUTUFTSygzLCAwKTsKKyAgICBPVVRSRUcoQVVE X0NOVExfU1RfQSwgZHdvcmQpOworICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspCisJICAgIHBy aW50ZigiJTA4eCAiLCBodG9ubChJTlJFRyhBVURfSERNSVdfSU5GT0ZSX0EpKSk7CisgICAgcHJp bnRmKCJcbiIpOworCisgICAgcHJpbnRmKCJBVURfSERNSVdfSU5GT0ZSX0IgSERNSSBhdWRpbyBJ bmZvZnJhbWU6XG5cdCIpOworICAgIGR3b3JkID0gSU5SRUcoQVVEX0NOVExfU1RfQik7CisgICAg ZHdvcmQgJj0gfkJJVE1BU0soMjAsIDE4KTsKKyAgICBkd29yZCAmPSB+QklUTUFTSygzLCAwKTsK KyAgICBPVVRSRUcoQVVEX0NOVExfU1RfQiwgZHdvcmQpOworICAgIGZvciAoaSA9IDA7IGkgPCA4 OyBpKyspCisJICAgIHByaW50ZigiJTA4eCAiLCBodG9ubChJTlJFRyhBVURfSERNSVdfSU5GT0ZS X0IpKSk7CisgICAgcHJpbnRmKCJcbiIpOworCisgICAgcHJpbnRmKCJBVURfSERNSVdfSU5GT0ZS X0MgSERNSSBhdWRpbyBJbmZvZnJhbWU6XG5cdCIpOworICAgIGR3b3JkID0gSU5SRUcoQVVEX0NO VExfU1RfQyk7CisgICAgZHdvcmQgJj0gfkJJVE1BU0soMjAsIDE4KTsKKyAgICBkd29yZCAmPSB+ QklUTUFTSygzLCAwKTsKKyAgICBPVVRSRUcoQVVEX0NOVExfU1RfQywgZHdvcmQpOworICAgIGZv ciAoaSA9IDA7IGkgPCA4OyBpKyspCisJICAgIHByaW50ZigiJTA4eCAiLCBodG9ubChJTlJFRyhB VURfSERNSVdfSU5GT0ZSX0MpKSk7CisgICAgcHJpbnRmKCJcbiIpOworCit9CisKK2ludCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlzdHJ1Y3QgcGNpX2RldmljZSAqcGNpX2RldjsK KworCXBjaV9kZXYgPSBpbnRlbF9nZXRfcGNpX2RldmljZSgpOworCWRldmlkID0gcGNpX2Rldi0+ ZGV2aWNlX2lkOyAvKiBYWFggbm90IHRydWUgd2hlbiBtYXBwaW5nISAqLworCisJZG9fc2VsZl90 ZXN0cygpOworCisJaWYgKGFyZ2MgPT0gMikKKwkJaW50ZWxfbWFwX2ZpbGUoYXJndlsxXSk7CisJ ZWxzZQorCQlpbnRlbF9nZXRfbW1pbyhwY2lfZGV2KTsKKworCWlmIChIQVNfUENIX1NQTElUKGRl dmlkKSB8fCBnZXRlbnYoIkhBU19QQ0hfU1BMSVQiKSkgeworCQlpbnRlbF9jaGVja19wY2goKTsK KwkJZHVtcF9jcHQoKTsKKwl9IGVsc2UgaWYgKElTX0lST05MQUtFKGRldmlkKSkKKwkJZHVtcF9p cm9ubGFrZSgpOworCWVsc2UKKwkJZHVtcF9lYWdsZWxha2UoKTsKIAotICAgIHJldHVybiAwOwor CXJldHVybiAwOwogfQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=