From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) by sourceware.org (Postfix) with ESMTPS id 7F42A395A07F for ; Fri, 25 Nov 2022 08:42:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7F42A395A07F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-x62b.google.com with SMTP id fy37so8719320ejc.11 for ; Fri, 25 Nov 2022 00:42:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=YtS0UJdd/0ui3LgqnkZdKseFV7pCMUGKOxFRrhGL3Jo=; b=YirHdEUrU7TdQMI/2NOilNv3soPU7AXNGvZCJRMKxZaLViaZdD8oN6PrU/GdVqXFeg jIs6sBQwryNB9PHYKW+DMcU2Vek3/sQskAjZvj69TgP36hbZUP+UubvgvqfIzfnP30GB zL+TxYdW8baRbUpdg+PXoWF0Y6zvQLUjDQBKt8sK70rOu4g5HebVNxcgty8LmbCS9F+R 9l/dcMubWOk0e18geNnhAzXu/1EjVP77tQ3+lHcMUz9tjkYOBcLYS8g1fTq9MmG7pCco ue4bvOSl50nS/Gc4JiuthAFH1DfcVo1RQD01dsM2QOPZ0GN3DVFT7OBeDXM8DKbxmKWl qYKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=YtS0UJdd/0ui3LgqnkZdKseFV7pCMUGKOxFRrhGL3Jo=; b=8N4Br4G4mqWQXRrpEZAkYbUS9umlGbwwormQkWCPJ1reZnWxa5gZJr+Zk8AkqNMv5j ZPUO9YWl3Sc1+k01f3S4wdmMTMEIoTNYXNox7QoLJEER5zFeTIne+Batyb+4sHZl0x/i 4LoZ6hc2daA0RAUwvNHl93bQQ0LN9D5B6QfJt8HTjMmcovb/ZWZP3HL24IOuR5yghVuB 92QDoT7v6GX+/NtWdmD9ArkIGSxJvVOAgMkCv+gZpY49+IxF5DlXnIixfiuLvzJAtI40 SVI18vGPxgIhFaT8ukPFwKlPG2aPuDmY9e8P92fG/8t7Wv5sE0eAwNkIyC8Eg/bv+yDm uLbg== X-Gm-Message-State: ANoB5plMMdlPFCNXUjjIPdGZ3b3vhMZau3ISDcGxxL9JBR+pJ0xUEqec Nun4UkYGJ2d4fqxJhSjbYosv28khjhucJoTey3lCSwNg X-Google-Smtp-Source: AA0mqf6ty/3hgbT/8ofMl9tIZbI9vYxIqhpjB7FGIXa5RRD/RByNGVeo3He1IZ5RCM0xOsebM7lQFmr6XhLWtnTRk0I= X-Received: by 2002:a17:907:c787:b0:7ad:8035:ae3d with SMTP id tz7-20020a170907c78700b007ad8035ae3dmr22444729ejc.46.1669365771624; Fri, 25 Nov 2022 00:42:51 -0800 (PST) MIME-Version: 1.0 From: Zopolis0 Date: Fri, 25 Nov 2022 19:42:40 +1100 Message-ID: Subject: [PATCH 56/56] java, libjava: Upgrade from in-tree boehm-gc to external boehm-gc 8.3.0. To: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary="000000000000d18c5505ee47817a" X-Spam-Status: No, score=-0.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,PYZOR_CHECK,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000d18c5505ee47817a Content-Type: text/plain; charset="UTF-8" --000000000000d18c5505ee47817a Content-Type: application/x-patch; name="0056-java-libjava-Upgrade-from-in-tree-boehm-gc-to-extern.patch" Content-Disposition: attachment; filename="0056-java-libjava-Upgrade-from-in-tree-boehm-gc-to-extern.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_law8z9cs0 RnJvbSBhMjY3YjA2ZTFlMmVmMGNkN2RhMGI4ZDQxOGMzNDhjNTFiNDkwNGU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWlsaWFuIERvd25leSBUd2lzcyA8Y3JlYXRvcnNtaXRo bWR0QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyNSBOb3YgMjAyMiAxNzowNTozMCArMTEwMApTdWJq ZWN0OiBbUEFUQ0ggNTYvNTZdIGphdmEsIGxpYmphdmE6IFVwZ3JhZGUgZnJvbSBpbi10cmVlIGJv ZWhtLWdjIHRvCiBleHRlcm5hbCBib2VobS1nYyA4LjMuMC4KCmdjYy9qYXZhL0NoYW5nZUxvZzoK CgkqIGJvZWhtLmNjIChnZXRfYm9laG1fdHlwZV9kZXNjcmlwdG9yKTogUmVtb3ZlIGNoZWNrIGZv ciBmbGFnX3VzZV9ib2VobV9nYy4KCSh1c2VzX2p2X21hcmtvYmpfcCk6IFJlbW92ZSBmbGFnX3Vz ZV9ib2VobV9nYyBhc3NlcnQuCgkqIGp2c3BlYy5jYzogUmVtb3ZlIGZ1c2UtYm9laG0tZ2MuCgkq IGxhbmcub3B0OiBMaWtld2lzZS4KCmxpYmphdmEvQ2hhbmdlTG9nOgoKCSogYm9laG0uY2MgKEdD X1JFRElSRUNUX1RPX0xPQ0FMKTogSW5jbHVkZSBnYy9nYy5oIGluc3RlYWQgb2YgZ2NfbG9jYWxf YWxsb2MuaC4KCShfSnZfU2V0R0NGcmVlU3BhY2VEaXZpc29yKTogVXNlIEdDX2dldF9mcmVlX3Nw YWNlX2Rpdmlzb3IgdG8gZ2V0IG9sZF9kaXYgKGJlZm9yZSBHQ19zZXRfZnJlZV9zcGFjZV9kaXZp c29yIGNhbGwpLgoJKF9Kdl9Jbml0R0MpOiBVc2UgR0Nfc2V0IHZhcmlhbnRzIG9mIGZ1bmN0aW9u cy4KCShfSnZfR0NJbml0aWFsaXplRmluYWxpemVycyk6IExpa2V3aXNlLgoJKiBjb25maWd1cmUu YWM6IFJlcGxhY2UgaW4tdHJlZSBjaGVjayB3aXRoIGV4dGVybmFsIGNoZWNrcyBmcm9tIGxpYm9i amMsIGNoZWNrIHRoYXQgZm91bmQgdmVyc2lvbiBpcyBtb2Rlcm4gZW5vdWdoLgoJKiBnbnUvZ2Nq L3V0aWwvbmF0R0NJbmZvLmNjIChQQUNLQUdFX05BTUUpOiBSZW1vdmUuCgkoUEFDS0FHRV9TVFJJ TkcpOiBMaWtld2lzZS4KCShQQUNLQUdFX1RBUk5BTUUpOiBMaWtld2lzZS4KCShQQUNLQUdFX1ZF UlNJT04pOiBMaWtld2lzZS4KCShUUlVFKTogTGlrZXdpc2UuCgkoRkFMU0UpOiBMaWtld2lzZS4K CShHQ19wcmludF9kZWJ1Z19jYWxsYmFjayk6IFJlcGxhY2UgR0Nfbl9zZXRfbWFya3Mgd2l0aCBw dWJsaWMgZnVuY3Rpb25zLgoJKHN0cnVjdCBwcmludF9oYmxrZmxfcyk6IEFkZC4KCShVTklRVUVf VEhSRVNIT0xEKTogUmVtb3ZlLgoJKEhVR0VfVEhSRVNIT0xEKTogTGlrZXdpc2UuCgkoRkxfQ09N UFJFU1NJT04pOiBMaWtld2lzZS4KCShOX0hCTEtfRkxTKTogTGlrZXdpc2UuCgkocHJpbnRfaGJs a2ZsX2ZpbGVfaXRlbSk6IEFkZC4KCShJU19NQVBQRUQpOiBSZW1vdmUuCgkoR0NfcHJpbnRfaGJs a2ZyZWVsaXN0X2ZpbGUpOiBIYW5kbGUgbGFjayBvZiBIRFIgbWFjcm8uCgkoR0NfcHJpbnRfZGVi dWdfaW5mb19maWxlKTogVXNlIEdDX3dvcmQgaW5zdGVhZCBvZiB3b3JkLCBoYW5kbGUgbGFjayBv ZiBzdHJ1Y3QgaGJsa2hkci4KCShHQ19lbnVtZXJhdG9yOjplbnVtZXJhdGUpOiBVc2UgR0Nfd29y ZCBpbnN0ZWFkIG9mIHdvcmQuCgkoR0NfZW51bWVyYXRvcjo6ZW51bWVyYXRlX2NhbGxiYWNrX2Fk YXB0b3IpOiBVc2UgR0Nfd29yZCBpbnN0ZWFkIG9mIHdvcmQsIGhhbmRsZSBsYWNrIG9mIHN0cnVj dCBoYmxraGRyLgoJKEdDX2VudW1lcmF0b3I6OmVudW1lcmF0ZV9jYWxsYmFjayk6IEhhbmRsZSBs YWNrIG9mIEhEUiBtYWNyby4KCSogaW5jbHVkZS9ib2VobS1nYy5oOiBJbmNsdWRlIGdjL2djLmgg aW5zdGVhZCBvZiBnY19leHRfY29uZmlnLmgsIGFkanVzdCBjb21tZW50IGFjY29yZGluZ2x5LgoJ KiBsaWJnY2ouc3BlYy5pbjogUmVtb3ZlIEdDU1BFQyBhbmQgSkMxR0NTUEVDLgoJKiBNYWtlZmls ZS5pbjogUmVjb25maWd1cmUuCgkqIGNvbmZpZ3VyZTogTGlrZXdpc2UuCgkqIGdjai9NYWtlZmls ZS5pbjogTGlrZXdpc2UuCgkqIGluY2x1ZGUvTWFrZWZpbGUuaW46IExpa2V3aXNlLgoJKiBpbmNs dWRlL2NvbmZpZy5oLmluOiBMaWtld2lzZS4KCSogdGVzdHN1aXRlL01ha2VmaWxlLmluOiBMaWtl d2lzZS4KCkNvLWF1dGhvcmVkLWJ5OiBJdmFuIE1haWRhbnNraSA8aXZtYWlAbWFpbC5ydT4KLS0t CiBnY2MvamF2YS9ib2VobS5jYyAgICAgICAgICAgICAgICAgfCAgIDYgLQogZ2NjL2phdmEvanZz cGVjLmNjICAgICAgICAgICAgICAgIHwgICAyICstCiBnY2MvamF2YS9sYW5nLm9wdCAgICAgICAg ICAgICAgICAgfCAgIDQgLQogbGliamF2YS9NYWtlZmlsZS5pbiAgICAgICAgICAgICAgIHwgICA0 IC0KIGxpYmphdmEvYm9laG0uY2MgICAgICAgICAgICAgICAgICB8ICAyNCArLS0KIGxpYmphdmEv Y29uZmlndXJlICAgICAgICAgICAgICAgICB8IDMwOSArKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0KIGxpYmphdmEvY29uZmlndXJlLmFjICAgICAgICAgICAgICB8IDIwMiArKysrKysrKysr KysrKystLS0tCiBsaWJqYXZhL2djai9NYWtlZmlsZS5pbiAgICAgICAgICAgfCAgIDQgLQogbGli amF2YS9nbnUvZ2NqL3V0aWwvbmF0R0NJbmZvLmNjIHwgMTcxICsrKysrLS0tLS0tLS0tLS0tCiBs aWJqYXZhL2luY2x1ZGUvTWFrZWZpbGUuaW4gICAgICAgfCAgIDQgLQogbGliamF2YS9pbmNsdWRl L2JvZWhtLWdjLmggICAgICAgIHwgICA1ICstCiBsaWJqYXZhL2luY2x1ZGUvY29uZmlnLmguaW4g ICAgICAgfCAgIDMgKwogbGliamF2YS9saWJnY2ouc3BlYy5pbiAgICAgICAgICAgIHwgICA0ICst CiBsaWJqYXZhL3Rlc3RzdWl0ZS9NYWtlZmlsZS5pbiAgICAgfCAgIDQgLQogMTQgZmlsZXMgY2hh bmdlZCwgNTAxIGluc2VydGlvbnMoKyksIDI0NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9n Y2MvamF2YS9ib2VobS5jYyBiL2djYy9qYXZhL2JvZWhtLmNjCmluZGV4IDM4YTIxMzFlNmY4Li41 ODU5ZjAzODk5OCAxMDA2NDQKLS0tIGEvZ2NjL2phdmEvYm9laG0uY2MKKysrIGIvZ2NjL2phdmEv Ym9laG0uY2MKQEAgLTEzNiwxMCArMTM2LDYgQEAgZ2V0X2JvZWhtX3R5cGVfZGVzY3JpcHRvciAo dHJlZSB0eXBlKQogICBpbnQgcG9pbnRlcl9hZnRlcl9lbmQgPSAwOwogICB0cmVlIGZpZWxkLCB2 YWx1ZSwgdmFsdWVfdHlwZTsKIAotICAvKiBJZiB0aGUgR0Mgd2Fzbid0IHJlcXVlc3RlZCwganVz dCB1c2UgYSBudWxsIHBvaW50ZXIuICAqLwotICBpZiAoISBmbGFnX3VzZV9ib2VobV9nYykKLSAg ICByZXR1cm4gbnVsbF9wb2ludGVyX25vZGU7Ci0KICAgdmFsdWVfdHlwZSA9IGphdmFfdHlwZV9m b3JfbW9kZSAocHRyX21vZGUsIDEpOwogICB3aWRlX2ludCBtYXNrID0gd2k6Onplcm8gKFRZUEVf UFJFQ0lTSU9OICh2YWx1ZV90eXBlKSk7CiAKQEAgLTIyMyw4ICsyMTksNiBAQCBib29sCiB1c2Vz X2p2X21hcmtvYmpfcCAodHJlZSBkdGFibGUpCiB7CiAgIHRyZWUgdjsKLSAgLyogRklYTUU6IHdo YXQgZG8gd2UgcmV0dXJuIGlmICFmbGFnX3VzZV9ib2VobV9nYyA/ICovCi0gIGdjY19hc3NlcnQg KGZsYWdfdXNlX2JvZWhtX2djKTsKICAgLyogRklYTUU6IHRoaXMgaXMgd3JvbmcgaWYgVEFSR0VU X1ZUQUJMRV9VU0VTX0RFU0NSSVBUT1JTLiAgSG93ZXZlciwKICAgICAgdGhpcyBmdW5jdGlvbiBp cyBvbmx5IHVzZWQgd2l0aCBmbGFnX3JlZHVjZWRfcmVmbGVjdGlvbi4gIE5vCiAgICAgIHBvaW50 IGluIGFzc2VydGluZyB1bmxlc3Mgd2UgaGl0IHRoZSBiYWQgY2FzZS4gICovCmRpZmYgLS1naXQg YS9nY2MvamF2YS9qdnNwZWMuY2MgYi9nY2MvamF2YS9qdnNwZWMuY2MKaW5kZXggNTgxNDIzNjg2 MjEuLjM3ODY5MjZlOGQ5IDEwMDY0NAotLS0gYS9nY2MvamF2YS9qdnNwZWMuY2MKKysrIGIvZ2Nj L2phdmEvanZzcGVjLmNjCkBAIC02Niw3ICs2Niw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIGp2Z2Vu bWFpbl9zcGVjW10gPQogCQkgICAlPGZhc3N1bWUtY29tcGlsZWQqICU8Zm5vLWFzc3VtZS1jb21w aWxlZCpcCiAJCSAgICU8ZmNvbXBpbGUtcmVzb3VyY2UqICU8ZmFzc2VydCAlPGZuby1hc3NlcnQg XAogCQkgICAlPGZlbWl0LWNsYXNzLWZpbGUgJTxmZW1pdC1jbGFzcy1maWxlcyAlPGZlbmNvZGlu ZypcCi0JCSAgICU8ZnVzZS1ib2VobS1nYyAlPGZoYXNoLXN5bmNocm9uaXphdGlvbiAlPGZqbmlc CisJCSAgICU8Zmhhc2gtc3luY2hyb25pemF0aW9uICU8ZmpuaVwKIAkJICAgJTxmaW5kaXJlY3Qt ZGlzcGF0Y2hcCiAJCSAgICU8Zm5vLXN0b3JlLWNoZWNrICU8Zm91dHB1dC1jbGFzcy1kaXJcCiAJ CSAgICU8ZmNsYXNzcGF0aCogJTxmYm9vdGNsYXNzcGF0aCpcCmRpZmYgLS1naXQgYS9nY2MvamF2 YS9sYW5nLm9wdCBiL2djYy9qYXZhL2xhbmcub3B0CmluZGV4IGE2NTk2ZDU1YTljLi41OTQ4NjZk YTcwNyAxMDA2NDQKLS0tIGEvZ2NjL2phdmEvbGFuZy5vcHQKKysrIGIvZ2NjL2phdmEvbGFuZy5v cHQKQEAgLTI1NiwxMCArMjU2LDYgQEAgZnN0b3JlLWNoZWNrCiBKYXZhIFZhcihmbGFnX3N0b3Jl X2NoZWNrKSBJbml0KDEpCiBFbmFibGUgYXNzaWduYWJpbGl0eSBjaGVja3MgZm9yIHN0b3JlcyBp bnRvIG9iamVjdCBhcnJheXMuCiAKLWZ1c2UtYm9laG0tZ2MKLUphdmEgVmFyKGZsYWdfdXNlX2Jv ZWhtX2djKQotR2VuZXJhdGUgY29kZSBmb3IgdGhlIEJvZWhtIEdDLgotCiBmdXNlLWRpdmlkZS1z dWJyb3V0aW5lCiBKYXZhIFZhcihmbGFnX3VzZV9kaXZpZGVfc3Vicm91dGluZSkgSW5pdCgxKQog Q2FsbCBhIGxpYnJhcnkgcm91dGluZSB0byBkbyBpbnRlZ2VyIGRpdmlzaW9ucy4KZGlmZiAtLWdp dCBhL2xpYmphdmEvTWFrZWZpbGUuaW4gYi9saWJqYXZhL01ha2VmaWxlLmluCmluZGV4IGUxNzgw ZDk5YzE2Li4xOGVhM2ZkNjVkYSAxMDA2NDQKLS0tIGEvbGliamF2YS9NYWtlZmlsZS5pbgorKysg Yi9saWJqYXZhL01ha2VmaWxlLmluCkBAIC02NzksNyArNjc5LDYgQEAgRVhDRVBUSU9OU1BFQyA9 IEBFWENFUFRJT05TUEVDQAogRVhFRVhUID0gQEVYRUVYVEAKIEZHUkVQID0gQEZHUkVQQAogR0ND X0ZPUl9FQ0pYID0gQEdDQ19GT1JfRUNKWEAKLUdDREVQUyA9IEBHQ0RFUFNACiBHQ0lOQ1MgPSBA R0NJTkNTQAogR0NKID0gQEdDSkAKIEdDSkRFUE1PREUgPSBAR0NKREVQTU9ERUAKQEAgLTY4OSw4 ICs2ODgsNiBAQCBHQ0pWRVJTSU9OID0gQEdDSlZFUlNJT05ACiBHQ0pfQklOX0RJUiA9IEBHQ0pf QklOX0RJUkAKIEdDSl9GT1JfRUNKWCA9IEBHQ0pfRk9SX0VDSlhACiBHQ0xJQlMgPSBAR0NMSUJT QAotR0NTUEVDID0gQEdDU1BFQ0AKLUdDVEVTVFNQRUMgPSBAR0NURVNUU1BFQ0AKIEdMSUJfQ0ZM QUdTID0gQEdMSUJfQ0ZMQUdTQAogR0xJQl9MSUJTID0gQEdMSUJfTElCU0AKIEdSRVAgPSBAR1JF UEAKQEAgLTcwOCw3ICs3MDUsNiBAQCBJTlRFUlBSRVRFUiA9IEBJTlRFUlBSRVRFUkAKIEpBUiA9 IEBKQVJACiBKQVZBX0hPTUUgPSBASkFWQV9IT01FQAogSkFWQV9WRVJTSU9OID0gQEpBVkFfVkVS U0lPTkAKLUpDMUdDU1BFQyA9IEBKQzFHQ1NQRUNACiBKUkVfQklOX0RJUiA9IEBKUkVfQklOX0RJ UkAKIEpSRV9ESVIgPSBASlJFX0RJUkAKIEpSRV9MSUJfRElSID0gQEpSRV9MSUJfRElSQApkaWZm IC0tZ2l0IGEvbGliamF2YS9ib2VobS5jYyBiL2xpYmphdmEvYm9laG0uY2MKaW5kZXggMDQzZmQw MDMwY2EuLmRhOTBmNmRiNzA1IDEwMDY0NAotLS0gYS9saWJqYXZhL2JvZWhtLmNjCisrKyBiL2xp YmphdmEvYm9laG0uY2MKQEAgLTQwLDIwICs0MCwxOCBAQCBkZXRhaWxzLiAgKi8KIAogZXh0ZXJu ICJDIgogewotI2luY2x1ZGUgPGdjX2NvbmZpZy5oPgotCiAvLyBTZXQgR0NfREVCVUcgYmVmb3Jl IGluY2x1ZGluZyBnYy5oIQogI2lmZGVmIExJQkdDSl9HQ19ERUJVRwogIyBkZWZpbmUgR0NfREVC VUcKICNlbmRpZgogCi0jaW5jbHVkZSA8Z2NfbWFyay5oPgotI2luY2x1ZGUgPGdjX2djai5oPgot I2luY2x1ZGUgPGphdmF4ZmMuaD4gIC8vIEdDX2ZpbmFsaXplX2FsbCBkZWNsYXJhdGlvbi4gIAor I2luY2x1ZGUgPGdjL2djX21hcmsuaD4KKyNpbmNsdWRlIDxnYy9nY19nY2ouaD4KKyNpbmNsdWRl IDxnYy9qYXZheGZjLmg+ICAvLyBHQ19maW5hbGl6ZV9hbGwgZGVjbGFyYXRpb24uCiAKICNpZmRl ZiBUSFJFQURfTE9DQUxfQUxMT0MKICMgZGVmaW5lIEdDX1JFRElSRUNUX1RPX0xPQ0FMCi0jIGlu Y2x1ZGUgPGdjX2xvY2FsX2FsbG9jLmg+CisjIGluY2x1ZGUgPGdjL2djLmg+CiAjZW5kaWYKIAog ICAvLyBGcm9tIGJvZWhtJ3MgbWlzYy5jIApAQCAtNDY4LDcgKzQ2Niw5IEBAIF9Kdl9HQ1NldE1h eGltdW1IZWFwU2l6ZSAoc2l6ZV90IHNpemUpCiBpbnQKIF9Kdl9TZXRHQ0ZyZWVTcGFjZURpdmlz b3IgKGludCBkaXYpCiB7Ci0gIHJldHVybiAoaW50KUdDX3NldF9mcmVlX3NwYWNlX2Rpdmlzb3Ig KChHQ193b3JkKWRpdik7CisgIGludCBvbGRfZGl2ID0gKGludClHQ19nZXRfZnJlZV9zcGFjZV9k aXZpc29yICgpOworICBHQ19zZXRfZnJlZV9zcGFjZV9kaXZpc29yICgoR0Nfd29yZClkaXYpOwor ICByZXR1cm4gb2xkX2RpdjsKIH0KIAogdm9pZApAQCAtNTIzLDcgKzUyMyw3IEBAIF9Kdl9Jbml0 R0MgKHZvaWQpCiAgIGdjX2luaXRpYWxpemVkID0gMTsKIAogICAvLyBJZ25vcmUgcG9pbnRlcnMg dGhhdCBkbyBub3QgcG9pbnQgdG8gdGhlIHN0YXJ0IG9mIGFuIG9iamVjdC4KLSAgR0NfYWxsX2lu dGVyaW9yX3BvaW50ZXJzID0gMDsKKyAgR0Nfc2V0X2FsbF9pbnRlcmlvcl9wb2ludGVycygwKTsK IAogI2lmIGRlZmluZWQgKEhBVkVfRExGQ05fSCkgJiYgZGVmaW5lZCAoSEFWRV9ETEFERFIpCiAg IC8vIFRlbGwgdGhlIGNvbGxlY3RvciB0byBhc2sgdXMgYmVmb3JlIHNjYW5uaW5nIERTT3MuCkBA IC01MzgsOSArNTM4LDkgQEAgX0p2X0luaXRHQyAodm9pZCkKIAogICAvLyBDYXVzZSBhbiBvdXQg b2YgbWVtb3J5IGVycm9yIHRvIGJlIHRocm93biBmcm9tIHRoZSBhbGxvY2F0b3JzLAogICAvLyBp bnN0ZWFkIG9mIHJldHVybmluZyAwLiAgVGhpcyBpcyBjaGVhcGVyIHRoYW4gY2hlY2tpbmcgb24g YWxsb2NhdGlvbi4KLSAgR0Nfb29tX2ZuID0gaGFuZGxlX291dF9vZl9tZW1vcnk7CisgIEdDX3Nl dF9vb21fZm4oaGFuZGxlX291dF9vZl9tZW1vcnkpOwogCi0gIEdDX2phdmFfZmluYWxpemF0aW9u ID0gMTsKKyAgR0Nfc2V0X2phdmFfZmluYWxpemF0aW9uKDEpOwogCiAgIC8vIFdlIHVzZSBhIGRp ZmZlcmVudCBtYXJrIHByb2NlZHVyZSBmb3Igb2JqZWN0IGFycmF5cy4gVGhpcyBjb2RlIAogICAv LyBjb25maWd1cmVzIGEgZGlmZmVyZW50IG9iamVjdCBga2luZCcgZm9yIG9iamVjdCBhcnJheSBh bGxvY2F0aW9uIGFuZApAQCAtNTk3LDggKzU5Nyw4IEBAIF9Kdl9BbGxvY1RyYWNlVHdvIChqc2l6 ZSBzaXplIC8qIGluY2x1ZGVzIHZ0YWJsZSBzbG90ICovKQogdm9pZAogX0p2X0dDSW5pdGlhbGl6 ZUZpbmFsaXplcnMgKHZvaWQgKCpub3RpZmllcikgKHZvaWQpKQogewotICBHQ19maW5hbGl6ZV9v bl9kZW1hbmQgPSAxOwotICBHQ19maW5hbGl6ZXJfbm90aWZpZXIgPSBub3RpZmllcjsKKyAgR0Nf c2V0X2ZpbmFsaXplX29uX2RlbWFuZCgxKTsKKyAgR0Nfc2V0X2ZpbmFsaXplcl9ub3RpZmllcihu b3RpZmllcik7CiB9CiAKIHZvaWQKZGlmZiAtLWdpdCBhL2xpYmphdmEvY29uZmlndXJlIGIvbGli amF2YS9jb25maWd1cmUKaW5kZXggMzBjZmZhNjMzYzMuLjk2NmI1MTU0ZjM1IDEwMDc1NQotLS0g YS9saWJqYXZhL2NvbmZpZ3VyZQorKysgYi9saWJqYXZhL2NvbmZpZ3VyZQpAQCAtNzM5LDEwICs3 MzksNiBAQCBVU0lOR19OT0dDX0ZBTFNFCiBVU0lOR19OT0dDX1RSVUUKIFVTSU5HX0JPRUhNR0Nf RkFMU0UKIFVTSU5HX0JPRUhNR0NfVFJVRQotR0NURVNUU1BFQwotSkMxR0NTUEVDCi1HQ1NQRUMK LUdDREVQUwogR0NJTkNTCiBHQ0xJQlMKIExJQkdDSlRFU1RTUEVDCkBAIC0xMDIzLDYgKzEwMTks OSBAQCB3aXRoX2Vjb3MKIHdpdGhfc3lzdGVtX3psaWIKIHdpdGhfeAogZW5hYmxlX2phdmFfZ2MK K3dpdGhfdGFyZ2V0X2Jkd19nYword2l0aF90YXJnZXRfYmR3X2djX2luY2x1ZGUKK3dpdGhfdGFy Z2V0X2Jkd19nY19saWIKIGVuYWJsZV9ycGF0aAogd2l0aF9saWJpY29udl9wcmVmaXgKIHdpdGhf bGliaWNvbnZfdHlwZQpAQCAtMTcxOSw3ICsxNzE4LDggQEAgT3B0aW9uYWwgRmVhdHVyZXM6CiAg IC0tZW5hYmxlLWludGVycHJldGVyICAgIGVuYWJsZSBpbnRlcnByZXRlcgogICAtLWRpc2FibGUt amF2YS1uZXQgICAgICBkaXNhYmxlIGphdmEubmV0CiAgIC0tZGlzYWJsZS1qdm1waSAgICAgICAg IGRpc2FibGUgSlZNUEkgc3VwcG9ydAotICAtLWVuYWJsZS1qYXZhLWdjPVRZUEUgICBjaG9vc2Ug Z2FyYmFnZSBjb2xsZWN0b3IgKGRlZmF1bHQgaXMgYm9laG0pCisgIC0tZW5hYmxlLWphdmEtZ2Nb PUFSR10gIGVuYWJsZSB0aGUgdXNlIG9mIHRoZSBiZHctZ2MgZ2FyYmFnZSBjb2xsZWN0b3Igd2l0 aAorICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJqYXZhIFtBUkc9e2RlZmF1bHQseWVzLG5v fV0KICAgLS1kaXNhYmxlLXJwYXRoICAgICAgICAgZG8gbm90IGhhcmRjb2RlIHJ1bnRpbWUgbGli cmFyeSBwYXRocwogICAtLWVuYWJsZS10bHMgICAgICAgICAgICBVc2UgdGhyZWFkLWxvY2FsIHN0 b3JhZ2UgW2RlZmF1bHQ9eWVzXQogICAtLWRpc2FibGUtc3ltdmVycyAgICAgICBkaXNhYmxlIHN5 bWJvbCB2ZXJzaW9uaW5nIGZvciBsaWJqYXZhCkBAIC0xNzUzLDYgKzE3NTMsMTYgQEAgT3B0aW9u YWwgUGFja2FnZXM6CiAgIC0td2l0aC1lY29zICAgICAgICAgICAgIGVuYWJsZSBydW50aW1lIGVD b3MgdGFyZ2V0IHN1cHBvcnQKICAgLS13aXRoLXN5c3RlbS16bGliICAgICAgdXNlIGluc3RhbGxl ZCBsaWJ6CiAgIC0td2l0aC14ICAgICAgICAgICAgICAgIHVzZSB0aGUgWCBXaW5kb3cgU3lzdGVt CisgIC0td2l0aC10YXJnZXQtYmR3LWdjPVBBVEhMSVNUCisgICAgICAgICAgICAgICAgICAgICAg ICAgIHNwZWNpZnkgcHJlZml4IGRpcmVjdG9yeSBmb3IgaW5zdGFsbGVkIGJkdy1nYworICAgICAg ICAgICAgICAgICAgICAgICAgICBwYWNrYWdlLiBFcXVpdmFsZW50IHRvCisgICAgICAgICAgICAg ICAgICAgICAgICAgIC0td2l0aC10YXJnZXQtYmR3LWdjLWluY2x1ZGU9UEFUSC9pbmNsdWRlIHBs dXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLS13aXRoLXRhcmdldC1iZHctZ2MtbGliPVBB VEgvbGliCisgIC0td2l0aC10YXJnZXQtYmR3LWdjLWluY2x1ZGU9UEFUSExJU1QKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgc3BlY2lmeSBkaXJlY3RvcmllcyBmb3IgaW5zdGFsbGVkIGJkdy1n YyBpbmNsdWRlCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzCisgIC0td2l0aC10YXJn ZXQtYmR3LWdjLWxpYj1QQVRITElTVAorICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZ5 IGRpcmVjdG9yaWVzIGZvciBpbnN0YWxsZWQgYmR3LWdjIGxpYnJhcnkKICAgLS13aXRoLWdudS1s ZCAgICAgICAgICAgYXNzdW1lIHRoZSBDIGNvbXBpbGVyIHVzZXMgR05VIGxkIGRlZmF1bHQ9bm8K ICAgLS13aXRoLWxpYmljb252LXByZWZpeFs9RElSXSAgc2VhcmNoIGZvciBsaWJpY29udiBpbiBE SVIvaW5jbHVkZSBhbmQgRElSL2xpYgogICAtLXdpdGhvdXQtbGliaWNvbnYtcHJlZml4ICAgICBk b24ndCBzZWFyY2ggZm9yIGxpYmljb252IGluIGluY2x1ZGVkaXIgYW5kIGxpYmRpcgpAQCAtMTMx MjgsNyArMTMxMzgsNyBAQCBlbHNlCiAgIGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0x OyBsdF9kbG5lZWRfdXNjb3JlPTIKICAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KICAgY2F0ID4g Y29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLSNsaW5lIDEzMTMxICJjb25maWd1cmUiCisjbGlu ZSAxMzE0MSAiY29uZmlndXJlIgogI2luY2x1ZGUgImNvbmZkZWZzLmgiCiAKICNpZiBIQVZFX0RM RkNOX0gKQEAgLTEzMjM0LDcgKzEzMjQ0LDcgQEAgZWxzZQogICBsdF9kbHVua25vd249MDsgbHRf ZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCiAgIGx0X3N0YXR1cz0kbHRfZGx1bmtu b3duCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0jbGluZSAxMzIzNyAiY29u ZmlndXJlIgorI2xpbmUgMTMyNDcgImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25mZGVmcy5oIgog CiAjaWYgSEFWRV9ETEZDTl9ICkBAIC0yMTQyNiw1NSArMjE0MzYsMjY0IEBAIGZpCiAKIAogCi0j IEFsbG93IHRoZSBHQyB0byBiZSBkaXNhYmxlZC4gIENhbiBiZSB1c2VmdWwgd2hlbiBkZWJ1Z2dp bmcuCi17ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZv ciBnYXJiYWdlIGNvbGxlY3RvciB0byB1c2UiID4mNQotJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IGdhcmJhZ2UgY29sbGVjdG9yIHRvIHVzZS4uLiAiID4mNjsgfQoreyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiBnYXJiYWdlIGNvbGxlY3RvciBpcyBl bmFibGVkIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGlmIGdhcmJhZ2UgY29sbGVjdG9yIGlz IGVuYWJsZWQuLi4gIiA+JjY7IH0KICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1qYXZhLWdjIHdh cyBnaXZlbi4KIGlmIHRlc3QgIiR7ZW5hYmxlX2phdmFfZ2Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgot ICBlbmFibGV2YWw9JGVuYWJsZV9qYXZhX2djOyBHQz0kZW5hYmxldmFsCi1lbHNlCi0gIEdDPWJv ZWhtCi1maQotCi1HQ0xJQlM9Ci1HQ0lOQ1M9Ci1HQ0RFUFM9Ci1HQ1NQRUM9Ci1KQzFHQ1NQRUM9 Ci1HQ1RFU1RTUEVDPQotY2FzZSAiJEdDIiBpbgotIGJvZWhtKQotICAgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBib2VobSIgPiY1Ci0kYXNfZWNobyAi Ym9laG0iID4mNjsgfQotICAgIEdDTElCUz0uLi9ib2VobS1nYy9saWJnY2pnY19jb252ZW5pZW5j ZS5sYQotICAgIEpDMUdDU1BFQz0nLWZ1c2UtYm9laG0tZ2MnCi0gICAgR0NURVNUU1BFQz0iLUxg JHtQV0RDTUQtcHdkfWAvLi4vYm9laG0tZ2MvLmxpYnMgLXJwYXRoIGAke1BXRENNRC1wd2R9YC8u Li9ib2VobS1nYy8ubGlicyIKLSAgICBHQ0lOQ1M9Jy1JJCh0b3Bfc3JjZGlyKS8uLi9ib2VobS1n Yy9pbmNsdWRlIC1JLi4vYm9laG0tZ2MvaW5jbHVkZScKLSAgICBHQ09CSlM9Ym9laG0ubG8KLSAg ICBHQ0hEUj1ib2VobS1nYy5oCi0gICAgIyBUaGUgUE9TSVggdGhyZWFkIHN1cHBvcnQgbmVlZHMg dG8ga25vdyB0aGlzLgorICBlbmFibGV2YWw9JGVuYWJsZV9qYXZhX2djOyBVU0VfR0M9JGVuYWJs ZXZhbAorZWxzZQorICBVU0VfR0M9eWVzCitmaQogCi0kYXNfZWNobyAiI2RlZmluZSBIQVZFX0JP RUhNX0dDIDEiID4+Y29uZmRlZnMuaAogCisjIENoZWNrIHdoZXRoZXIgLS13aXRoLXRhcmdldC1i ZHctZ2Mgd2FzIGdpdmVuLgoraWYgdGVzdCAiJHt3aXRoX3RhcmdldF9iZHdfZ2Mrc2V0fSIgPSBz ZXQ7IHRoZW4gOgorICB3aXRodmFsPSR3aXRoX3RhcmdldF9iZHdfZ2M7CitmaQorCisKKyMgQ2hl Y2sgd2hldGhlciAtLXdpdGgtdGFyZ2V0LWJkdy1nYy1pbmNsdWRlIHdhcyBnaXZlbi4KK2lmIHRl c3QgIiR7d2l0aF90YXJnZXRfYmR3X2djX2luY2x1ZGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorICB3 aXRodmFsPSR3aXRoX3RhcmdldF9iZHdfZ2NfaW5jbHVkZTsKK2ZpCisKKworIyBDaGVjayB3aGV0 aGVyIC0td2l0aC10YXJnZXQtYmR3LWdjLWxpYiB3YXMgZ2l2ZW4uCitpZiB0ZXN0ICIke3dpdGhf dGFyZ2V0X2Jkd19nY19saWIrc2V0fSIgPSBzZXQ7IHRoZW4gOgorICB3aXRodmFsPSR3aXRoX3Rh cmdldF9iZHdfZ2NfbGliOworZmkKKworCitjYXNlICIke1VTRV9HQ30iIGluCitubykKKyAgdXNl X2Jkd19nYz1ubworICA7OworeWVzfGRlZmF1bHQpCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGJkdyBnYXJiYWdlIGNvbGxlY3RvciIgPiY1 CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgYmR3IGdhcmJhZ2UgY29sbGVjdG9yLi4uICIgPiY2 OyB9CisgIGlmIHRlc3QgIngkd2l0aF90YXJnZXRfYmR3X2djJHdpdGhfdGFyZ2V0X2Jkd19nY19p bmNsdWRlJHdpdGhfdGFyZ2V0X2Jkd19nY19saWIiID0geDsgdGhlbgorICAgICAgICBCRFdfR0Nf Q0ZMQUdTPQorICAgIEdDTElCUz0iLWxnYyIKKyAgZWxzZQorICAgICAgICBpZiB0ZXN0ICJ4JHdp dGhfdGFyZ2V0X2Jkd19nY19pbmNsdWRlIiA9IHggJiYgdGVzdCAieCR3aXRoX3RhcmdldF9iZHdf Z2NfbGliIiAhPSB4OyB0aGVuCisgICAgICBhc19mbl9lcnJvciAkPyAiZm91bmQgLS13aXRoLXRh cmdldC1iZHctZ2MtbGliIGJ1dCAtLXdpdGgtdGFyZ2V0LWJkdy1nYy1pbmNsdWRlIG1pc3Npbmci ICIkTElORU5PIiA1CisgICAgZWxpZiB0ZXN0ICJ4JHdpdGhfdGFyZ2V0X2Jkd19nY19pbmNsdWRl IiAhPSB4ICYmIHRlc3QgIngkd2l0aF90YXJnZXRfYmR3X2djX2xpYiIgPSB4OyB0aGVuCisgICAg ICBhc19mbl9lcnJvciAkPyAiZm91bmQgLS13aXRoLXRhcmdldC1iZHctZ2MtaW5jbHVkZSBidXQg LS13aXRoLXRhcmdldC1iZHctZ2MtbGliIG1pc3NpbmciICIkTElORU5PIiA1CisgICAgZWxzZQor ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHVz aW5nIHBhdGhzIGNvbmZpZ3VyZWQgd2l0aCAtLXdpdGgtdGFyZ2V0LWJkdy1nYyBvcHRpb25zIiA+ JjUKKyRhc19lY2hvICJ1c2luZyBwYXRocyBjb25maWd1cmVkIHdpdGggLS13aXRoLXRhcmdldC1i ZHctZ2Mgb3B0aW9ucyIgPiY2OyB9CisgICAgZmkKKyAgICBtbGRpcj1gJHtDQy1nY2N9IC0tcHJp bnQtbXVsdGktZGlyZWN0b3J5IDI+L2Rldi9udWxsYAorICAgIGJkd192YWw9CisgICAgaWYgdGVz dCAieCR3aXRoX3RhcmdldF9iZHdfZ2MiICE9IHg7IHRoZW4KKyAgICAgIGZvciBpIGluIGBlY2hv ICR3aXRoX3RhcmdldF9iZHdfZ2MgfCB0ciAnLCcgJyAnYDsgZG8KKyAgICAgICAgY2FzZSAiJGki IGluCisgICAgICAgICAgKj0qKSBzZD0ke2klJT0qfTsgZD0ke2kjKj19IDs7CisgICAgICAgICAg Kikgc2Q9LjsgZD0kaSA7OworICAgICAgICBlc2FjCisgICAgICAgIGlmIHRlc3QgIiRtbGRpciIg PSAiJHNkIjsgdGhlbgorICAgICAgICAgIGJkd192YWw9JGQKKyAgICAgICAgZmkKKyAgICAgIGRv bmUKKyAgICAgIGlmIHRlc3QgIngkYmR3X3ZhbCIgPSB4OyB0aGVuCisgICAgICAgIGFzX2ZuX2Vy cm9yICQ/ICJubyBtdWx0aWxpYiBwYXRoICgkbWxkaXIpIGZvdW5kIGluIC0td2l0aC10YXJnZXQt YmR3LWdjIiAiJExJTkVOTyIgNQorICAgICAgZmkKKyAgICAgIGJkd19pbmNfZGlyPSIkYmR3X3Zh bC9pbmNsdWRlIgorICAgICAgYmR3X2xpYl9kaXI9IiRiZHdfdmFsL2xpYiIKKyAgICBmaQorICAg IGJkd192YWw9CisgICAgaWYgdGVzdCAieCR3aXRoX3RhcmdldF9iZHdfZ2NfaW5jbHVkZSIgIT0g eDsgdGhlbgorICAgICAgZm9yIGkgaW4gYGVjaG8gJHdpdGhfdGFyZ2V0X2Jkd19nY19pbmNsdWRl IHwgdHIgJywnICcgJ2A7IGRvCisgICAgICAgIGNhc2UgIiRpIiBpbgorICAgICAgICAgICo9Kikg c2Q9JHtpJSU9Kn07IGQ9JHtpIyo9fSA7OworICAgICAgICAgICopIHNkPS47IGQ9JGk7IGZhbGxi YWNrPSRpIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgaWYgdGVzdCAiJG1sZGlyIiA9ICIkc2Qi OyB0aGVuCisgICAgICAgICAgYmR3X3ZhbD0kZAorICAgICAgICBmaQorICAgICAgZG9uZQorICAg ICAgaWYgdGVzdCAieCRiZHdfdmFsIiA9IHggJiYgdGVzdCAieCRiZHdfaW5jX2RpciIgPSB4ICYm IHRlc3QgIngkZmFsbGJhY2siICE9IHg7IHRoZW4KKyAgICAgICAgYmR3X2luY19kaXI9IiRmYWxs YmFjayIKKyAgICAgIGVsaWYgdGVzdCAieCRiZHdfdmFsIiA9IHg7IHRoZW4KKyAgICAgICAgYXNf Zm5fZXJyb3IgJD8gIm5vIG11bHRpbGliIHBhdGggKCRtbGRpcikgZm91bmQgaW4gLS13aXRoLXRh cmdldC1iZHctZ2MtaW5jbHVkZSIgIiRMSU5FTk8iIDUKKyAgICAgIGVsc2UKKyAgICAgICAgYmR3 X2luY19kaXI9IiRiZHdfdmFsIgorICAgICAgZmkKKyAgICBmaQorICAgIGJkd192YWw9CisgICAg aWYgdGVzdCAieCR3aXRoX3RhcmdldF9iZHdfZ2NfbGliIiAhPSB4OyB0aGVuCisgICAgICBmb3Ig aSBpbiBgZWNobyAkd2l0aF90YXJnZXRfYmR3X2djX2xpYiB8IHRyICcsJyAnICdgOyBkbworICAg ICAgICBjYXNlICIkaSIgaW4KKyAgICAgICAgICAqPSopIHNkPSR7aSUlPSp9OyBkPSR7aSMqPX0g OzsKKyAgICAgICAgICAqKSBzZD0uOyBkPSRpIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgaWYg dGVzdCAiJG1sZGlyIiA9ICIkc2QiOyB0aGVuCisgICAgICAgICAgYmR3X3ZhbD0kZAorICAgICAg ICBmaQorICAgICAgZG9uZQorICAgICAgaWYgdGVzdCAieCRiZHdfdmFsIiA9IHg7IHRoZW4KKyAg ICAgICAgYXNfZm5fZXJyb3IgJD8gIm5vIG11bHRpbGliIHBhdGggKCRtbGRpcikgZm91bmQgaW4g LS13aXRoLXRhcmdldC1iZHctZ2MtbGliIiAiJExJTkVOTyIgNQorICAgICAgZmkKKyAgICAgIGJk d19saWJfZGlyPSIkYmR3X3ZhbCIKKyAgICBmaQorICAgIGlmIHRlc3QgIngkYmR3X2luY19kaXIi ID0geDsgdGhlbgorICAgICAgYXNfZm5fZXJyb3IgJD8gIm5vIG11bHRpbGliIHBhdGggKCRtbGRp cikgZm91bmQgaW4gLS13aXRoLXRhcmdldC1iZHctZ2MtaW5jbHVkZSIgIiRMSU5FTk8iIDUKKyAg ICBmaQorICAgIGlmIHRlc3QgIngkYmR3X2xpYl9kaXIiID0geDsgdGhlbgorICAgICAgYXNfZm5f ZXJyb3IgJD8gIm5vIG11bHRpbGliIHBhdGggKCRtbGRpcikgZm91bmQgaW4gLS13aXRoLXRhcmdl dC1iZHctZ2MtbGliIiAiJExJTkVOTyIgNQorICAgIGZpCisgICAgQkRXX0dDX0NGTEFHUz0iLUkk YmR3X2luY19kaXIiCisgICAgaWYgdGVzdCAtZiAkYmR3X2xpYl9kaXIvbGliZ2MubGE7IHRoZW4K KyAgICAgIEdDTElCUz0iJGJkd19saWJfZGlyL2xpYmdjLmxhIgorICAgIGVsc2UKKyAgICAgIEdD TElCUz0iLUwkYmR3X2xpYl9kaXIgLWxnYyIKKyAgICBmaQorICAgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBmb3VuZCIgPiY1CiskYXNfZWNobyAiZm91 bmQiID4mNjsgfQorICBmaQorCisgIGNhc2UgIiRHQ0xJQlMiIGluCisgICpsaWJnYy5sYSkKKyAg ICB1c2VfYmR3X2djPXllcwogICAgIDs7Ci0gbm8pCi0gICAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vbmUiID4mNQotJGFzX2VjaG8gIm5vbmUiID4m NjsgfQotICAgIEdDSERSPW5vLWdjLmgKLSAgICA7OwotICopCi0gICAgYXNfZm5fZXJyb3IgJD8g InVucmVjb2duaXplZCBjb2xsZWN0b3IgXCIkR0NcIiIgIiRMSU5FTk8iIDUKLSAgICA7OworICAq KQorICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yIHN5c3RlbSBib2VobS1nYyIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3Igc3lzdGVt IGJvZWhtLWdjLi4uICIgPiY2OyB9CisgICAgc2F2ZV9DRkxBR1M9JENGTEFHUworICAgIHNhdmVf TElCUz0kTElCUworICAgIENGTEFHUz0iJENGTEFHUyAkQkRXX0dDX0NGTEFHUyIKKyAgICBMSUJT PSIkTElCUyAkR0NMSUJTIgorICAgICAgICAgICAgaWYgdGVzdCB4JGdjY19ub19saW5rID0geHll czsgdGhlbgorICBhc19mbl9lcnJvciAkPyAiTGluayB0ZXN0cyBhcmUgbm90IGFsbG93ZWQgYWZ0 ZXIgR0NDX05PX0VYRUNVVEFCTEVTLiIgIiRMSU5FTk8iIDUKK2ZpCitjYXQgY29uZmRlZnMuaCAt IDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5j bHVkZSA8Z2MvZ2MuaD4KK2ludAorbWFpbiAoKQoreworR0NfaW5pdCgpCisgIDsKKyAgcmV0dXJu IDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKwor ICAgICAgICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisgICAgICAg ICAgICBzeXN0ZW1fYmR3X2djX2ZvdW5kPW5vCisKK2Vsc2UKKyAgY2F0IGNvbmZkZWZzLmggLSA8 PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCisgICAg ICAgICAgI2luY2x1ZGUgPGdjL2djLmg+CisgICAgICAgICAgaW50IG1haW4oKSB7CisgICAgICAg ICAgICBHQ19pbml0KCk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICB9CisKK19B Q0VPRgoraWYgYWNfZm5fY190cnlfcnVuICIkTElORU5PIjsgdGhlbiA6CisgIHN5c3RlbV9iZHdf Z2NfZm91bmQ9eWVzCitlbHNlCisgIHN5c3RlbV9iZHdfZ2NfZm91bmQ9bm8KK2ZpCitybSAtZiBj b3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4 ZWV4dCBcCisgIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuYmVhbSBjb25mdGVzdC4kYWNf ZXh0CitmaQorCisKK2Vsc2UKKyAgc3lzdGVtX2Jkd19nY19mb3VuZD1ubworZmkKK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisgICAgQ0ZMQUdTPSRzYXZlX0NGTEFHUworICAgIExJQlM9 JHNhdmVfTElCUworICAgIGlmIHRlc3QgeCRlbmFibGVfb2JqY19nYyA9IHhhdXRvICYmIHRlc3Qg eCRzeXN0ZW1fYmR3X2djX2ZvdW5kID0geG5vOyB0aGVuCisgICAgICBhc19mbl9lcnJvciAkPyAi YmR3LWdjIG5vdCBmb3VuZCIgIiRMSU5FTk8iIDUKKyAgICAgIHVzZV9iZHdfZ2M9bm8KKyAgICBl bGlmIHRlc3QgeCRlbmFibGVfb2JqY19nYyA9IHh5ZXMgJiYgdGVzdCB4JHN5c3RlbV9iZHdfZ2Nf Zm91bmQgPSB4bm87IHRoZW4KKyAgICAgIGFzX2ZuX2Vycm9yICQ/ICJiZHctZ2Mgbm90IGZvdW5k IiAiJExJTkVOTyIgNQorICAgIGVsc2UKKyAgICAgIHVzZV9iZHdfZ2M9eWVzCisgICAgICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogZm91bmQiID4mNQor JGFzX2VjaG8gImZvdW5kIiA+JjY7IH0KKyAgICBmaQorICBlc2FjCiBlc2FjCiAKK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIEdDX2l0ZXJhdGVf ZnJlZV9oYmxrcyBpbiAtbGdjIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBHQ19pdGVy YXRlX2ZyZWVfaGJsa3MgaW4gLWxnYy4uLiAiID4mNjsgfQoraWYgJHthY19jdl9saWJfZ2NfR0Nf aXRlcmF0ZV9mcmVlX2hibGtzKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKK2Vsc2UKKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworTElCUz0iLWxn YyAgJExJQlMiCitpZiB0ZXN0IHgkZ2NjX25vX2xpbmsgPSB4eWVzOyB0aGVuCisgIGFzX2ZuX2Vy cm9yICQ/ICJMaW5rIHRlc3RzIGFyZSBub3QgYWxsb3dlZCBhZnRlciBHQ0NfTk9fRVhFQ1VUQUJM RVMuIiAiJExJTkVOTyIgNQorZmkKK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0 LiRhY19leHQKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KIAorLyogT3ZlcnJpZGUgYW55IEdDQyBp bnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisgICBVc2UgY2hhciBiZWNhdXNl IGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKKyAgIGJ1aWx0aW4gYW5k IHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCisjaWZk ZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIKKyNlbmRpZgorY2hhciBHQ19pdGVyYXRlX2ZyZWVf aGJsa3MgKCk7CitpbnQKK21haW4gKCkKK3sKK3JldHVybiBHQ19pdGVyYXRlX2ZyZWVfaGJsa3Mg KCk7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRM SU5FTk8iOyB0aGVuIDoKKyAgYWNfY3ZfbGliX2djX0dDX2l0ZXJhdGVfZnJlZV9oYmxrcz15ZXMK K2Vsc2UKKyAgYWNfY3ZfbGliX2djX0dDX2l0ZXJhdGVfZnJlZV9oYmxrcz1ubworZmkKK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgIGNvbmZ0ZXN0JGFj X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCitm aQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19j dl9saWJfZ2NfR0NfaXRlcmF0ZV9mcmVlX2hibGtzIiA+JjUKKyRhc19lY2hvICIkYWNfY3ZfbGli X2djX0dDX2l0ZXJhdGVfZnJlZV9oYmxrcyIgPiY2OyB9CitpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9n Y19HQ19pdGVyYXRlX2ZyZWVfaGJsa3MiID0geHllczsgdGhlbiA6CisgIGNhdCA+PmNvbmZkZWZz LmggPDxfQUNFT0YKKyNkZWZpbmUgSEFWRV9MSUJHQyAxCitfQUNFT0YKKworICBMSUJTPSItbGdj ICRMSUJTIgorCitlbHNlCisgIGFzX2ZuX2Vycm9yICQ/ICJpbnN0YWxsZWQgYm9laG0tZ2MgaXMg dG9vIG9sZCIgIiRMSU5FTk8iIDUKK2ZpCisKKworaWYgdGVzdCAiJHVzZV9iZHdfZ2MiID0gbm87 IHRoZW4KKyAgYXNfZm5fZXJyb3IgJD8gImJkdy1nYyBub3QgZm91bmQiICIkTElORU5PIiA1Cisg IEdDTElCUz0KKyAgR0NJTkNTPQorICBHQ0hEUj1uby1nYy5oCitlbHNlCisgIEdDSU5DUz0kQkRX X0dDX0NGTEFHUworICBHQ0xJQlM9JEdDTElCUworICBHQ0hEUj1ib2VobS1nYy5oCisgICMgVGhl IFBPU0lYIHRocmVhZCBzdXBwb3J0IG5lZWRzIHRvIGtub3cgdGhpcy4KIAorJGFzX2VjaG8gIiNk ZWZpbmUgSEFWRV9CT0VITV9HQyAxIiA+PmNvbmZkZWZzLmgKKworZmkKIAogCiAKIGFjX2NvbmZp Z19saW5rcz0iJGFjX2NvbmZpZ19saW5rcyBpbmNsdWRlL2phdmEtZ2MuaDppbmNsdWRlLyRHQ0hE UiIKIAotIGlmIHRlc3QgIiRHQyIgPSBib2VobTsgdGhlbgorIGlmIHRlc3QgIiRVU0VfR0MiID0g eWVzOyB0aGVuCiAgIFVTSU5HX0JPRUhNR0NfVFJVRT0KICAgVVNJTkdfQk9FSE1HQ19GQUxTRT0n IycKIGVsc2UKQEAgLTIxNDgyLDcgKzIxNzAxLDcgQEAgZWxzZQogICBVU0lOR19CT0VITUdDX0ZB TFNFPQogZmkKIAotIGlmIHRlc3QgIiRHQyIgPSBubzsgdGhlbgorIGlmIHRlc3QgIiRVU0VfR0Mi ID0gbm87IHRoZW4KICAgVVNJTkdfTk9HQ19UUlVFPQogICBVU0lOR19OT0dDX0ZBTFNFPScjJwog ZWxzZQpAQCAtMjE1NzksNyArMjE3OTgsNyBAQCAkYXNfZWNobyAiI2RlZmluZSBIQVZFX1BUSFJF QURfTVVURVhBVFRSX0lOSVQgMSIgPj5jb25mZGVmcy5oCiAKICAgICAjIElmIHdlJ3JlIHVzaW5n IHRoZSBCb2VobSBHQywgdGhlbiB3ZSBoYXBwZW4gdG8ga25vdyB0aGF0IGl0CiAgICAgIyBkZWZp bmVzIF9SRUVOVFJBTlQsIHNvIHdlIGRvbid0IGJvdGhlci4gIEV3dy4KLSAgICBpZiB0ZXN0ICIk R0MiICE9IGJvZWhtOyB0aGVuCisgICAgaWYgdGVzdCAiJFVTRV9HQyIgPSBubzsgdGhlbgogCiAk YXNfZWNobyAiI2RlZmluZSBfUkVFTlRSQU5UIDEiID4+Y29uZmRlZnMuaAogCkBAIC0yNDE0OCw3 ICsyNDM2Nyw3IEBAIGZpCiAKICAgICMgT24gU29sYXJpcywgYW5kIG1heWJlIG90aGVyIGFyY2hp dGVjdHVyZXMsIHRoZSBCb2VobSBjb2xsZWN0b3IKICAgICMgcmVxdWlyZXMgLWxkbC4KLSAgIGlm IHRlc3QgIiRHQyIgPSBib2VobTsgdGhlbgorICAgaWYgdGVzdCAiJFVTRV9HQyIgIT0gbm87IHRo ZW4KICAgICAgIGNhc2UgIiR7aG9zdH0iIGluCiAJICAqLSotZGFyd2luKikKIAkgICAgOzsKZGlm ZiAtLWdpdCBhL2xpYmphdmEvY29uZmlndXJlLmFjIGIvbGliamF2YS9jb25maWd1cmUuYWMKaW5k ZXggNGY2NTQwOTlmZTMuLjAzY2FlNDQ4ZTMzIDEwMDY0NAotLS0gYS9saWJqYXZhL2NvbmZpZ3Vy ZS5hYworKysgYi9saWJqYXZhL2NvbmZpZ3VyZS5hYwpAQCAtOTMwLDQ4ICs5MzAsMTc0IEBAIEFD X1NVQlNUKExJQk1BVEhTUEVDKQogCiBBQ19TVUJTVChMSUJHQ0pURVNUU1BFQykKIAotIyBBbGxv dyB0aGUgR0MgdG8gYmUgZGlzYWJsZWQuICBDYW4gYmUgdXNlZnVsIHdoZW4gZGVidWdnaW5nLgot QUNfTVNHX0NIRUNLSU5HKFtmb3IgZ2FyYmFnZSBjb2xsZWN0b3IgdG8gdXNlXSkKK0FDX01TR19D SEVDS0lORyhbaWYgZ2FyYmFnZSBjb2xsZWN0b3IgaXMgZW5hYmxlZF0pCiBBQ19BUkdfRU5BQkxF KGphdmEtZ2MsCi0gIEFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1qYXZhLWdjPVRZUEVdLAotICAg ICAgICAgICAgICAgICBbY2hvb3NlIGdhcmJhZ2UgY29sbGVjdG9yIChkZWZhdWx0IGlzIGJvZWht KV0pLAotICBbR0M9JGVuYWJsZXZhbF0sCi0gIFtHQz1ib2VobV0pCi1HQ0xJQlM9Ci1HQ0lOQ1M9 Ci1HQ0RFUFM9Ci1HQ1NQRUM9Ci1KQzFHQ1NQRUM9Ci1HQ1RFU1RTUEVDPQotY2FzZSAiJEdDIiBp bgotIGJvZWhtKQotICAgIEFDX01TR19SRVNVTFQoYm9laG0pCi0gICAgR0NMSUJTPS4uL2JvZWht LWdjL2xpYmdjamdjX2NvbnZlbmllbmNlLmxhCi0gICAgSkMxR0NTUEVDPSctZnVzZS1ib2VobS1n YycKLSAgICBHQ1RFU1RTUEVDPSItTGAke1BXRENNRC1wd2R9YC8uLi9ib2VobS1nYy8ubGlicyAt cnBhdGggYCR7UFdEQ01ELXB3ZH1gLy4uL2JvZWhtLWdjLy5saWJzIgotICAgIEdDSU5DUz0nLUkk KHRvcF9zcmNkaXIpLy4uL2JvZWhtLWdjL2luY2x1ZGUgLUkuLi9ib2VobS1nYy9pbmNsdWRlJwot ICAgIEdDT0JKUz1ib2VobS5sbyAgICAKLSAgICBHQ0hEUj1ib2VobS1nYy5oCi0gICAgIyBUaGUg UE9TSVggdGhyZWFkIHN1cHBvcnQgbmVlZHMgdG8ga25vdyB0aGlzLgotICAgIEFDX0RFRklORShI QVZFX0JPRUhNX0dDLCAxLCBbRGVmaW5lIGlmIEJvZWhtIEdDIGluIHVzZS5dKQotICAgIDs7Ci0g bm8pCi0gICAgQUNfTVNHX1JFU1VMVChub25lKQotICAgIEdDSERSPW5vLWdjLmgKLSAgICA7Owot ICopCi0gICAgQUNfTVNHX0VSUk9SKFt1bnJlY29nbml6ZWQgY29sbGVjdG9yICIkR0MiXSkKK1tB U19IRUxQX1NUUklORyhbWy0tZW5hYmxlLWphdmEtZ2NbPUFSR11dXSwKKyAgICBbZW5hYmxlIHRo ZSB1c2Ugb2YgdGhlIGJkdy1nYyBnYXJiYWdlIGNvbGxlY3RvciB3aXRoIGxpYmphdmEgQDw6QEFS Rz17ZGVmYXVsdCx5ZXMsbm99QDo+QF0pXSwKK1tVU0VfR0M9JGVuYWJsZXZhbF0sCitbVVNFX0dD PXllc10pCitBQ19BUkdfV0lUSChbdGFyZ2V0LWJkdy1nY10sCitbQVNfSEVMUF9TVFJJTkcoWy0t d2l0aC10YXJnZXQtYmR3LWdjPVBBVEhMSVNUXSwKKyAgICBbc3BlY2lmeSBwcmVmaXggZGlyZWN0 b3J5IGZvciBpbnN0YWxsZWQgYmR3LWdjIHBhY2thZ2UuCisgICAgIEVxdWl2YWxlbnQgdG8gLS13 aXRoLXRhcmdldC1iZHctZ2MtaW5jbHVkZT1QQVRIL2luY2x1ZGUKKyAgICAgcGx1cyAtLXdpdGgt dGFyZ2V0LWJkdy1nYy1saWI9UEFUSC9saWJdKV0pCitBQ19BUkdfV0lUSChbdGFyZ2V0LWJkdy1n Yy1pbmNsdWRlXSwKK1tBU19IRUxQX1NUUklORyhbLS13aXRoLXRhcmdldC1iZHctZ2MtaW5jbHVk ZT1QQVRITElTVF0sCisgICAgW3NwZWNpZnkgZGlyZWN0b3JpZXMgZm9yIGluc3RhbGxlZCBiZHct Z2MgaW5jbHVkZSBmaWxlc10pXSkKK0FDX0FSR19XSVRIKFt0YXJnZXQtYmR3LWdjLWxpYl0sCitb QVNfSEVMUF9TVFJJTkcoWy0td2l0aC10YXJnZXQtYmR3LWdjLWxpYj1QQVRITElTVF0sCisgICAg W3NwZWNpZnkgZGlyZWN0b3JpZXMgZm9yIGluc3RhbGxlZCBiZHctZ2MgbGlicmFyeV0pXSkKKwor Y2FzZSAiJHtVU0VfR0N9IiBpbgorbm8pCisgIHVzZV9iZHdfZ2M9bm8KKyAgOzsKK3llc3xkZWZh dWx0KQorICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBiZHcgZ2FyYmFnZSBjb2xsZWN0b3JdKQorICBp ZiB0ZXN0ICJ4JHdpdGhfdGFyZ2V0X2Jkd19nYyR3aXRoX3RhcmdldF9iZHdfZ2NfaW5jbHVkZSR3 aXRoX3RhcmdldF9iZHdfZ2NfbGliIiA9IHg7IHRoZW4KKyAgICBkbmwgbm8gYmR3LWd3IG9wdGlv bnMsIGFzc3VtaW5nIGJkdy1nYyBpbiBkZWZhdWx0IGxvY2F0aW9ucworICAgIEJEV19HQ19DRkxB R1M9CisgICAgR0NMSUJTPSItbGdjIgorICBlbHNlCisgICAgZG5sIGJkdy1ndyBvcHRpb25zIHBh c3NlZCBieSBjb25maWd1cmUgZmxhZ3MKKyAgICBpZiB0ZXN0ICJ4JHdpdGhfdGFyZ2V0X2Jkd19n Y19pbmNsdWRlIiA9IHggJiYgdGVzdCAieCR3aXRoX3RhcmdldF9iZHdfZ2NfbGliIiAhPSB4OyB0 aGVuCisgICAgICBBQ19NU0dfRVJST1IoW2ZvdW5kIC0td2l0aC10YXJnZXQtYmR3LWdjLWxpYiBi dXQgLS13aXRoLXRhcmdldC1iZHctZ2MtaW5jbHVkZSBtaXNzaW5nXSkKKyAgICBlbGlmIHRlc3Qg Ingkd2l0aF90YXJnZXRfYmR3X2djX2luY2x1ZGUiICE9IHggJiYgdGVzdCAieCR3aXRoX3Rhcmdl dF9iZHdfZ2NfbGliIiA9IHg7IHRoZW4KKyAgICAgIEFDX01TR19FUlJPUihbZm91bmQgLS13aXRo LXRhcmdldC1iZHctZ2MtaW5jbHVkZSBidXQgLS13aXRoLXRhcmdldC1iZHctZ2MtbGliIG1pc3Np bmddKQorICAgIGVsc2UKKyAgICAgIEFDX01TR19SRVNVTFQoW3VzaW5nIHBhdGhzIGNvbmZpZ3Vy ZWQgd2l0aCAtLXdpdGgtdGFyZ2V0LWJkdy1nYyBvcHRpb25zXSkKKyAgICBmaQorICAgIG1sZGly PWAke0NDLWdjY30gLS1wcmludC1tdWx0aS1kaXJlY3RvcnkgMj4vZGV2L251bGxgCisgICAgYmR3 X3ZhbD0KKyAgICBpZiB0ZXN0ICJ4JHdpdGhfdGFyZ2V0X2Jkd19nYyIgIT0geDsgdGhlbgorICAg ICAgZm9yIGkgaW4gYGVjaG8gJHdpdGhfdGFyZ2V0X2Jkd19nYyB8IHRyICcsJyAnICdgOyBkbwor ICAgICAgICBjYXNlICIkaSIgaW4KKyAgICAgICAgICAqPSopIHNkPSR7aSUlPSp9OyBkPSR7aSMq PX0gOzsKKyAgICAgICAgICAqKSBzZD0uOyBkPSRpIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAg aWYgdGVzdCAiJG1sZGlyIiA9ICIkc2QiOyB0aGVuCisgICAgICAgICAgYmR3X3ZhbD0kZAorICAg ICAgICBmaQorICAgICAgZG9uZQorICAgICAgaWYgdGVzdCAieCRiZHdfdmFsIiA9IHg7IHRoZW4K KyAgICAgICAgQUNfTVNHX0VSUk9SKFtubyBtdWx0aWxpYiBwYXRoICgkbWxkaXIpIGZvdW5kIGlu IC0td2l0aC10YXJnZXQtYmR3LWdjXSkKKyAgICAgIGZpCisgICAgICBiZHdfaW5jX2Rpcj0iJGJk d192YWwvaW5jbHVkZSIKKyAgICAgIGJkd19saWJfZGlyPSIkYmR3X3ZhbC9saWIiCisgICAgZmkK KyAgICBiZHdfdmFsPQorICAgIGlmIHRlc3QgIngkd2l0aF90YXJnZXRfYmR3X2djX2luY2x1ZGUi ICE9IHg7IHRoZW4KKyAgICAgIGZvciBpIGluIGBlY2hvICR3aXRoX3RhcmdldF9iZHdfZ2NfaW5j bHVkZSB8IHRyICcsJyAnICdgOyBkbworICAgICAgICBjYXNlICIkaSIgaW4KKyAgICAgICAgICAq PSopIHNkPSR7aSUlPSp9OyBkPSR7aSMqPX0gOzsKKyAgICAgICAgICAqKSBzZD0uOyBkPSRpOyBm YWxsYmFjaz0kaSA7OworICAgICAgICBlc2FjCisgICAgICAgIGlmIHRlc3QgIiRtbGRpciIgPSAi JHNkIjsgdGhlbgorICAgICAgICAgIGJkd192YWw9JGQKKyAgICAgICAgZmkKKyAgICAgIGRvbmUK KyAgICAgIGlmIHRlc3QgIngkYmR3X3ZhbCIgPSB4ICYmIHRlc3QgIngkYmR3X2luY19kaXIiID0g eCAmJiB0ZXN0ICJ4JGZhbGxiYWNrIiAhPSB4OyB0aGVuCisgICAgICAgIGJkd19pbmNfZGlyPSIk ZmFsbGJhY2siCisgICAgICBlbGlmIHRlc3QgIngkYmR3X3ZhbCIgPSB4OyB0aGVuCisgICAgICAg IEFDX01TR19FUlJPUihbbm8gbXVsdGlsaWIgcGF0aCAoJG1sZGlyKSBmb3VuZCBpbiAtLXdpdGgt dGFyZ2V0LWJkdy1nYy1pbmNsdWRlXSkKKyAgICAgIGVsc2UKKyAgICAgICAgYmR3X2luY19kaXI9 IiRiZHdfdmFsIgorICAgICAgZmkKKyAgICBmaQorICAgIGJkd192YWw9CisgICAgaWYgdGVzdCAi eCR3aXRoX3RhcmdldF9iZHdfZ2NfbGliIiAhPSB4OyB0aGVuCisgICAgICBmb3IgaSBpbiBgZWNo byAkd2l0aF90YXJnZXRfYmR3X2djX2xpYiB8IHRyICcsJyAnICdgOyBkbworICAgICAgICBjYXNl ICIkaSIgaW4KKyAgICAgICAgICAqPSopIHNkPSR7aSUlPSp9OyBkPSR7aSMqPX0gOzsKKyAgICAg ICAgICAqKSBzZD0uOyBkPSRpIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgaWYgdGVzdCAiJG1s ZGlyIiA9ICIkc2QiOyB0aGVuCisgICAgICAgICAgYmR3X3ZhbD0kZAorICAgICAgICBmaQorICAg ICAgZG9uZQorICAgICAgaWYgdGVzdCAieCRiZHdfdmFsIiA9IHg7IHRoZW4KKyAgICAgICAgQUNf TVNHX0VSUk9SKFtubyBtdWx0aWxpYiBwYXRoICgkbWxkaXIpIGZvdW5kIGluIC0td2l0aC10YXJn ZXQtYmR3LWdjLWxpYl0pCisgICAgICBmaQorICAgICAgYmR3X2xpYl9kaXI9IiRiZHdfdmFsIgor ICAgIGZpCisgICAgaWYgdGVzdCAieCRiZHdfaW5jX2RpciIgPSB4OyB0aGVuCisgICAgICBBQ19N U0dfRVJST1IoW25vIG11bHRpbGliIHBhdGggKCRtbGRpcikgZm91bmQgaW4gLS13aXRoLXRhcmdl dC1iZHctZ2MtaW5jbHVkZV0pCisgICAgZmkKKyAgICBpZiB0ZXN0ICJ4JGJkd19saWJfZGlyIiA9 IHg7IHRoZW4KKyAgICAgIEFDX01TR19FUlJPUihbbm8gbXVsdGlsaWIgcGF0aCAoJG1sZGlyKSBm b3VuZCBpbiAtLXdpdGgtdGFyZ2V0LWJkdy1nYy1saWJdKQorICAgIGZpCisgICAgQkRXX0dDX0NG TEFHUz0iLUkkYmR3X2luY19kaXIiCisgICAgaWYgdGVzdCAtZiAkYmR3X2xpYl9kaXIvbGliZ2Mu bGE7IHRoZW4KKyAgICAgIEdDTElCUz0iJGJkd19saWJfZGlyL2xpYmdjLmxhIgorICAgIGVsc2UK KyAgICAgIEdDTElCUz0iLUwkYmR3X2xpYl9kaXIgLWxnYyIKKyAgICBmaQorICAgIEFDX01TR19S RVNVTFQoW2ZvdW5kXSkKKyAgZmkKKworICBjYXNlICIkR0NMSUJTIiBpbgorICAqbGliZ2MubGEp CisgICAgdXNlX2Jkd19nYz15ZXMKICAgICA7OworICAqKQorICAgIEFDX01TR19DSEVDS0lORyhb Zm9yIHN5c3RlbSBib2VobS1nY10pCisgICAgc2F2ZV9DRkxBR1M9JENGTEFHUworICAgIHNhdmVf TElCUz0kTElCUworICAgIENGTEFHUz0iJENGTEFHUyAkQkRXX0dDX0NGTEFHUyIKKyAgICBMSUJT PSIkTElCUyAkR0NMSUJTIgorICAgIGRubCB0aGUgbGluayB0ZXN0IGlzIG5vdCBnb29kIGVub3Vn aCBmb3IgQVJNMzIgbXVsdGlsaWIgZGV0ZWN0aW9uLAorICAgIGRubCBmaXJzdCBjaGVjayB0byBs aW5rLCB0aGVuIHRvIHJ1bgorICAgIEFDX0xJTktfSUZFTFNFKAorICAgICAgW0FDX0xBTkdfUFJP R1JBTShbI2luY2x1ZGUgPGdjL2djLmg+XSxbR0NfaW5pdCgpXSldLAorICAgICAgWworICAgICAg ICBBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1NPVVJDRShbWworICAgICAgICAgICNpbmNsdWRlIDxn Yy9nYy5oPgorICAgICAgICAgIGludCBtYWluKCkgeworICAgICAgICAgICAgR0NfaW5pdCgpOwor ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgfQorICAgICAgICAgIF1dKV0sCisgICAg ICAgICAgW3N5c3RlbV9iZHdfZ2NfZm91bmQ9eWVzXSwKKyAgICAgICAgICBbc3lzdGVtX2Jkd19n Y19mb3VuZD1ub10sCisgICAgICAgICAgZG5sIGFzc3VtZSBubyBzeXN0ZW0gYm9laG0tZ2MgZm9y IGNyb3NzIGJ1aWxkcyAuLi4KKyAgICAgICAgICBbc3lzdGVtX2Jkd19nY19mb3VuZD1ub10KKyAg ICAgICAgKQorICAgICAgXSwKKyAgICAgIFtzeXN0ZW1fYmR3X2djX2ZvdW5kPW5vXSkKKyAgICBD RkxBR1M9JHNhdmVfQ0ZMQUdTCisgICAgTElCUz0kc2F2ZV9MSUJTCisgICAgaWYgdGVzdCB4JGVu YWJsZV9vYmpjX2djID0geGF1dG8gJiYgdGVzdCB4JHN5c3RlbV9iZHdfZ2NfZm91bmQgPSB4bm87 IHRoZW4KKyAgICAgIEFDX01TR19FUlJPUihbYmR3LWdjIG5vdCBmb3VuZF0pCisgICAgICB1c2Vf YmR3X2djPW5vCisgICAgZWxpZiB0ZXN0IHgkZW5hYmxlX29iamNfZ2MgPSB4eWVzICYmIHRlc3Qg eCRzeXN0ZW1fYmR3X2djX2ZvdW5kID0geG5vOyB0aGVuCisgICAgICBBQ19NU0dfRVJST1IoW2Jk dy1nYyBub3QgZm91bmRdKQorICAgIGVsc2UKKyAgICAgIHVzZV9iZHdfZ2M9eWVzCisgICAgICBB Q19NU0dfUkVTVUxUKFtmb3VuZF0pCisgICAgZmkKKyAgZXNhYwogZXNhYworCitBQ19DSEVDS19M SUIoW2djXSwgW0dDX2l0ZXJhdGVfZnJlZV9oYmxrc10sIFtdLCBbQUNfTVNHX0VSUk9SKFtpbnN0 YWxsZWQgYm9laG0tZ2MgaXMgdG9vIG9sZF0pXSkKKworaWYgdGVzdCAiJHVzZV9iZHdfZ2MiID0g bm87IHRoZW4KKyAgQUNfTVNHX0VSUk9SKFtiZHctZ2Mgbm90IGZvdW5kXSkKKyAgR0NMSUJTPQor ICBHQ0lOQ1M9CisgIEdDSERSPW5vLWdjLmgKK2Vsc2UKKyAgR0NJTkNTPSRCRFdfR0NfQ0ZMQUdT CisgIEdDTElCUz0kR0NMSUJTCisgIEdDSERSPWJvZWhtLWdjLmgKKyAgIyBUaGUgUE9TSVggdGhy ZWFkIHN1cHBvcnQgbmVlZHMgdG8ga25vdyB0aGlzLgorICBBQ19ERUZJTkUoSEFWRV9CT0VITV9H QywgMSwgW0RlZmluZSBpZiBCb2VobSBHQyBpbiB1c2UuXSkKK2ZpCisKIEFDX1NVQlNUKEdDTElC UykKIEFDX1NVQlNUKEdDSU5DUykKLUFDX1NVQlNUKEdDREVQUykKLUFDX1NVQlNUKEdDU1BFQykK LUFDX1NVQlNUKEpDMUdDU1BFQykKLUFDX1NVQlNUKEdDVEVTVFNQRUMpCiBBQ19DT05GSUdfTElO S1MoaW5jbHVkZS9qYXZhLWdjLmg6aW5jbHVkZS8kR0NIRFIpCi1BTV9DT05ESVRJT05BTChVU0lO R19CT0VITUdDLCB0ZXN0ICIkR0MiID0gYm9laG0pCi1BTV9DT05ESVRJT05BTChVU0lOR19OT0dD LCB0ZXN0ICIkR0MiID0gbm8pCitBTV9DT05ESVRJT05BTChVU0lOR19CT0VITUdDLCB0ZXN0ICIk VVNFX0dDIiA9IHllcykKK0FNX0NPTkRJVElPTkFMKFVTSU5HX05PR0MsIHRlc3QgIiRVU0VfR0Mi ID0gbm8pCiAKIAogQUNfTVNHX0NIRUNLSU5HKFtmb3IgdGhyZWFkIG1vZGVsIHVzZWQgYnkgR0ND XSkKQEAgLTEwNTUsNyArMTE4MSw3IEBAIGNhc2UgIiRUSFJFQURTIiBpbgogCiAgICAgIyBJZiB3 ZSdyZSB1c2luZyB0aGUgQm9laG0gR0MsIHRoZW4gd2UgaGFwcGVuIHRvIGtub3cgdGhhdCBpdAog ICAgICMgZGVmaW5lcyBfUkVFTlRSQU5ULCBzbyB3ZSBkb24ndCBib3RoZXIuICBFd3cuCi0gICAg aWYgdGVzdCAiJEdDIiAhPSBib2VobTsgdGhlbgorICAgIGlmIHRlc3QgIiRVU0VfR0MiID0gbm87 IHRoZW4KICAgICAgICBBQ19ERUZJTkUoX1JFRU5UUkFOVCwgMSwgW1JlcXVpcmVkIGRlZmluZSBp ZiB1c2luZyBQT1NJWCB0aHJlYWRzXSkKICAgICBmaQogICAgIEFDX0RFRklORShfUE9TSVhfUFRI UkVBRF9TRU1BTlRJQ1MsIDEsIFtSZXF1aXJlZCBkZWZpbmUgaWYgdXNpbmcgUE9TSVggdGhyZWFk c10pCkBAIC0xNDEyLDcgKzE1MzgsNyBAQCBlbHNlCiAKICAgICMgT24gU29sYXJpcywgYW5kIG1h eWJlIG90aGVyIGFyY2hpdGVjdHVyZXMsIHRoZSBCb2VobSBjb2xsZWN0b3IKICAgICMgcmVxdWly ZXMgLWxkbC4KLSAgIGlmIHRlc3QgIiRHQyIgPSBib2VobTsgdGhlbgorICAgaWYgdGVzdCAiJFVT RV9HQyIgIT0gbm87IHRoZW4KICAgICAgIGNhc2UgIiR7aG9zdH0iIGluCiAJICAqLSotZGFyd2lu KikKIAkgICAgOzsKZGlmZiAtLWdpdCBhL2xpYmphdmEvZ2NqL01ha2VmaWxlLmluIGIvbGliamF2 YS9nY2ovTWFrZWZpbGUuaW4KaW5kZXggZTUxN2E0M2RkMWEuLjgzYjU3Mjg4MzAyIDEwMDY0NAot LS0gYS9saWJqYXZhL2djai9NYWtlZmlsZS5pbgorKysgYi9saWJqYXZhL2djai9NYWtlZmlsZS5p bgpAQCAtMjI5LDcgKzIyOSw2IEBAIEVYQ0VQVElPTlNQRUMgPSBARVhDRVBUSU9OU1BFQ0AKIEVY RUVYVCA9IEBFWEVFWFRACiBGR1JFUCA9IEBGR1JFUEAKIEdDQ19GT1JfRUNKWCA9IEBHQ0NfRk9S X0VDSlhACi1HQ0RFUFMgPSBAR0NERVBTQAogR0NJTkNTID0gQEdDSU5DU0AKIEdDSiA9IEBHQ0pA CiBHQ0pERVBNT0RFID0gQEdDSkRFUE1PREVACkBAIC0yMzksOCArMjM4LDYgQEAgR0NKVkVSU0lP TiA9IEBHQ0pWRVJTSU9OQAogR0NKX0JJTl9ESVIgPSBAR0NKX0JJTl9ESVJACiBHQ0pfRk9SX0VD SlggPSBAR0NKX0ZPUl9FQ0pYQAogR0NMSUJTID0gQEdDTElCU0AKLUdDU1BFQyA9IEBHQ1NQRUNA Ci1HQ1RFU1RTUEVDID0gQEdDVEVTVFNQRUNACiBHTElCX0NGTEFHUyA9IEBHTElCX0NGTEFHU0AK IEdMSUJfTElCUyA9IEBHTElCX0xJQlNACiBHUkVQID0gQEdSRVBACkBAIC0yNTgsNyArMjU1LDYg QEAgSU5URVJQUkVURVIgPSBASU5URVJQUkVURVJACiBKQVIgPSBASkFSQAogSkFWQV9IT01FID0g QEpBVkFfSE9NRUAKIEpBVkFfVkVSU0lPTiA9IEBKQVZBX1ZFUlNJT05ACi1KQzFHQ1NQRUMgPSBA SkMxR0NTUEVDQAogSlJFX0JJTl9ESVIgPSBASlJFX0JJTl9ESVJACiBKUkVfRElSID0gQEpSRV9E SVJACiBKUkVfTElCX0RJUiA9IEBKUkVfTElCX0RJUkAKZGlmZiAtLWdpdCBhL2xpYmphdmEvZ251 L2djai91dGlsL25hdEdDSW5mby5jYyBiL2xpYmphdmEvZ251L2djai91dGlsL25hdEdDSW5mby5j YwppbmRleCBhNTkzNjE3NGRhNy4uMTQ0MzM3MjU5Y2UgMTAwNjQ0Ci0tLSBhL2xpYmphdmEvZ251 L2djai91dGlsL25hdEdDSW5mby5jYworKysgYi9saWJqYXZhL2dudS9nY2ovdXRpbC9uYXRHQ0lu Zm8uY2MKQEAgLTI1LDQ0ICsyNSw5IEBACiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8 ZXJybm8uaD4KIAotLy8KLS8vIEJvZWhtIEdDIGluY2x1ZGVzLgotLy8KLSNpZmRlZiBQQUNLQUdF X05BTUUKLSN1bmRlZiBQQUNLQUdFX05BTUUKLSNlbmRpZgotCi0jaWZkZWYgUEFDS0FHRV9TVFJJ TkcKLSN1bmRlZiBQQUNLQUdFX1NUUklORwotI2VuZGlmCi0KLSNpZmRlZiBQQUNLQUdFX1RBUk5B TUUKLSN1bmRlZiBQQUNLQUdFX1RBUk5BTUUKLSNlbmRpZgotCi0jaWZkZWYgUEFDS0FHRV9WRVJT SU9OCi0jdW5kZWYgUEFDS0FHRV9WRVJTSU9OCi0jZW5kaWYKLQotI2lmZGVmIFRSVUUKLSN1bmRl ZiBUUlVFCi0jZW5kaWYKLQotI2lmZGVmIEZBTFNFCi0jdW5kZWYgRkFMU0UKLSNlbmRpZgotCi1l eHRlcm4gIkMiIHsKLSNpbmNsdWRlICJwcml2YXRlL2RiZ19tbGMuaCIKLSAgaW50IEdDX25fc2V0 X21hcmtzKGhkciogaGhkcik7Ci0gIHB0cl90IEdDX2NsZWFyX3N0YWNrKHB0cl90IHApOwotICBl eHRlcm4gaW50IEdDX2djal9raW5kOwotICBleHRlcm4gaW50IEdDX2djal9kZWJ1Z19raW5kOwot fQotCi0jZW5kaWYKLQotI2lmZGVmIEhBVkVfUFJPQ19TRUxGX01BUFMKKyNpbmNsdWRlICJnYy9n Yy5oIgorI2luY2x1ZGUgImdjL2djX2djai5oIgorI2luY2x1ZGUgImdjL2djX21hcmsuaCIKIAog c3RhdGljIGludCBnY19vayA9IDE7CiAKQEAgLTc2LDg4ICs0MSw1OSBAQCBzdHJ1Y3QgZ2NfZGVi dWdfaW5mbwogfTsKIAogc3RhdGljIHZvaWQKLUdDX3ByaW50X2RlYnVnX2NhbGxiYWNrKGhibGsg KmgsIHdvcmQgdXNlcl9kYXRhKQorR0NfcHJpbnRfZGVidWdfY2FsbGJhY2soR0NfaGJsa19zICpo LCBHQ193b3JkIHVzZXJfZGF0YSkKIHsKLSAgaGRyICpoaGRyID0gSERSKGgpOwotICBzaXplX3Qg Ynl0ZXMgPSBXT1JEU19UT19CWVRFUyhoaGRyIC0+IGhiX3N6KTsKKyAgc2l6ZV90IGJ5dGVzOwog CiAgIGdjX2RlYnVnX2luZm8gKnBpbmZvID0gKGdjX2RlYnVnX2luZm8gKil1c2VyX2RhdGE7CiAK ICAgZnByaW50ZihwaW5mby0+ZnAsICJwdHIgPSAlI2x4LCBraW5kID0gJWQsIHNpemUgPSAlemQs IG1hcmtzID0gJWRcbiIsCi0gICAgICAgICAgKHVuc2lnbmVkIGxvbmcpaCwgaGhkci0+aGJfb2Jq X2tpbmQsIGJ5dGVzLCBHQ19uX3NldF9tYXJrcyhoaGRyKSk7CisJICAodW5zaWduZWQgbG9uZylo LCBHQ19nZXRfa2luZF9hbmRfc2l6ZShoLCAmYnl0ZXMpLCBieXRlcywgR0NfY291bnRfc2V0X21h cmtzX2luX2hibGsoaCkpOwogfQogCi0vKgotICB0aGlzIG5leHQgc2VjdGlvbiBvZiBkZWZpbml0 aW9ucyBzaG91bGRuJ3QgcmVhbGx5IGJlIGhlcmUuCi0gIGNvcGllZCBmcm9tIGJvZWhtZ2MvYWxs Y2hibGsuYwotKi8KK3N0cnVjdCBwcmludF9oYmxrZmxfcyB7CisgIEZJTEUgKmZwOworICBHQ193 b3JkIHRvdGFsX2ZyZWU7CisgIGludCBwcmV2X2luZGV4OworfTsKIAotIyBkZWZpbmUgVU5JUVVF X1RIUkVTSE9MRCAzMgotIyBkZWZpbmUgSFVHRV9USFJFU0hPTEQgMjU2Ci0jIGRlZmluZSBGTF9D T01QUkVTU0lPTiA4Ci0jIGRlZmluZSBOX0hCTEtfRkxTIChIVUdFX1RIUkVTSE9MRCAtIFVOSVFV RV9USFJFU0hPTEQpL0ZMX0NPTVBSRVNTSU9OIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAr IFVOSVFVRV9USFJFU0hPTEQKLSNpZm5kZWYgVVNFX01VTk1BUAotZXh0ZXJuICJDIiB7Ci0gIGV4 dGVybiB3b3JkIEdDX2ZyZWVfYnl0ZXNbTl9IQkxLX0ZMUysxXTsKK3N0YXRpYyB2b2lkIEdDX0NB TExCQUNLIHByaW50X2hibGtmbF9maWxlX2l0ZW0oc3RydWN0IEdDX2hibGtfcyAqaCwgaW50IGks CisJCQkJCSAgICAgICBHQ193b3JkIGNsaWVudF9kYXRhKQoreworICBHQ193b3JkIHN6OworICBw cmludF9oYmxrZmxfcyAqcGRhdGEgPSAocHJpbnRfaGJsa2ZsX3MgKiljbGllbnRfZGF0YTsKKwor ICBpZiAocGRhdGEtPnByZXZfaW5kZXggIT0gaSkgeworICAgIGZwcmludGYocGRhdGEtPmZwLCAi RnJlZSBsaXN0ICVkOlxuIiwgaSk7CisgICAgcGRhdGEtPnByZXZfaW5kZXggPSBpOworICB9CisK KyAgc3ogPSBHQ19zaXplKGgpOworICBmcHJpbnRmKHBkYXRhLT5mcCwgIlx0MHglbHggc2l6ZSAl bHUgIiwgKHVuc2lnbmVkIGxvbmcpaCwKKwkgICAodW5zaWduZWQgbG9uZylzeik7CisgIHBkYXRh LT50b3RhbF9mcmVlICs9IHN6OworCisgIGlmIChHQ19pc19ibGFja19saXN0ZWQoaCwgR0NfZ2V0 X2hibGtfc2l6ZSgpKSAhPSAwKQorICAgIGZwcmludGYocGRhdGEtPmZwLCAic3RhcnQgYmxhY2sg bGlzdGVkXG4iKTsKKyAgZWxzZSBpZiAoR0NfaXNfYmxhY2tfbGlzdGVkKGgsIHN6KSAhPSAwKQor ICAgIGZwcmludGYocGRhdGEtPmZwLCAicGFydGlhbGx5IGJsYWNrIGxpc3RlZFxuIik7CisgIGVs c2UKKyAgICBmcHJpbnRmKHBkYXRhLT5mcCwgIm5vdCBibGFjayBsaXN0ZWRcbiIpOwogfQotI2Vu ZGlmCi0KLSMgaWZkZWYgVVNFX01VTk1BUAotIyAgIGRlZmluZSBJU19NQVBQRUQoaGhkcikgKCgo aGhkcikgLT4gaGJfZmxhZ3MgJiBXQVNfVU5NQVBQRUQpID09IDApCi0jIGVsc2UgIC8qICFVU0Vf TU1BUCAqLwotIyAgIGRlZmluZSBJU19NQVBQRUQoaGhkcikgMQotIyBlbmRpZiAvKiBVU0VfTVVO TUFQICovCiAKIHN0YXRpYyB2b2lkCiBHQ19wcmludF9oYmxrZnJlZWxpc3RfZmlsZShGSUxFICpm cCkKIHsKLSAgc3RydWN0IGhibGsgKiBoOwotICB3b3JkIHRvdGFsX2ZyZWUgPSAwOwotICBoZHIg KiBoaGRyOwotICB3b3JkIHN6OwotICBpbnQgaTsKKyAgcHJpbnRfaGJsa2ZsX3MgZGF0YTsKKyAg ZGF0YS5mcCA9IGZwOworICBkYXRhLnRvdGFsX2ZyZWUgPSAwOworICBkYXRhLnByZXZfaW5kZXgg PSAtMTsKICAgICAKICAgZnByaW50ZihmcCwgIi0tLS0tLS0tLS0gQmVnaW4gZnJlZSBtYXAgLS0t LS0tLS0tLVxuIik7Ci0gIGZvciAoaSA9IDA7IGkgPD0gTl9IQkxLX0ZMUzsgKytpKQotICAgIHsK LSAgICAgIGggPSBHQ19oYmxrZnJlZWxpc3RbaV07Ci0jaWZkZWYgVVNFX01VTk1BUAotICAgICAg aWYgKDAgIT0gaCkKLSAgICAgICAgZnByaW50ZiAoZnAsICJGcmVlIGxpc3QgJWxkOlxuIiwgKHVu c2lnbmVkIGxvbmcpaSk7Ci0jZWxzZQotICAgICAgaWYgKDAgIT0gaCkKLSAgICAgICAgZnByaW50 ZiAoZnAsICJGcmVlIGxpc3QgJWxkIChUb3RhbCBzaXplICVsZCk6XG4iLAotICAgICAgICAgICAg ICAgICAodW5zaWduZWQgbG9uZylpLAotICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZylH Q19mcmVlX2J5dGVzW2ldKTsKLSNlbmRpZgotICAgICAgd2hpbGUgKGggIT0gMCkKLSAgICAgICAg ewotICAgICAgICAgIGhoZHIgPSBIRFIoaCk7Ci0gICAgICAgICAgc3ogPSBoaGRyIC0+IGhiX3N6 OwotICAgICAgICAgIGZwcmludGYgKGZwLCAiXHQweCVseCBzaXplICVsdSAiLCAodW5zaWduZWQg bG9uZyloLAotICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKXN6KTsKLSAgICAgICAg ICB0b3RhbF9mcmVlICs9IHN6OwotCi0gICAgICAgICAgaWYgKEdDX2lzX2JsYWNrX2xpc3RlZCAo aCwgSEJMS1NJWkUpICE9IDApCi0gICAgICAgICAgICBmcHJpbnRmIChmcCwgInN0YXJ0IGJsYWNr IGxpc3RlZFxuIik7Ci0gICAgICAgICAgZWxzZSBpZiAoR0NfaXNfYmxhY2tfbGlzdGVkKGgsIGho ZHIgLT4gaGJfc3opICE9IDApCi0gICAgICAgICAgICBmcHJpbnRmIChmcCwgInBhcnRpYWxseSBi bGFjayBsaXN0ZWRcbiIpOwotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZwcmludGYgKGZw LCAibm90IGJsYWNrIGxpc3RlZFxuIik7Ci0KLSAgICAgICAgICBoID0gaGhkciAtPiBoYl9uZXh0 OwotICAgICAgICB9Ci0gICAgfQotI2lmbmRlZiBVU0VfTVVOTUFQCi0gIGlmICh0b3RhbF9mcmVl ICE9IEdDX2xhcmdlX2ZyZWVfYnl0ZXMpCi0gICAgewotICAgICAgZnByaW50ZiAoZnAsICJHQ19s YXJnZV9mcmVlX2J5dGVzID0gJWx1IChJTkNPTlNJU1RFTlQhISlcbiIsCi0gICAgICAgICAgICAg ICAodW5zaWduZWQgbG9uZykgR0NfbGFyZ2VfZnJlZV9ieXRlcyk7Ci0gICAgfQotI2VuZGlmCi0g IGZwcmludGYgKGZwLCAiVG90YWwgb2YgJWx1IGJ5dGVzIG9uIGZyZWUgbGlzdFxuIiwgKHVuc2ln bmVkIGxvbmcpdG90YWxfZnJlZSk7Ci0gIGZwcmludGYgKGZwLCAiLS0tLS0tLS0tLSBFbmQgZnJl ZSBtYXAgLS0tLS0tLS0tLVxuIik7CisgIEdDX2l0ZXJhdGVfZnJlZV9oYmxrcyhwcmludF9oYmxr ZmxfZmlsZV9pdGVtLCAoR0Nfd29yZCkmZGF0YSk7CisgIGZwcmludGYoZnAsICJUb3RhbCBvZiAl bHUgYnl0ZXMgb24gZnJlZSBsaXN0XG4iLAorCSAgICh1bnNpZ25lZCBsb25nKWRhdGEudG90YWxf ZnJlZSk7CisgIGZwcmludGYoZnAsICItLS0tLS0tLS0tIEVuZCBmcmVlIG1hcCAtLS0tLS0tLS0t XG4iKTsKIH0KIAogc3RhdGljIGludCBHQ19kdW1wX2NvdW50ID0gMTsKQEAgLTE3Myw3ICsxMDks NyBAQCBHQ19wcmludF9kZWJ1Z19pbmZvX2ZpbGUoRklMRSogZnApCiAgIGlmIChnY19vaykKICAg ICBHQ19nY29sbGVjdCgpOwogICBmcHJpbnRmKGluZm8uZnAsICItLS0tLS0tLS0tIEJlZ2luIGJs b2NrIG1hcCAtLS0tLS0tLS0tXG4iKTsKLSAgR0NfYXBwbHlfdG9fYWxsX2Jsb2NrcyhHQ19wcmlu dF9kZWJ1Z19jYWxsYmFjaywgKHdvcmQpKHZvaWQqKSgmaW5mbykpOworICBHQ19hcHBseV90b19h bGxfYmxvY2tzKEdDX3ByaW50X2RlYnVnX2NhbGxiYWNrLCAoR0Nfd29yZCkodm9pZCopKCZpbmZv KSk7CiAgIC8vZnByaW50ZihmcCwgIiNUb3RhbCB1c2VkICVkIGZyZWUgJWQgd2FzdGVkICVkXG4i LCBpbmZvLnVzZWQsIGluZm8uZnJlZSwgaW5mby53YXN0ZWQpOwogICAvL2ZwcmludGYoZnAsICIj VG90YWwgYmxvY2tzICVkOyAlZEsgYnl0ZXNcbiIsIGluZm8uYmxvY2tzLCBpbmZvLmJsb2Nrcyo0 KTsKICAgZnByaW50ZihpbmZvLmZwLCAiLS0tLS0tLS0tLSBFbmQgYmxvY2sgbWFwIC0tLS0tLS0t LS1cbiIpOwpAQCAtMTk0LDggKzEzMCw4IEBAIG5hbWVzcGFjZQogICAgIGludCBieXRlc19mZDsK IAogICAgIHZvaWQgcHJpbnRfYWRkcmVzc19tYXAoKTsKLSAgICB2b2lkIGVudW1lcmF0ZV9jYWxs YmFjayhzdHJ1Y3QgaGJsayAqaCk7Ci0gICAgc3RhdGljIHZvaWQgZW51bWVyYXRlX2NhbGxiYWNr X2FkYXB0b3Ioc3RydWN0IGhibGsgKmgsIHdvcmQgZHVtbXkpOworICAgIHZvaWQgZW51bWVyYXRl X2NhbGxiYWNrKEdDX2hibGtfcyAqaCk7CisgICAgc3RhdGljIHZvaWQgZW51bWVyYXRlX2NhbGxi YWNrX2FkYXB0b3IoR0NfaGJsa19zICpoLCBHQ193b3JkIGR1bW15KTsKICAgfTsKIH0KIApAQCAt MzAwLDcgKzIzNiw3IEBAIEdDX2VudW1lcmF0b3I6OmVudW1lcmF0ZSgpCiAgIGlmIChnY19vaykK ICAgICBHQ19nY29sbGVjdCgpOwogICBHQ19hcHBseV90b19hbGxfYmxvY2tzKGVudW1lcmF0ZV9j YWxsYmFja19hZGFwdG9yLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAod29yZCkodm9pZCop KHRoaXMpKTsKKwkJCSAoR0Nfd29yZCkodm9pZCopKHRoaXMpKTsKICAgZnByaW50ZihmcCwgIi0t LS0tLS0tLS0gRW5kIG9iamVjdCBtYXAgLS0tLS0tLS0tLVxuIik7CiAgIGZmbHVzaChmcCk7IAog CkBAIC0zMTYsMjUgKzI1MiwyNCBAQCBHQ19lbnVtZXJhdG9yOjplbnVtZXJhdGUoKQogfQogCiB2 b2lkCi1HQ19lbnVtZXJhdG9yOjplbnVtZXJhdGVfY2FsbGJhY2tfYWRhcHRvcihzdHJ1Y3QgaGJs ayAqaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmQgZHVt bXkpCitHQ19lbnVtZXJhdG9yOjplbnVtZXJhdGVfY2FsbGJhY2tfYWRhcHRvcihHQ19oYmxrX3Mg KmgsCisJCQkJCSAgR0Nfd29yZCBkdW1teSkKIHsKICAgR0NfZW51bWVyYXRvciogcGluZm8gPSAo R0NfZW51bWVyYXRvciopZHVtbXk7CiAgIHBpbmZvLT5lbnVtZXJhdGVfY2FsbGJhY2soaCk7CiB9 CiAKIHZvaWQKLUdDX2VudW1lcmF0b3I6OmVudW1lcmF0ZV9jYWxsYmFjayhzdHJ1Y3QgaGJsayAq aCkKK0dDX2VudW1lcmF0b3I6OmVudW1lcmF0ZV9jYWxsYmFjayhHQ19oYmxrX3MgKmgpCiB7Ci0g IGhkciAqIGhoZHIgPSBIRFIoaCk7Ci0gIHNpemVfdCBieXRlcyA9IFdPUkRTX1RPX0JZVEVTKGho ZHItPmhiX3N6KTsKKyAgc2l6ZV90IGJ5dGVzOwogICBpbnQgaTsKIAotICBmb3IgKGkgPSAwOyBp ID09IDAgfHwgKGkgKyBieXRlcyA8PSBIQkxLU0laRSk7IGkgKz0gYnl0ZXMpCisgIGZvciAoaSA9 IDA7IGkgPT0gMCB8fCAoaSArIGJ5dGVzIDw9IEdDX2dldF9oYmxrX3NpemUoKSk7IGkgKz0gYnl0 ZXMpCiAgICAgewotICAgICAgaW50IGluVXNlID0gbWFya19iaXRfZnJvbV9oZHIoaGhkcixCWVRF U19UT19XT1JEUyhpKSk7ICAvLyBpbiB1c2UKKyAgICAgIGludCBpblVzZSA9IEdDX2lzX21hcmtl ZCgoY2hhciopaCtpKTsgICAgICAgICAgICAgICAgICAgLy8gaW4gdXNlCiAgICAgICBjaGFyICpw dHIgPSAoY2hhciopaCtpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZHJl c3MKLSAgICAgIGludCBraW5kID0gaGhkci0+aGJfb2JqX2tpbmQ7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8ga2luZAorICAgICAgaW50IGtpbmQgPSBHQ19nZXRfa2luZF9hbmRfc2l6ZSho LCAmYnl0ZXMpOyAgICAgICAgICAgICAvLyBraW5kCiAgICAgICB2b2lkICprbGFzcyA9IDA7CiAg ICAgICB2b2lkICpkYXRhID0gMDsKICAgICAgIGlmIChraW5kID09IEdDX2djal9raW5kCkBAIC00 MzEsNyArMzY2LDcgQEAgdm9pZAogCiAgIEoyQShuYW1lLCBuKTsKICAgb29tRHVtcE5hbWUgPSBu OwotICBHQ19vb21fZm4gPSBub21lbV9oYW5kbGVyOworICBHQ19zZXRfb29tX2ZuKG5vbWVtX2hh bmRsZXIpOwogfQogCiAjZWxzZSAgLy8gSEFWRV9QUk9DX1NFTEZfTUFQUwpkaWZmIC0tZ2l0IGEv bGliamF2YS9pbmNsdWRlL01ha2VmaWxlLmluIGIvbGliamF2YS9pbmNsdWRlL01ha2VmaWxlLmlu CmluZGV4IGQ2MGY3NzE1M2Y3Li41N2FkZDhkYzgwMCAxMDA2NDQKLS0tIGEvbGliamF2YS9pbmNs dWRlL01ha2VmaWxlLmluCisrKyBiL2xpYmphdmEvaW5jbHVkZS9NYWtlZmlsZS5pbgpAQCAtMjMw LDcgKzIzMCw2IEBAIEVYQ0VQVElPTlNQRUMgPSBARVhDRVBUSU9OU1BFQ0AKIEVYRUVYVCA9IEBF WEVFWFRACiBGR1JFUCA9IEBGR1JFUEAKIEdDQ19GT1JfRUNKWCA9IEBHQ0NfRk9SX0VDSlhACi1H Q0RFUFMgPSBAR0NERVBTQAogR0NJTkNTID0gQEdDSU5DU0AKIEdDSiA9IEBHQ0pACiBHQ0pERVBN T0RFID0gQEdDSkRFUE1PREVACkBAIC0yNDAsOCArMjM5LDYgQEAgR0NKVkVSU0lPTiA9IEBHQ0pW RVJTSU9OQAogR0NKX0JJTl9ESVIgPSBAR0NKX0JJTl9ESVJACiBHQ0pfRk9SX0VDSlggPSBAR0NK X0ZPUl9FQ0pYQAogR0NMSUJTID0gQEdDTElCU0AKLUdDU1BFQyA9IEBHQ1NQRUNACi1HQ1RFU1RT UEVDID0gQEdDVEVTVFNQRUNACiBHTElCX0NGTEFHUyA9IEBHTElCX0NGTEFHU0AKIEdMSUJfTElC UyA9IEBHTElCX0xJQlNACiBHUkVQID0gQEdSRVBACkBAIC0yNTksNyArMjU2LDYgQEAgSU5URVJQ UkVURVIgPSBASU5URVJQUkVURVJACiBKQVIgPSBASkFSQAogSkFWQV9IT01FID0gQEpBVkFfSE9N RUAKIEpBVkFfVkVSU0lPTiA9IEBKQVZBX1ZFUlNJT05ACi1KQzFHQ1NQRUMgPSBASkMxR0NTUEVD QAogSlJFX0JJTl9ESVIgPSBASlJFX0JJTl9ESVJACiBKUkVfRElSID0gQEpSRV9ESVJACiBKUkVf TElCX0RJUiA9IEBKUkVfTElCX0RJUkAKZGlmZiAtLWdpdCBhL2xpYmphdmEvaW5jbHVkZS9ib2Vo bS1nYy5oIGIvbGliamF2YS9pbmNsdWRlL2JvZWhtLWdjLmgKaW5kZXggZWQ4YWM2YWEyZTMuLjk2 ZjQ1NDY5MjAzIDEwMDY0NAotLS0gYS9saWJqYXZhL2luY2x1ZGUvYm9laG0tZ2MuaAorKysgYi9s aWJqYXZhL2luY2x1ZGUvYm9laG0tZ2MuaApAQCAtMjcsNyArMjcsNyBAQCBleHRlcm4gIkMiCiAj aW5jbHVkZSA8amF2YS9sYW5nL0NsYXNzLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKLSNpbmNs dWRlIDxnY19leHRfY29uZmlnLmg+IC8vIGZvciBUSFJFQURfTE9DQUxfQUxMT0MKKyNpbmNsdWRl IDxnYy9nYy5oPiAvLyBmb3IgVEhSRUFEX0xPQ0FMX0FMTE9DCiAKIGV4dGVybiAiQyIgdm9pZCAq IEdDX2djal9tYWxsb2Moc2l6ZV90LCB2b2lkICopOwogZXh0ZXJuICJDIiB2b2lkICogR0NfbWFs bG9jX2F0b21pYyhzaXplX3QpOwpAQCAtNDEsOCArNDEsNyBAQCBleHRlcm4gIkMiIHZvaWQgKiBH Q19sb2NhbF9tYWxsb2NfYXRvbWljKHNpemVfdCk7CiBpbmxpbmUgdm9pZCAqCiBfSnZfQWxsb2NP YmogKGpzaXplIHNpemUsIGpjbGFzcyBrbGFzcykKIHsKLSAgLy8gVGhpcyBzaG91bGQgY2FsbCBH Q19HQ0pfTUFMTE9DLCBidXQgdGhhdCB3b3VsZCBpbnZvbHZlCi0gIC8vIGluY2x1ZGluZyBnYy5o LgorICAvLyBGSVhNRTogVGhpcyBzaG91bGQgY2FsbCBHQ19HQ0pfTUFMTE9DCiAjaWZkZWYgVEhS RUFEX0xPQ0FMX0FMTE9DCiAgIHJldHVybiBHQ19sb2NhbF9nY2pfbWFsbG9jIChzaXplLCBrbGFz cy0+dnRhYmxlKTsKICNlbHNlIApkaWZmIC0tZ2l0IGEvbGliamF2YS9pbmNsdWRlL2NvbmZpZy5o LmluIGIvbGliamF2YS9pbmNsdWRlL2NvbmZpZy5oLmluCmluZGV4IDUyZmVmM2MwNTZiLi5lYzQ0 NGQ2YzEwNyAxMDA2NDQKLS0tIGEvbGliamF2YS9pbmNsdWRlL2NvbmZpZy5oLmluCisrKyBiL2xp YmphdmEvaW5jbHVkZS9jb25maWcuaC5pbgpAQCAtMjA3LDYgKzIwNyw5IEBACiAvKiBEZWZpbmUg aWYgbGliZGxsb2FkZXIgd2lsbCBiZSBidWlsdCBvbiB0aGlzIHBsYXRmb3JtICovCiAjdW5kZWYg SEFWRV9MSUJETExPQURFUgogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdjJyBs aWJyYXJ5ICgtbGdjKS4gKi8KKyN1bmRlZiBIQVZFX0xJQkdDCisKIC8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSBgbHRkbCcgbGlicmFyeSAoLWxsdGRsKS4gKi8KICN1bmRlZiBIQVZFX0xJ QkxUREwKIApkaWZmIC0tZ2l0IGEvbGliamF2YS9saWJnY2ouc3BlYy5pbiBiL2xpYmphdmEvbGli Z2NqLnNwZWMuaW4KaW5kZXggMjJlZWMzZGJjNzkuLmJmZWVkODU4ZDQ0IDEwMDY0NAotLS0gYS9s aWJqYXZhL2xpYmdjai5zcGVjLmluCisrKyBiL2xpYmphdmEvbGliZ2NqLnNwZWMuaW4KQEAgLTcs NiArNyw2IEBACiAqc3RhcnRmaWxlOiBAVEhSRUFEU1RBUlRGSUxFU1BFQ0AgJShzdGFydGZpbGVv cmlnKQogCiAlcmVuYW1lIGxpYiBsaWJvcmlnCi0qbGliOiBATERfU1RBUlRfU1RBVElDX1NQRUNA IEBMSUJHQ0pfU1BFQ0AgQExEX0ZJTklTSF9TVEFUSUNfU1BFQ0AgQExJQk1BVEhTUEVDQCBATERM SUJJQ09OVkAgQEdDU1BFQ0AgQFRIUkVBRFNQRUNAIEBaTElCU1BFQ0AgQFNZU1RFTVNQRUNAICUo bGliZ2NjKSBATElCU1REQ1hYU1BFQ0AgJShsaWJvcmlnKQorKmxpYjogQExEX1NUQVJUX1NUQVRJ Q19TUEVDQCBATElCR0NKX1NQRUNAIEBMRF9GSU5JU0hfU1RBVElDX1NQRUNAIEBMSUJNQVRIU1BF Q0AgQExETElCSUNPTlZAIEBUSFJFQURTUEVDQCBAWkxJQlNQRUNAIEBTWVNURU1TUEVDQCAlKGxp YmdjYykgQExJQlNURENYWFNQRUNAICUobGlib3JpZykKIAotKmpjMTogQEhBU0hfU1lOQ19TUEVD QCBARElWSURFU1BFQ0AgQENIRUNLUkVGU1BFQ0AgQEpDMUdDU1BFQ0AgQEVYQ0VQVElPTlNQRUNA IEBCQUNLVFJBQ0VTUEVDQCBASUVFRVNQRUNAIEBBVE9NSUNTUEVDQCBATElCR0NKX0JDX1NQRUNA IC1ma2VlcC1pbmxpbmUtZnVuY3Rpb25zCisqamMxOiBASEFTSF9TWU5DX1NQRUNAIEBESVZJREVT UEVDQCBAQ0hFQ0tSRUZTUEVDQCBARVhDRVBUSU9OU1BFQ0AgQEJBQ0tUUkFDRVNQRUNAIEBJRUVF U1BFQ0AgQEFUT01JQ1NQRUNAIEBMSUJHQ0pfQkNfU1BFQ0AgLWZrZWVwLWlubGluZS1mdW5jdGlv bnMKZGlmZiAtLWdpdCBhL2xpYmphdmEvdGVzdHN1aXRlL01ha2VmaWxlLmluIGIvbGliamF2YS90 ZXN0c3VpdGUvTWFrZWZpbGUuaW4KaW5kZXggODQxZDUxNzQ0NGYuLmQ1ZTY3NTU0MDBiIDEwMDY0 NAotLS0gYS9saWJqYXZhL3Rlc3RzdWl0ZS9NYWtlZmlsZS5pbgorKysgYi9saWJqYXZhL3Rlc3Rz dWl0ZS9NYWtlZmlsZS5pbgpAQCAtMTgzLDcgKzE4Myw2IEBAIEVYQ0VQVElPTlNQRUMgPSBARVhD RVBUSU9OU1BFQ0AKIEVYRUVYVCA9IEBFWEVFWFRACiBGR1JFUCA9IEBGR1JFUEAKIEdDQ19GT1Jf RUNKWCA9IEBHQ0NfRk9SX0VDSlhACi1HQ0RFUFMgPSBAR0NERVBTQAogR0NJTkNTID0gQEdDSU5D U0AKIEdDSiA9IEBHQ0pACiBHQ0pERVBNT0RFID0gQEdDSkRFUE1PREVACkBAIC0xOTMsOCArMTky LDYgQEAgR0NKVkVSU0lPTiA9IEBHQ0pWRVJTSU9OQAogR0NKX0JJTl9ESVIgPSBAR0NKX0JJTl9E SVJACiBHQ0pfRk9SX0VDSlggPSBAR0NKX0ZPUl9FQ0pYQAogR0NMSUJTID0gQEdDTElCU0AKLUdD U1BFQyA9IEBHQ1NQRUNACi1HQ1RFU1RTUEVDID0gQEdDVEVTVFNQRUNACiBHTElCX0NGTEFHUyA9 IEBHTElCX0NGTEFHU0AKIEdMSUJfTElCUyA9IEBHTElCX0xJQlNACiBHUkVQID0gQEdSRVBACkBA IC0yMTIsNyArMjA5LDYgQEAgSU5URVJQUkVURVIgPSBASU5URVJQUkVURVJACiBKQVIgPSBASkFS QAogSkFWQV9IT01FID0gQEpBVkFfSE9NRUAKIEpBVkFfVkVSU0lPTiA9IEBKQVZBX1ZFUlNJT05A Ci1KQzFHQ1NQRUMgPSBASkMxR0NTUEVDQAogSlJFX0JJTl9ESVIgPSBASlJFX0JJTl9ESVJACiBK UkVfRElSID0gQEpSRV9ESVJACiBKUkVfTElCX0RJUiA9IEBKUkVfTElCX0RJUkAKLS0gCjIuMzgu MQoK --000000000000d18c5505ee47817a--