From owner-freebsd-emulation@FreeBSD.ORG Mon Aug 9 13:14:43 2010 Return-Path: Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 39F37106564A for ; Mon, 9 Aug 2010 13:14:43 +0000 (UTC) (envelope-from eb30750@gmail.com) Received: from mail-gx0-f182.google.com (mail-gx0-f182.google.com [209.85.161.182]) by mx1.freebsd.org (Postfix) with ESMTP id 988B08FC19 for ; Mon, 9 Aug 2010 13:14:42 +0000 (UTC) Received: by gxk24 with SMTP id 24so4243584gxk.13 for ; Mon, 09 Aug 2010 06:14:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=VkRGx8Tq6s7uUybZi72T9fZ4pO5nikHeeM8MYQPPfMk=; b=Y3CCoO5DaPP6AIwqHGcgS0k9+8ejaXYew5ByG4t38hbrRiXC0sjPHMYbtFGTuc0Dup GTd9r4cHgf1oedHVDwG7AvLViCabU3nrUBzb7/7j9H5naSdUvaxPlHPoanuMJqL0K4d5 Tu9zRy0OVHpc7JOkSyGt/tYfEwFwlbM40P4Yc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=OltQVbC8XdKfkvXdN2kV2EgLkO+pi25RRW6seI1SP6BnKXpVVJ7Q+tAn4y6u2/1xnU vAgaF/hh+Vi5r6b00GdNNUbstMmuF3XkdRqt6HC9F+n1T4oUoBtle8dYGgnREPq/+txH cf9T3aQKRFs5OqRiaxg8k9VyZ7nQh02U9oDxY= MIME-Version: 1.0 Received: by 10.151.50.14 with SMTP id c14mr17825729ybk.178.1281359679627; Mon, 09 Aug 2010 06:14:39 -0700 (PDT) Received: by 10.151.115.10 with HTTP; Mon, 9 Aug 2010 06:14:39 -0700 (PDT) Date: Mon, 9 Aug 2010 09:14:39 -0400 Message-ID: From: Paul Lambert To: freebsd-emulation@freebsd.org Content-Type: multipart/mixed; boundary=0015174bf18688a8f4048d63cced X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: installing running VMware Player using linux-emulator X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Aug 2010 13:14:43 -0000 --0015174bf18688a8f4048d63cced Content-Type: text/plain; charset=ISO-8859-1 I have downloaded and began running the installer for VMware-Player 3.1. The shell script launched and was installing RPMs when I received this error. I have attached the verbose bash output file. Aug 8 20:44:09 BRSINC-VM02 kernel: linux: pid 12889 (dd): ioctl fd=0, cmd=0x6d02 ('m',2) is not implemented. Others in the FreeBDD community say they believe VMware does run on FreeBSD. I have an amd-v 64 bit processor and I also inquired about the status of the 64 bit linux-eumlator. Please advise. Thanks Paul --0015174bf18688a8f4048d63cced Content-Type: text/plain; charset=US-ASCII; name="bashOutput.txt" Content-Disposition: attachment; filename="bashOutput.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gcnkqkzf0 QlJTSU5DLVZNMDIjIHVuYW1lIC1hCkZyZWVCU0QgQlJTSU5DLVZNMDIubG9jYWwgOC4xLVJFTEVB U0UgRnJlZUJTRCA4LjEtUkVMRUFTRSAjMDogTW9uIEp1bCAxOSAwMjozNjo0OSBVVEMgMjAxMCAg ICAgcm9vdEBtYXNvbi5jc2UuYnVmZmFsby5lZHU6L3Vzci9vYmovdXNyL3NyYy9zeXMvR0VORVJJ QyAgYW1kNjQKCgpCUlNJTkMtVk0wMiMgL2NvbXBhdC9saW51eC9iaW4vYmFzaCAtdnggVk13YXJl LVBsYXllci0zLjEuMC0yNjEwMjQuaTM4Ni5idW5kbGUKIyEvdXNyL2Jpbi9lbnYgYmFzaAojCiMg Vk13YXJlIEluc3RhbGxlciBMYXVuY2hlcgojCiMgVGhpcyBpcyB0aGUgZXhlY3V0YWJsZSBzdHVi IHRvIGNoZWNrIGlmIHRoZSBWTXdhcmUgSW5zdGFsbGVyIFNlcnZpY2UKIyBpcyBpbnN0YWxsZWQg YW5kIGlmIHNvLCBsYXVuY2ggaXQuICBJZiBpdCBpcyBub3QgaW5zdGFsbGVkLCB0aGUKIyBhdHRh Y2hlZCBwYXlsb2FkIGlzIGV4dHJhY3RlZCwgdGhlIFZNSVMgaXMgaW5zdGFsbGVkLCBhbmQgdGhl IFZNSVMKIyBpcyBsYXVuY2hlZCB0byBpbnN0YWxsIHRoZSBidW5kbGUgYXMgbm9ybWFsLgoKIyBB cmNoaXRlY3R1cmUgdGhpcyBidW5kbGUgd2FzIGJ1aWx0IGZvciAoeDg2IG9yIHg2NCkKQVJDSD14 ODYKKyBBUkNIPXg4NgoKaWYgWyAteiAiJEJBU0giIF07IHRoZW4KICAgIyAkLSBleHBhbmRzIHRv IHRoZSBjdXJyZW50IG9wdGlvbnMgc28gdGhpbmdzIGxpa2UgLXggZ2V0IHBhc3NlZCB0aHJvdWdo CiAgIGlmIFsgISAteiAiJC0iIF07IHRoZW4KICAgICAgb3B0cz0iLSQtIgogICBmaQoKICAgIyBk YXNoIGZsaXBzIG91dCBvZiAkb3B0cyBpcyBxdW90ZWQsIHNvIGRvbid0LgogICBleGVjIC91c3Iv YmluL2VudiBiYXNoICRvcHRzICIkMCIgIiRAIgogICBlY2hvICJVbmFibGUgdG8gcmVzdGFydCB3 aXRoIGJhc2ggc2hlbGwiCiAgIGV4aXQgMQpmaQorICdbJyAteiAvY29tcGF0L2xpbnV4L2Jpbi9i YXNoICddJwoKc2V0IC1lCisgc2V0IC1lCgpFVENESVI9L2V0Yy92bXdhcmUtaW5zdGFsbGVyCisg RVRDRElSPS9ldGMvdm13YXJlLWluc3RhbGxlcgpPTERFVENESVI9Ii9ldGMvdm13YXJlIgorIE9M REVUQ0RJUj0vZXRjL3Ztd2FyZQoKIyMjIE9mZnNldHMgIyMjCiMgVGhlc2UgYXJlIG9mZnNldHMg dGhhdCBhcmUgbGF0ZXIgdXNlZCByZWxhdGl2ZSB0byBFT0YuCkZPT1RFUl9TSVpFPTUyCisgRk9P VEVSX1NJWkU9NTIKCiMgVGhpcyB3b24ndCB3b3JrIHdpdGggbm9uLUdOVSBzdGF0LgpGSUxFX1NJ WkU9YHN0YXQgLS1mb3JtYXQgIiVzIiAiJDAiYApzdGF0IC0tZm9ybWF0ICIlcyIgIiQwIgorKyBz dGF0IC0tZm9ybWF0ICVzIFZNd2FyZS1QbGF5ZXItMy4xLjAtMjYxMDI0LmkzODYuYnVuZGxlCisg RklMRV9TSVpFPTEwNjUxOTg2NQpvZmZzZXQ9JCgoJEZJTEVfU0laRSAtIDQpKQorIG9mZnNldD0x MDY1MTk4NjEKCk1BR0lDX09GRlNFVD0kb2Zmc2V0CisgTUFHSUNfT0ZGU0VUPTEwNjUxOTg2MQpv ZmZzZXQ9JCgoJG9mZnNldCAtIDQpKQorIG9mZnNldD0xMDY1MTk4NTcKCkNIRUNLU1VNX09GRlNF VD0kb2Zmc2V0CisgQ0hFQ0tTVU1fT0ZGU0VUPTEwNjUxOTg1NwpvZmZzZXQ9JCgoJG9mZnNldCAt IDQpKQorIG9mZnNldD0xMDY1MTk4NTMKClZFUlNJT05fT0ZGU0VUPSRvZmZzZXQKKyBWRVJTSU9O X09GRlNFVD0xMDY1MTk4NTMKb2Zmc2V0PSQoKCRvZmZzZXQgLSA0KSkKKyBvZmZzZXQ9MTA2NTE5 ODQ5CgpQUkVQQVlMT0FEX09GRlNFVD0kb2Zmc2V0CisgUFJFUEFZTE9BRF9PRkZTRVQ9MTA2NTE5 ODQ5Cm9mZnNldD0kKCgkb2Zmc2V0IC0gNCkpCisgb2Zmc2V0PTEwNjUxOTg0NQoKUFJFUEFZTE9B RF9TSVpFX09GRlNFVD0kb2Zmc2V0CisgUFJFUEFZTE9BRF9TSVpFX09GRlNFVD0xMDY1MTk4NDUK b2Zmc2V0PSQoKCRvZmZzZXQgLSA0KSkKKyBvZmZzZXQ9MTA2NTE5ODQxCgpMQVVOQ0hFUl9TSVpF X09GRlNFVD0kb2Zmc2V0CisgTEFVTkNIRVJfU0laRV9PRkZTRVQ9MTA2NTE5ODQxCm9mZnNldD0k KCgkb2Zmc2V0IC0gNCkpCisgb2Zmc2V0PTEwNjUxOTgzNwoKUEFZTE9BRF9PRkZTRVQ9JG9mZnNl dAorIFBBWUxPQURfT0ZGU0VUPTEwNjUxOTgzNwpvZmZzZXQ9JCgoJG9mZnNldCAtIDQpKQorIG9m ZnNldD0xMDY1MTk4MzMKClBBWUxPQURfU0laRV9PRkZTRVQ9JG9mZnNldAorIFBBWUxPQURfU0la RV9PRkZTRVQ9MTA2NTE5ODMzCm9mZnNldD0kKCgkb2Zmc2V0IC0gNCkpCisgb2Zmc2V0PTEwNjUx OTgyOQoKIyBSZXN0IG9mIHRoZSBvZmZzZXRzIG9tbWl0dGVkCgojIyMgRW5kIG9mZnNldHMgIyMj CgojIFNob3J0IG5hbWUgKGllLCB2bXdhcmUtd29ya3N0YXRpb24pLiAgVGhpcyBpc24ndCB0ZWNo bmljYWxseSBjb3JyZWN0CiMgc2luY2UgdGhlcmUgY291bGQgYmUgbXVsdGlwbGUgcHJvZHVjdCBj b21wb25lbnRzIGluIGEgYnVuZGxlLgpQUk9EVUNUX05BTUU9dm13YXJlLXBsYXllcgorIFBST0RV Q1RfTkFNRT12bXdhcmUtcGxheWVyCgojIENhbGxlZCB3aGVuIHRoZSBzY3JpcHQgZXhpdHMKIwoj IEFyZ3VtZW50czoKIyAgICBOb25lCiMKIyBTaWRlIGVmZmVjdHM6CiMgICAgLSBWTUlTX1RFTVAg YW5kIFBSRVBBWUxPQUQgaXMgcmVtb3ZlZCB1bmxlc3MgVk1JU19LRUVQX1RFTVAgaXMgc2V0Cm9u X2V4aXQoKSB7CiAgIGlmIFsgLWUgIiRWTUlTX1RFTVAiIC1hIC16ICIkVk1JU19LRUVQX1RFTVAi IF07IHRoZW4KICAgICAgcm0gLXJmICIkVk1JU19URU1QIgogICBmaQoKICAgaWYgWyAtZSAiJFBS RVBBWUxPQUQiIC1hIC16ICIkVk1JU19LRUVQX1RFTVAiIF07IHRoZW4KICAgICAgcm0gLXJmICIk UFJFUEFZTE9BRCIKICAgZmkKfQoKdHJhcCBvbl9leGl0IEVYSVQKKyB0cmFwIG9uX2V4aXQgRVhJ VAp0cmFwICIiIFVTUjEKKyB0cmFwICcnIFVTUjEKCiMgUmV0cml2ZXMgYW5kIHNldHMgdGhlIHZh cmlvdXMgbGVuZ3RocyB0aGF0IGFyZSBleHRyYWN0ZWQgZnJvbSB0aGUKIyBmb290ZXIgb2YgdGhl IGZpbGUuCiMKIyBBcmd1bWVudHM6CiMgICAgJDEgPT4gYnVuZGxlIHRvIGdldCB0aGUgbGVuZ3Ro cyBmcm9tCiMKIyBTaWRlIGVmZmVjdHM6CiMgICAgLSBNQUdJQ19OVU1CRVIsIExBVU5DSEVSX1NJ WkUsIGFuZCBQQVlMT0FEX1NJWkUgYXJlIHNldC4KIwojIFJldHVybnM6CiMgICAgMCBpZiBzdWNj ZXNzZnVsLCBlbHNlIDEKc2V0X2xlbmd0aHMoKSB7CiAgIGxvY2FsIGZpbGU9IiQxIgogICBpZiBb ICEgLXMgIiRmaWxlIiBdOyB0aGVuCiAgICAgIGVjaG8gIiRmaWxlIGRvZXMgbm90IGV4aXN0Igog ICAgICBleGl0IDEKICAgZmkKCiAgICMgWFhYOiBwdXQgZXh0cmFjdGlvbiBpbiBpdHMgb3duIGZ1 bmN0aW9uCiAgIE1BR0lDX05VTUJFUj1gb2QgLUFuIC10IHU0IC1OIDQgLWogJE1BR0lDX09GRlNF VCAiJGZpbGUiIHwgdHIgLWQgJyAnYAoKICAgaWYgWyAiJE1BR0lDX05VTUJFUiIgIT0gIjkwNzM4 MDI0MSIgXTsgdGhlbgogICAgICBlY2hvICJtYWdpYyBudW1iZXIgZG9lcyBub3QgbWF0Y2giCiAg ICAgIGV4aXQgMQogICBmaQoKICAgTEFVTkNIRVJfU0laRT1gb2QgLUFuIC10IHU0IC1OIDQgLWog JExBVU5DSEVSX1NJWkVfT0ZGU0VUICIkZmlsZSIgfCB0ciAtZCAnICdgCiAgIFBBWUxPQURfU0la RT1gb2QgLUFuIC10IHU0IC1OIDQgLWogJFBBWUxPQURfU0laRV9PRkZTRVQgIiRmaWxlIiB8IHRy IC1kICcgJ2AKICAgUFJFUEFZTE9BRF9TSVpFPWBvZCAtQW4gLXQgdTQgLU4gNCAtaiAkUFJFUEFZ TE9BRF9TSVpFX09GRlNFVCAiJGZpbGUiIHwgdHIgLWQgJyAnYAoKICAgU0tJUF9CWVRFUz0kKCgk UFJFUEFZTE9BRF9TSVpFICsgJExBVU5DSEVSX1NJWkUpKQoKICAgcmV0dXJuIDAKfQoKIyBEZXRl cm1pbmVzIHdoZXRoZXIgdGhlIHVzZXIgbGFuZCBpcyAzMiBvciA2NC1iaXQuCiMKIyBTaWRlIGVm ZmVjdHM6CiMgICAgTm9uZS4KIwojIFJldHVybnM6CiMgICAgIng4NiIgb3IgIng2NCIgb24gc3Vj Y2VzcyB3aXRoIGVycm9yIGNvZGUgMC4gIEV4aXRzIHdpdGggbm9uLXplcm8KIyAgICBzdGF0dXMg YW5kIHVuZGVmaW5lZCB0ZXh0IG9uIGZhaWx1cmUuCmdldF9hcmNoKCkgewogICAjIEZpcnN0IGJ5 dGUgaXMgdGhlIEVMRiBtYWdpYyBudW1iZXIuICBUaGUgNXRoIGJ5dGUgaXMgd2hldGhlciBpdCdz CiAgICMgYSAzMiBvciA2NC1iaXQgbWFjaGluZSAoMSBvciAyLCByZXNwZWN0aXZlbHkpLiAgU2Vl IGBtYW4gZWxmYCBmb3IKICAgIyBkZXRhaWxzLgogICBsb2NhbCBFTEZfTUFHSUM9N2YKCiAgIGlm IFsgImBvZCAtTjEgLUFuIC10IHgxIDwgL2Jpbi9zaCB8IHRyIC1kICcgJ2AiICE9ICIkRUxGX01B R0lDIiBdOyB0aGVuCiAgICAgIGV4aXQgMQogICBmaQoKICAgbG9jYWwgYXJjaD1gb2QgLWo0IC1O MSAtQW4gLXQgdTEgPCAvYmluL3NoIHwgdHIgLWQgJyAnYAoKICAgY2FzZSAkYXJjaCBpbgogICAg ICAxKQogICAgICAgICBlY2hvICJ4ODYiCgkgZXhpdCAwCgkgOzsKICAgICAgMikKICAgICAgICAg ZWNobyAieDY0IgogICAgICAgICBleGl0IDAKCSA7OwogICAgICAqKQogICAgICAgICBleGl0IDEK ICAgICAgICAgOzsKICAgZXNhYwp9CgojIERldGVybWluZXMgaWYgcGF0aCBpcyByZWxhdGl2ZS4K IwojIFNpZGUgZWZmZWN0czoKIyAgICBOb25lLgojCiMgUmV0dXJuczoKIyAgICAwIGlmIHJlbGF0 aXZlLCBvdGhlcndpc2UgMS4KaXNfcmVsYXRpdmUoKSB7CiAgICBsb2NhbCBwYXRoPSIkMSIKICAg IHNoaWZ0CgogICAgWyAiJHtwYXRoOjA6MX0iICE9ICIvIiBdCiAgICByZXR1cm4KfQoKIyBFeHRy YWN0cyB0aGUgcGF5bG9hZCBkYXRhIGludG8gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5LgojCiMgU2lk ZSBlZmZlY3RzOgojICAgIC0gdGVtcG9yYXJ5IGRpcmVjdG9yeSBpcyBjcmVhdGVkCiMgICAgLSBW TUlTX1RFTVAgaXMgc2V0IHRvIHRlbXBvcmFyeSBkaXJlY3RvcnkKIwojIFJldHVybnM6CiMgICAg Tm9uZQpleHRyYWN0X3NlbGYoKSB7CiAgIFZNSVNfVEVNUD1gbWt0ZW1wIC1kIC90bXAvdm1pcy5Y WFhYWFhgCiAgIGxvY2FsIGZpbGU9IiQwIgogICBsb2NhbCBmaWx0ZXI9IiIKICAgbG9jYWwgYm9v dHN0cmFwcGVyPSIkUFJFUEFZTE9BRCIvYm9vdHN0cmFwcGVyLWd0awoKICAgaWYgWyAhIC1kICIk Vk1JU19URU1QIiBdOyB0aGVuCiAgICAgIGVjaG8gIlVuYWJsZSB0byBjcmVhdGUgdGVtcG9yYXJ5 IGRpcmVjdG9yeS4iCiAgICAgIGV4aXQgMQogICBmaQoKICAgaWYgaXNfcmVsYXRpdmUgIiRmaWxl IjsgdGhlbgogICAgICBmaWxlPSIkUFdELyRmaWxlIgogICBmaQoKICAgaWYgWyAtZSAiJGJvb3Rz dHJhcHBlciIgXSAmJiAiJGJvb3RzdHJhcHBlciIgLS12YWxpZGF0ZSAyPiAvZGV2L251bGw7IHRo ZW4KICAgICAgZmlsdGVyPScgfCAiJFBSRVBBWUxPQUQiL2Jvb3RzdHJhcHBlci1ndGsgLS10aXRs ZSAiVk13YXJlIEluc3RhbGxlciIgXAogICAgICAgICAgICAgICAgLS1tZXNzYWdlICJQbGVhc2Ug d2FpdCB3aGlsZSBleHRyYWN0aW5nIHRoZSBWTXdhcmUgSW5zdGFsbGVyLi4uIiBcCiAgICAgICAg ICAgICAgICAtLXRvdGFsICRQQVlMT0FEX1NJWkUiJwogICBlbHNlCiAgICAgIGVjaG8gLW4gIkV4 dHJhY3RpbmcgVk13YXJlIEluc3RhbGxlci4uLiIKICAgZmkKCiAgIChjZCAkVk1JU19URU1QICYm IGRkIGlmPSIkZmlsZSIgaWJzPSRTS0lQX0JZVEVTIG9icz0xMDI0IHNraXA9MSAyPiAvZGV2L251 bGwgXAogICAgICAkZmlsdGVyIHwgZ3VuemlwIC1jIDI+IC9kZXYvbnVsbCB8IHRhciAteGYgLSAy PiAvZGV2L251bGwpCgogICBpZiBbICEgLWUgIiRib290c3RyYXBwZXIiIF07IHRoZW4KICAgICAg ZWNobyAiZG9uZS4iCiAgIGZpCn0KCmV4dHJhY3RfcHJlcGF5bG9hZCgpIHsKICAgUFJFUEFZTE9B RD1gbWt0ZW1wIC1kIC90bXAvdm1pcy5YWFhYWFhgCiAgIGxvY2FsIGZpbGU9IiQwIgoKICAgaWYg WyAhIC1kICIkUFJFUEFZTE9BRCIgXTsgdGhlbgogICAgICBlY2hvICJVbmFibGUgdG8gY3JlYXRl IHRlbXBvcmFyeSBkaXJlY3RvcnkuIgogICAgICBleGl0IDEKICAgZmkKCiAgIGlmIGlzX3JlbGF0 aXZlICIkZmlsZSI7IHRoZW4KICAgICAgZmlsZT0iJFBXRC8kZmlsZSIKICAgZmkKCiAgIChjZCAk UFJFUEFZTE9BRCAmJiBkZCBpZj0iJGZpbGUiIGlicz0kTEFVTkNIRVJfU0laRSBvYnM9MTAyNCBz a2lwPTEgMj4gL2Rldi9udWxsIHwgXAogICAgICBndW56aXAgLWMgMj4gL2Rldi9udWxsIHwgdGFy IC14ZiAtIDI+IC9kZXYvbnVsbCkKfQoKIyBEZXRlcm1pbmVzIGlmIGEgcHJvZ3JhbSBpcyBpbiB0 aGUgdXNlcidzIFBBVEguICBUaGlzIGlzIHVzZWQgaW5zdGVhZAojIG9mIHRoZSBleHRlcm5hbCB3 aGljaCBiZWNhdXNlIFNvbGFyaXMnIHZlcnNpb24gZG9lcyBub3Qgd29yayBhcwojIGV4cGVjdGVk LgojCiMgU2lkZSBlZmZlY3RzOgojICAgIE5vbmUKIwojIEFyZ3VtZW50czoKIyAgICAkMSA9PiBw cm9ncmFtIHRvIGNoZWNrCiMKIyBSZXR1cm5zOgojICAgIDAgaWYgZm91bmQsIGVsc2UgMQppbnRl cm5hbF93aGljaCgpIHsKICAgbG9jYWwgYmluYXJ5PSIkMSIKCiAgIGZvciBkaXIgaW4gYGVjaG8g JFBBVEggfCB0ciAiOiIgIlxuImA7IGRvCiAgICAgIGlmIFsgLXMgIiRkaXIvJGJpbmFyeSIgLWEg LXggIiRkaXIvJGJpbmFyeSIgXTsgdGhlbgogICAgICAgICByZXR1cm4gMAogICAgICBmaQogICBk b25lCgogICByZXR1cm4gMQp9CgoKIyBJbnN0YWxscyB0aGUgaW5zdGFsbGVyIGFuZCB0aGUgY3Vy cmVudCBidW5kbGUuCiMKIyBBcmd1bWVudHM6CiMgICAgJDEgPT4gZmlsZSBzb3VyY2UKIyAgICAk MiA9PiB0cnVlIGlmIHNob3cgaGVscAojICAgICQzID0+IHBhdGggdG8gYnVuZGxlCiMKIyBSZXR1 cm5zOgojICAgIE5vbmUKaW5zdGFsbCgpIHsKICAgbG9jYWwgc291cmNlPSIkMSIvaW5zdGFsbAog ICBzaGlmdAogICBsb2NhbCBoZWxwPSIkMSIKICAgc2hpZnQKICAgbG9jYWwgYnVuZGxlPSIkMSIK ICAgc2hpZnQKCiAgIGlmIFsgISAtZCAiJHNvdXJjZSIgXTsgdGhlbgogICAgICBlY2hvICIkc291 cmNlIGRvZXMgbm90IGV4aXN0IiA+JjIKICAgICAgZXhpdCAxCiAgIGZpCgogICBleHBvcnQgVk1X QVJFX0JPT1RTVFJBUD0iJFZNSVNfVEVNUCIvYm9vdHN0cmFwCgogICBjcCAtZiAiJHNvdXJjZSIv dm13YXJlLWluc3RhbGxlci9ib290c3RyYXAgIiRWTVdBUkVfQk9PVFNUUkFQIgogICBzZWQgLWkg LWUgInMsQEBMSUJESVJAQCwkc291cmNlLGciICIkVk1XQVJFX0JPT1RTVFJBUCIKICAgc2VkIC1p IC1lICJzLEBAVk1XQVJFX0lOU1RBTExFUkBALCRzb3VyY2Uvdm13YXJlLWluc3RhbGxlcixnIiAi JFZNV0FSRV9CT09UU1RSQVAiCgogICAuICIkVk1XQVJFX0JPT1RTVFJBUCIKCiAgIGxvY2FsIGlu c3RhbGxlcj0iJFZNV0FSRV9JTlNUQUxMRVIiL3Ztd2FyZS1pbnN0YWxsZXIKCiAgIGlmIFsgLW4g IiRoZWxwIiBdOyB0aGVuCiAgICAgICIkaW5zdGFsbGVyIiAtLWhlbHAKICAgICAgZXhpdCAwCiAg IGZpCgogICAjIFdlIG11c3QgZml4dXAgdGhlIHBhdGhzIGluIFBhbmdvIG9yIHRoZSBmb250cyB3 aWxsIGJlIGFsbCBtZXNzZWQgdXAKICAgbG9jYWwgbGliY29uZj0iJHNvdXJjZSIvdm13YXJlLWlu c3RhbGxlci9saWIvbGliY29uZgogICBmb3IgZmlsZSBpbiBldGMvcGFuZ28vcGFuZ29yYyBldGMv cGFuZ28vcGFuZ28ubW9kdWxlcyBldGMvcGFuZ28vcGFuZ294LmFsaWFzZXMgXAogICAgICAgICAg ICAgICBldGMvZ3RrLTIuMC9nZGstcGl4YnVmLmxvYWRlcnMgZXRjL2d0ay0yLjAvZ3RrLmltbW9k dWxlczsgZG8KICAgICAgIHNlZCAtaSAtZSAicyxAQExJQkNPTkZfRElSQEAsJGxpYmNvbmYsZyIg IiRsaWJjb25mLyRmaWxlIgogICBkb25lCgogICAjIFBhc3MgYWxsIG9wdGlvbnMgdGhlIHVzZXIg cGFzc2VkIGluIHNvIHRoYXQgdGhlIGNvcnJlY3QgVUkgdHlwZQogICAjIGdldHMgc2V0LgogICAi JGluc3RhbGxlciIgLS1zZXQtc2V0dGluZyB2bXdhcmUtaW5zdGFsbGVyIGxpYmNvbmYgIiRsaWJj b25mIiAgIFwKICAgICAgICAgICAgICAgIC0taW5zdGFsbC1jb21wb25lbnQgIiRzb3VyY2UiL3Zt d2FyZS1pbnN0YWxsZXIgICAgICBcCiAgICAgICAgICAgICAgICAtLWluc3RhbGwtYnVuZGxlICIk YnVuZGxlIiAiJEAiCiAgIHJldD0kPwogICBpZiBbICRyZXQgIT0gMCBdOyB0aGVuCiAgICAgIGV4 aXQgJHJldAogICBmaQoKICAgcmV0dXJuIDAKfQoKCiMgVW5pbnN0YWxsIGV4aXN0aW5nIGJ1bmRs ZSBpbnN0YWxsYXRpb24uCiMKIyBBcmd1bWVudHM6CiMgICAgJDEgPT4gZXRjZGlyCiMgICAgJDIg PT4gc3VmZml4IHRvIGFkZCB0byB2bXdhcmUtdW5pbnN0YWxsIChpZSAtdml4KQojCiMgUmV0dXJu czoKIyAgICAwIG9uIHN1Y2Nlc3MKdW5pbnN0YWxsX2J1bmRsZSgpIHsKICAgZXRjZGlyPSIkMSIK ICAgc2hpZnQKICAgc3VmZml4PSIkMSIKICAgc2hpZnQKCiAgIGxvY2FsIGJvb3RzdHJhcD0iJGV0 Y2RpciIvYm9vdHN0cmFwCgogICAjIElmIHRoZSBib290c3RyYXAgZmlsZSBleGlzdHMsIHdlIGFy ZSBkZWFsaW5nIHdpdGggYSBWTUlTCiAgICMgaW5zdGFsbGVyLgogICBpZiBbIC1lICIkYm9vdHN0 cmFwIiBdOyB0aGVuCiAgICAgIGxvY2FsIGJpbmRpcj0iYC4gJGV0Y2Rpci9ib290c3RyYXAgJiYg ZWNobyAkQklORElSYCIKICAgICAgbG9jYWwgaW5zdGFsbGVyPSIkYmluZGlyIi92bXdhcmUtdW5p bnN0YWxsJHN1ZmZpeAogICAgICAjIENoZWNrIGlmIHRoaXMgaXMgYW4gb2xkIHN0eWxlIGZpbGUg YnkgY2hlY2tpbmcgdGhlIHZlcnNpb24KICAgICAgIyBsaW5lIGZvciAnVkVSU0lPTj0iMS4wIicg IElmIGl0J3MgZm91bmQsIHJ1biB0aGUgYmxhbmtldAogICAgICAjIHVuaW5zdGFsbC4KICAgICAg aWYgZ3JlcCAtcSAnVkVSU0lPTj0iMS4wIicgIiRib290c3RyYXAiOyB0aGVuCiAgICAgICAgIGlm IFsgLWUgIiRpbnN0YWxsZXIiIF07IHRoZW4KICAgICAgICAgICAgaWYgISAiJGluc3RhbGxlciIg IiRAIjsgdGhlbgogICAgICAgICAgICAgICBlY2hvICJJbnN0YWxsZXIgZGlkIG5vdCB1bmluc3Rh bGwgc3VjY2Vzc2Z1bGx5LiIKICAgICAgICAgICAgZmkKICAgICAgICAgZmkKICAgICAgZmkKICAg ZmkKCiAgIHJldHVybiAwCn0KCgojIFVuaW5zdGFsbCBhIHRhciBpbnN0YWxsYXRpb24uCiMKIyBB cmd1bWVudHM6CiMgICAgJDEgPT4gZXRjZGlyCiMgICAgJDIgPT4gc3VmZml4IHRvIGFkZCB0byB2 bXdhcmUtdW5pbnN0YWxsIChpZSAtdml4KQojCiMgUmV0dXJuczoKIyAgICAwIG9uIHN1Y2Nlc3MK dW5pbnN0YWxsX3RhcigpIHsKICAgZXRjZGlyPSIkMSIKICAgc2hpZnQKICAgc3VmZml4PSIkMSIK ICAgc2hpZnQKCiAgIGxvY2F0aW9ucz0iJGV0Y2RpciIvbG9jYXRpb25zCgogICBpZiBbIC1lICRs b2NhdGlvbnMgXTsgdGhlbgogICAgICBsb2NhbCBiaW5kaXI9YGdyZXAgIl5hbnN3ZXIgQklORElS ICIgJGxvY2F0aW9ucyB8IHRhaWwgLW4gMSB8IHNlZCAncyxhbnN3ZXIgQklORElSICwsZydgCiAg ICAgIGxvY2FsIGluc3RhbGxlcj0iJGJpbmRpciIvdm13YXJlLXVuaW5zdGFsbCRzdWZmaXgucGwK CiAgICAgIGlmIFsgLWUgIiRpbnN0YWxsZXIiIF07IHRoZW4KICAgICAgICAgZWNobyAiVW5pbnN0 YWxsaW5nIGxlZ2FjeSBpbnN0YWxsYXRpb24uLi4iCiAgICAgICAgICIkaW5zdGFsbGVyIiAtZAog ICAgICBlbHNlCQkJIyBObyB1bmluc3RhbGxlciBwcmVzZW50LCBnZXQgcmlkIG9mIGxvY2F0aW9u cyBkYi4KICAgICAgICAgcm0gLWYgJGxvY2F0aW9ucwogICAgICBmaQogICBmaQp9CgpyZW1vdmVf cnBtKCkgewogICBsb2NhbCBwa2c9IiQxIgogICBzaGlmdAoKICAgIyBJZiBub3JtYWwgdW5pbnN0 YWxsYXRpb24gZmFpbHMsIHdlIHdhbnQgdG8gZm9yY2UgaXQgb3V0LiAgVGhpcwogICAjIGlzIGxp a2VseSBiZWNhdXNlIHRoZSBwcmV1biBzY3JpcHQgZmFpbGVkLiAgdHJ5IGFnYWluIHdpdGgKICAg IyAtLW5vc2NyaXB0cwogICBpZiAhIHJwbSAtZSAkcGtnOyB0aGVuCiAgICAgIGVjaG8gIlVuaW5z dGFsbGF0aW9uIG9mICRwa2cgZmFpbGVkLiAgRm9yY2luZyB1bmluc3RhbGxhdGlvbi4iCiAgICAg IHJwbSAtZSAkcGtnIC0tbm9zY3JpcHRzCiAgIGZpCn0KCiMgVW5pbnN0YWxscyBsZWdhY3kgUGxh eWVyL1dvcmtzdGF0aW9uLgojCiMgQXJndW1lbnRzOgojICAgIE5vbmUKIwojIFJldHVybnM6CiMg ICAgMCBvbiBzdWNjZXNzLgp1bmluc3RhbGxfbGVnYWN5KCkgewogICBsb2NhbCBldGNkaXI9IiQx IgogICBzaGlmdAoKICAgbG9jYWwgaG9zdGVkPWBlY2hvICIkUFJPRFVDVF9OQU1FIiB8IGdyZXAg Ilwodm13YXJlLXdvcmtzdGF0aW9uXHx2bXdhcmUtcGxheWVyXHx2bXdhcmUtc2VydmVyXHx2bXdh cmUtdml4XCkiYAoKICAgaWYgWyAtbiAiJGhvc3RlZCIgXTsgdGhlbiAjIENoZWNrIHRvIHNlZSBp ZiBycG0gaXMgaW5zdGFsbGVkCiAgICAgIGZvciBwa2cgaW4gVk13YXJlV29ya3N0YXRpb24gVk13 YXJlUGxheWVyOyBkbwogICAgICAgICBpZiBycG0gLXEgJHBrZyA+IC9kZXYvbnVsbCAyPiYxOyB0 aGVuCiAgICAgICAgICAgIHJlbW92ZV9ycG0gJHBrZwogICAgICAgICBmaQogICAgICBkb25lCiAg ICAgICMgTm93IGhhbmRsZSB0aGUgc2VydmVyIGNhc2UuICBUaGUgaW5zdGFsbGVyIGlzIG5vcm1h bGx5IHJlcGxhY2luZwogICAgICAjIFBsYXllciBhbmQvb3IgV29ya3N0YXRpb24sIHNvIHRoZXJl IGlzIG5vIG5lZWQgdG8gZXhwbGljaXRseSBsZXQKICAgICAgIyB0aGUgdXNlciBrbm93IHRoYXQg d2UncmUgcmVwbGFjaW5nIHRoZW0uICBTaWxlbnRseSByZXBsYWNpbmcKICAgICAgIyBzZXJ2ZXIg b24gdGhlIG90aGVyIGhhbmQgaXMgbm90IGEgZ29vZCBpZGVhLgogICAgICBpZiBycG0gLXEgVk13 YXJlLXNlcnZlciA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgICAgIGVjaG8gIlZNd2FyZSBT ZXJ2ZXIgbXVzdCBiZSByZW1vdmVkIGJlZm9yZSBpbnN0YWxsYXRpb24gY2FuIGNvbnRpbnVlLiIK ICAgICAgICAgZWNobyAiSXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHVuaW5zdGFsbGVkIGJ5IHRo aXMgaW5zdGFsbGVyLiAgUHJlc3MiCiAgICAgICAgIGVjaG8gImN0cmwtQyBub3cgaWYgeW91IGRv IG5vdCB3aXNoIHRvIGNvbnRpbnVlIG9yIGlmIHlvdSBoYXZlIHJ1bm5pbmciCiAgICAgICAgIGVj aG8gInZpcnR1YWwgbWFjaGluZXMgdGhhdCBtdXN0IGJlIGNsb3NlZC4iCiAgICAgICAgIGVjaG8g IiIKICAgICAgICAgZWNobyAiT3RoZXJ3aXNlIHByZXNzIDxlbnRlcj4gdG8gY29udGludWUgYW5k IGF1dG9tYXRpY2FsbHkgdW5pbnN0YWxsIFZNd2FyZSBTZXJ2ZXIuIgogICAgICAgICByZWFkIC1l IE5PVkFSCiAgICAgICAgIHJwbSAtZSAtLW5vc2NyaXB0cyBWTXdhcmUtc2VydmVyCiAgICAgIGZp CiAgIGZpCgogICB1bmluc3RhbGxfdGFyICIkZXRjZGlyIiAiIgoKICAgIyBjb25maWcgd2FzIGEg bWVzcyB1bmRlciB0aGUgdGFyL3JwbS4gIEl0IGFsd2F5cyBnb3QgcmVuYW1lZCBhbmQKICAgIyBj cmF6eSB0aGluZ3MuICBDbGVhbiB0aGVtIHVwLgogICBybSAtZiAiJGV0Y2RpciIvY29uZmlnLlsw LTldKgoKICAgIyBOZXR3b3JraW5nIGlzIHNvbWV0aW1lcyBzdGlsbCBydW5uaW5nIGFmdGVyIHN0 b3BwaW5nIHNlcnZpY2VzIHNvCiAgICMgZm9yY2VhYmx5IGtpbGwgaXQuICBJZiBpdCdzIHN0aWxs IHJ1bm5pbmcgdGhlbiB2bW5ldCBjYW4ndCBiZQogICAjIHJlbW92ZWQgYW5kIG5ldHdvcmsgc2V0 dGluZ3MgYXJlbid0IG1pZ3JhdGVkIHByb3Blcmx5IGVpdGhlci4KICAga2lsbGFsbCAtLXdhaXQg LTkgdm1uZXQtbmV0aWZ1cCB2bW5ldC1kaGNwZCB2bW5ldC1uYXRkIHZtbmV0LWJyaWRnZSBcCiAg ICAgICAgICAgICAgICAgICAgIHZtbmV0LWRldGVjdCB2bW5ldC1zbmlmZmVyIDI+IC9kZXYvbnVs bCB8fCB0cnVlCiAgIC9zYmluL3JtbW9kIHZtbmV0IDI+IC9kZXYvbnVsbCB8fCB0cnVlCgogICBy ZXR1cm4gMAp9CgoKIyBVbmluc3RhbGxzIGJ1bmRsZSBycG0gZm9yIFBsYXllci9Xb3Jrc3RhdGlv bi4KIwojIEFyZ3VtZW50czoKIyAgICBOb25lCiMKIyBSZXR1cm5zOgojICAgIE5vbmUuCnVuaW5z dGFsbF9ycG0oKSB7CiAgIGxvY2FsIGhvc3RlZD1gZWNobyAiJFBST0RVQ1RfTkFNRSIgfCBncmVw ICJcKHZtd2FyZS13b3Jrc3RhdGlvblx8dm13YXJlLXBsYXllclx8dm13YXJlLXNlcnZlclx8dm13 YXJlLXZpeFwpImAKCiAgIGlmIFsgLW4gIiRob3N0ZWQiIF07IHRoZW4gIyBDaGVjayB0byBzZWUg aWYgcnBtIGlzIGluc3RhbGxlZAogICAgICBmb3IgcGtnIGluIFZNd2FyZS1Xb3Jrc3RhdGlvbiBW TXdhcmUtUGxheWVyOyBkbwogICAgICAgICBpZiBycG0gLXEgJHBrZyA+IC9kZXYvbnVsbCAyPiYx OyB0aGVuCiAgICAgICAgICAgIHJlbW92ZV9ycG0gJHBrZwogICAgICAgICBmaQogICAgICBkb25l CiAgIGZpCn0KCgojIE1pZ3JhdGVzIG5ldHdvcmtpbmcgc2V0dGluZ3MgZm9yIFBsYXllci9Xb3Jr c3RhdGlvbi4KIyBJZiBjYWxsZWQgb24gYW4gSXJvbiBpbnN0YWxsIG9mIFdvcmtzdGF0aW9uLCBp dCB3aWxsCiMgZG8gbm90aGluZy4gIFRoZSBsb2NhdGlvbnMgYW5kIG5ldHdvcmtpbmcgZmlsZXMg d2VyZQojIGxvY2F0ZWQgYnkgZGVmYXVsdCBpbiAvZXRjL3Ztd2FyZSwgaGVuY2UgT0xERVRDRElS LgojIElmIHRoZXkgd2VyZSBpbnN0YWxsZWQgZWxzZXdoZXJlLCB3ZSBoYXZlIG5vIHdheSB0bwoj IGZpbmQgdGhlbS4KIwojIFRoaXMgb25seSB3b3JrcyBmb3IgcHJlLUlyb24uICBJcm9uIG5ldHdv cmsgc2V0dGluZ3MKIyBhcmUgc3RvcmVkIGluIGEgZGlmZmVyZW50IGRpcmVjdG9yeSBhbmQgdXBn cmFkZXMgaGFuZGxlZAojIGJ5IFZNSVMuCiMKIyBBcmd1bWVudHM6CiMgICAgTm9uZQojCiMgUmV0 dXJuczoKIyAgICBOb25lLgptaWdyYXRlX25ldHdvcmtzKCkgewogICBsb2NhbCBsb2NhdGlvbnM9 IiRPTERFVENESVIiL2xvY2F0aW9ucwogICBsb2NhbCBuZXR3b3JraW5nPSIkT0xERVRDRElSIi9u ZXR3b3JraW5nCgogICBpZiBbIC1lICIkbmV0d29ya2luZyIgXTsgdGhlbgogICAgICBsb2NhbCB0 ZW1wTmV0d29ya2luZz1gbWt0ZW1wIC90bXAvdm13YXJlTmV0d29ya2luZy5YWFhYWFhgCiAgICAg IGNwIC1mICIkbmV0d29ya2luZyIgJHRlbXBOZXR3b3JraW5nCiAgICAgIGV4cG9ydCBWTVdBUkVf UkVTVE9SRV9ORVRXT1JLSU5HPSR0ZW1wTmV0d29ya2luZwogICBlbGlmIFsgLWUgIiRsb2NhdGlv bnMiIF07IHRoZW4KICAgICAgbG9jYWwgdGVtcExvY2F0aW9ucz1gbWt0ZW1wIC90bXAvdm13YXJl TG9jYXRpb25zLlhYWFhYWGAKICAgICAgY3AgLWYgIiRsb2NhdGlvbnMiICR0ZW1wTG9jYXRpb25z CiAgICAgIGV4cG9ydCBWTVdBUkVfTUlHUkFURV9ORVRXT1JLSU5HPSR0ZW1wTG9jYXRpb25zCiAg IGZpCgogICByZXR1cm4gMAp9Cgp1bmluc3RhbGxfb2xkX3ZpeCgpIHsKICAgIyBWSVggdXNlZCB0 byBsaXZlIHVuZGVyIHZtd2FyZS12aXgsIHNvIHdlIG5lZWQgdG8KICAgIyBjaGVjayBmb3IgYW4g b2xkZXIgVklYIHRoZXJlLgogICB1bmluc3RhbGxfYnVuZGxlIC9ldGMvdm13YXJlLXZpeCAiLXZp eCIgIiRAIgoKICAgIyBVbmluc3RhbGwgb2xkIFZJWCB2ZXJzaW9ucyBpZiBuZWNlc3NhcnkuCiAg IHVuaW5zdGFsbF90YXIgL2V0Yy92bXdhcmUtdml4ICItdml4Igp9Cgp1bmluc3RhbGxfb2xkKCkg ewogICAjIFVuaW5zdGFsbCB0aGUgb2xkZXIgLmJ1bmRsZXMKICAgdW5pbnN0YWxsX2J1bmRsZSAi JE9MREVUQ0RJUiIgIiIgIiRAIgoKICAgIyBWTVdBUkVfU0tJUF9SUE1fVU5JTlNUQUxMIHdpbGwg YmUgc2V0IGlmIHdlJ3JlIGluc3RhbGxpbmcKICAgIyBpbiBhbiBycG0gY29udGV4dC4gSW4gdGhh dCBjYXNlLCB3ZSBkb24ndCB3YW50IHRvIHJ1biBhbnkKICAgIyBycG0gY29tbWFuZHMgdG8gcHJl dmVudCBycG0gZGVhZGxvY2suCiAgIGlmIFsgLXogIiRWTVdBUkVfU0tJUF9SUE1fVU5JTlNUQUxM IiBdOyB0aGVuCiAgICAgIHVuaW5zdGFsbF9ycG0KICAgZmkKCiAgICMgQ2hlY2sgaWYgd2UgbmVl ZCB0byBydW4gdGhlIHVuaW5zdGFsbCBwb3J0aW9ucyBvZiB0aGlzIHNjcmlwdCBmb3IgZWFybGll cgogICAjIGluc3RhbGxlcnMuICBMb29rIGZvciB0aGUgbG9jYXRpb25zIGRhdGFiYXNlIGluIC9l dGMvdm13YXJlLiAgVGhpcyBmaWxlCiAgICMgd2lsbCBvbmx5IGV4aXN0IGZvciBwcmUtSXJvbiBp bnN0YWxscy4KICAgaWYgWyAtZSAiJE9MREVUQ0RJUiIvbG9jYXRpb25zIF07IHRoZW4KICAgICAg IyBUaGlzIHdpbGwgdW5pbnN0YWxsIGxlZ2FjeSB0YXIvcnBtIGluc3RhbGxhdGlvbnMuIE5vdGUg dGhhdAogICAgICAjIHdlIGRvIG5vdCBuZWVkIHRvIGJlIGNvbmNlcm5lZCBhYm91dCBjaGVja2lu ZyBmb3IKICAgICAgIyBWTVdBUkVfU0tJUF9SUE1fVU5JTlNUQUxMIHNpbmNlIHRoZSBidW5kbGUg cnBtcyBhcmUgbWFya2VkCiAgICAgICMgdG8gY29uZmxpY3Qgd2l0aCBsZWdhY3kgcnBtcy4KICAg ICAgdW5pbnN0YWxsX2xlZ2FjeSAkT0xERVRDRElSCgogICAgICAjIENoZWNrIGlmIHdlIG5lZWQg dG8gdW5pbnN0YWxsIGNvbXBvbmVudHMKICAgICAgdW5pbnN0YWxsX3RhciAkT0xERVRDRElSICIi CgogICAgICB1bmluc3RhbGxfb2xkX3ZpeCAiJEAiCiAgIGZpCn0KCgojIE1haW4gZW50cnkgcG9p bnQuICBDaGVja3Mgd2hldGhlciB0aGUgVk1JUyBpcyBpbnN0YWxsZWQgYW5kIGlmIHNvIGxhdW5j aGVzIGl0LgojIE90aGVyd2lzZSBleHRyYWN0cyBpdHNlbGYgdGhlbiBpbnN0YWxscyB0aGUgVk1J Uy4KbWFpbigpIHsKICAgbG9jYWwgZnVsbHBhdGg9IiQwIgogICBsb2NhbCBoZWxwCiAgIGxvY2Fs IGV4dHJhY3QKCiAgIGlmIFsgImBnZXRfYXJjaGAiICE9ICIkQVJDSCIgXTsgdGhlbgogICAgICBl Y2hvICJUaGlzIGlzIGEgJEFSQ0ggYnVuZGxlIGFuZCBkb2VzIG5vdCBtYXRjaCB0aGF0IG9mIHRo ZSBjdXJyZW50ICIKICAgICAgZWNobyAiYXJjaGl0ZWN0dXJlLiAgUGxlYXNlIGRvd25sb2FkIHRo ZSBgZ2V0X2FyY2hgIGJ1bmRsZS4iCiAgICAgIGV4aXQgMQogICBmaQoKICAgaWYgWyAiJDEiID0g Ii1oIiAtbyAiJDEiID0gIi0taGVscCIgXTsgdGhlbgogICAgICBoZWxwPSQxCiAgICAgIHNoaWZ0 CiAgIGZpCgogICBpZiBbICIkMSIgPSAiLXgiIC1vICIkMSIgPSAiLS1leHRyYWN0IiBdOyB0aGVu CiAgICAgIGV4dHJhY3Q9JDEKICAgICAgc2hpZnQKICAgZmkKCiAgIGlmIGlzX3JlbGF0aXZlICIk ZnVsbHBhdGgiOyB0aGVuCiAgICAgIGZ1bGxwYXRoPSIkUFdELyRmdWxscGF0aCIKICAgZmkKCiAg IGlmIFsgJFVJRCAtZXEgMCBdICYmIFsgLXogIiRoZWxwIiBdICYmIFsgLXogIiRleHRyYWN0IiBd OyB0aGVuCiAgICAgIGNhc2UgIiRQUk9EVUNUX05BTUUiIGluCiAgICAgICAgICB2bXdhcmUtd29y a3N0YXRpb24pCiAgICAgICAgICAgICAgbWlncmF0ZV9uZXR3b3JrcwogICAgICAgICAgICAgIHVu aW5zdGFsbF9vbGRfdml4ICIkQCIKICAgICAgICAgICAgICB1bmluc3RhbGxfb2xkICIkQCIKICAg ICAgICAgICAgICA7OwogICAgICAgICAgdm13YXJlLXBsYXllcikKICAgICAgICAgICAgICBtaWdy YXRlX25ldHdvcmtzCiAgICAgICAgICAgICAgdW5pbnN0YWxsX29sZCAiJEAiCiAgICAgICAgICAg ICAgOzsKICAgICAgICAgIHZtd2FyZS1zZXJ2ZXIpCiAgICAgICAgICAgICAgbWlncmF0ZV9uZXR3 b3JrcwogICAgICAgICAgICAgIHVuaW5zdGFsbF9vbGQgIiRAIgogICAgICAgICAgICAgIDs7CiAg ICAgICAgICB2bXdhcmUtdml4KQogICAgICAgICAgICAgIHVuaW5zdGFsbF9vbGRfdml4ICIkQCIK ICAgICAgICAgICAgICA7OwogICAgICAgICAgdGVzdC1jb21wb25lbnQpCiAgICAgICAgICAgICAg dW5pbnN0YWxsX2J1bmRsZSAvZXRjL3Ztd2FyZS10ZXN0IC10ZXN0ICIkQCIKICAgICAgZXNhYwog ICBmaQoKICAgaWYgISBzZXRfbGVuZ3RocyAiJDAiOyB0aGVuCiAgICAgIGVjaG8gIlVuYWJsZSB0 byBleHRyYWN0IGxlbmd0aHMgZnJvbSBidW5kbGUuIgogICAgICBleGl0IDEKICAgZmkKCiAgIGV4 dHJhY3RfcHJlcGF5bG9hZAogICBleHRyYWN0X3NlbGYKCiAgIGluc3RhbGwgIiRWTUlTX1RFTVAi ICIkaGVscCIgIiRmdWxscGF0aCIgIiRleHRyYWN0IiAiJEAiCn0KCm1haW4gIiRAIgorIG1haW4K KyBsb2NhbCBmdWxscGF0aD1WTXdhcmUtUGxheWVyLTMuMS4wLTI2MTAyNC5pMzg2LmJ1bmRsZQor IGxvY2FsIGhlbHAKKyBsb2NhbCBleHRyYWN0CmdldF9hcmNoCisrIGdldF9hcmNoCisrIGxvY2Fs IEVMRl9NQUdJQz03ZgpvZCAtTjEgLUFuIC10IHgxIDwgL2Jpbi9zaCB8IHRyIC1kICcgJworKysg b2QgLU4xIC1BbiAtdCB4MQorKysgdHIgLWQgJyAnCisrICdbJyA3ZiAnIT0nIDdmICddJwpvZCAt ajQgLU4xIC1BbiAtdCB1MSA8IC9iaW4vc2ggfCB0ciAtZCAnICcKKysrIG9kIC1qNCAtTjEgLUFu IC10IHUxCisrKyB0ciAtZCAnICcKKysgbG9jYWwgYXJjaD0xCisrIGNhc2UgJGFyY2ggaW4KKysg ZWNobyB4ODYKKysgZXhpdCAwCisgJ1snIHg4NiAnIT0nIHg4NiAnXScKKyAnWycgJycgPSAtaCAt byAnJyA9IC0taGVscCAnXScKKyAnWycgJycgPSAteCAtbyAnJyA9IC0tZXh0cmFjdCAnXScKKyBp c19yZWxhdGl2ZSBWTXdhcmUtUGxheWVyLTMuMS4wLTI2MTAyNC5pMzg2LmJ1bmRsZQorIGxvY2Fs IHBhdGg9Vk13YXJlLVBsYXllci0zLjEuMC0yNjEwMjQuaTM4Ni5idW5kbGUKKyBzaGlmdAorICdb JyBWICchPScgLyAnXScKKyByZXR1cm4KKyBmdWxscGF0aD0vaG9tZS9WaXJ0dWFsTWFjaGluZXMv Vk13YXJlLVBsYXllci0zLjEuMC0yNjEwMjQuaTM4Ni5idW5kbGUKKyAnWycgMCAtZXEgMCAnXScK KyAnWycgLXogJycgJ10nCisgJ1snIC16ICcnICddJworIGNhc2UgIiRQUk9EVUNUX05BTUUiIGlu CisgbWlncmF0ZV9uZXR3b3JrcworIGxvY2FsIGxvY2F0aW9ucz0vZXRjL3Ztd2FyZS9sb2NhdGlv bnMKKyBsb2NhbCBuZXR3b3JraW5nPS9ldGMvdm13YXJlL25ldHdvcmtpbmcKKyAnWycgLWUgL2V0 Yy92bXdhcmUvbmV0d29ya2luZyAnXScKKyAnWycgLWUgL2V0Yy92bXdhcmUvbG9jYXRpb25zICdd JworIHJldHVybiAwCisgdW5pbnN0YWxsX29sZAorIHVuaW5zdGFsbF9idW5kbGUgL2V0Yy92bXdh cmUgJycKKyBldGNkaXI9L2V0Yy92bXdhcmUKKyBzaGlmdAorIHN1ZmZpeD0KKyBzaGlmdAorIGxv Y2FsIGJvb3RzdHJhcD0vZXRjL3Ztd2FyZS9ib290c3RyYXAKKyAnWycgLWUgL2V0Yy92bXdhcmUv Ym9vdHN0cmFwICddJworIHJldHVybiAwCisgJ1snIC16ICcnICddJworIHVuaW5zdGFsbF9ycG0K ZWNobyAiJFBST0RVQ1RfTkFNRSIgfCBncmVwICJcKHZtd2FyZS13b3Jrc3RhdGlvblx8dm13YXJl LXBsYXllclx8dm13YXJlLXNlcnZlclx8dm13YXJlLXZpeFwpIgorKyBlY2hvIHZtd2FyZS1wbGF5 ZXIKKysgZ3JlcCAnXCh2bXdhcmUtd29ya3N0YXRpb25cfHZtd2FyZS1wbGF5ZXJcfHZtd2FyZS1z ZXJ2ZXJcfHZtd2FyZS12aXhcKScKKyBsb2NhbCBob3N0ZWQ9dm13YXJlLXBsYXllcgorICdbJyAt biB2bXdhcmUtcGxheWVyICddJworIGZvciBwa2cgaW4gVk13YXJlLVdvcmtzdGF0aW9uIFZNd2Fy ZS1QbGF5ZXIKKyBycG0gLXEgVk13YXJlLVdvcmtzdGF0aW9uCisgZm9yIHBrZyBpbiBWTXdhcmUt V29ya3N0YXRpb24gVk13YXJlLVBsYXllcgorIHJwbSAtcSBWTXdhcmUtUGxheWVyCisgJ1snIC1l IC9ldGMvdm13YXJlL2xvY2F0aW9ucyAnXScKKyBzZXRfbGVuZ3RocyBWTXdhcmUtUGxheWVyLTMu MS4wLTI2MTAyNC5pMzg2LmJ1bmRsZQorIGxvY2FsIGZpbGU9Vk13YXJlLVBsYXllci0zLjEuMC0y NjEwMjQuaTM4Ni5idW5kbGUKKyAnWycgJyEnIC1zIFZNd2FyZS1QbGF5ZXItMy4xLjAtMjYxMDI0 LmkzODYuYnVuZGxlICddJwpvZCAtQW4gLXQgdTQgLU4gNCAtaiAkTUFHSUNfT0ZGU0VUICIkZmls ZSIgfCB0ciAtZCAnICcKKysgb2QgLUFuIC10IHU0IC1OIDQgLWogMTA2NTE5ODYxIFZNd2FyZS1Q bGF5ZXItMy4xLjAtMjYxMDI0LmkzODYuYnVuZGxlCisrIHRyIC1kICcgJworIE1BR0lDX05VTUJF Uj05MDczODAyNDEKKyAnWycgOTA3MzgwMjQxICchPScgOTA3MzgwMjQxICddJwpvZCAtQW4gLXQg dTQgLU4gNCAtaiAkTEFVTkNIRVJfU0laRV9PRkZTRVQgIiRmaWxlIiB8IHRyIC1kICcgJworKyBv ZCAtQW4gLXQgdTQgLU4gNCAtaiAxMDY1MTk4NDEgVk13YXJlLVBsYXllci0zLjEuMC0yNjEwMjQu aTM4Ni5idW5kbGUKKysgdHIgLWQgJyAnCisgTEFVTkNIRVJfU0laRT0xNTEwNQpvZCAtQW4gLXQg dTQgLU4gNCAtaiAkUEFZTE9BRF9TSVpFX09GRlNFVCAiJGZpbGUiIHwgdHIgLWQgJyAnCisrIG9k IC1BbiAtdCB1NCAtTiA0IC1qIDEwNjUxOTgzMyBWTXdhcmUtUGxheWVyLTMuMS4wLTI2MTAyNC5p Mzg2LmJ1bmRsZQorKyB0ciAtZCAnICcKKyBQQVlMT0FEX1NJWkU9MTI1MDgxNTQKb2QgLUFuIC10 IHU0IC1OIDQgLWogJFBSRVBBWUxPQURfU0laRV9PRkZTRVQgIiRmaWxlIiB8IHRyIC1kICcgJwor KyBvZCAtQW4gLXQgdTQgLU4gNCAtaiAxMDY1MTk4NDUgVk13YXJlLVBsYXllci0zLjEuMC0yNjEw MjQuaTM4Ni5idW5kbGUKKysgdHIgLWQgJyAnCisgUFJFUEFZTE9BRF9TSVpFPTEwNgorIFNLSVBf QllURVM9MTUyMTEKKyByZXR1cm4gMAorIGV4dHJhY3RfcHJlcGF5bG9hZApta3RlbXAgLWQgL3Rt cC92bWlzLlhYWFhYWAorKyBta3RlbXAgLWQgL3RtcC92bWlzLlhYWFhYWAorIFBSRVBBWUxPQUQ9 L3RtcC92bWlzLmlXSWdPTAorIGxvY2FsIGZpbGU9Vk13YXJlLVBsYXllci0zLjEuMC0yNjEwMjQu aTM4Ni5idW5kbGUKKyAnWycgJyEnIC1kIC90bXAvdm1pcy5pV0lnT0wgJ10nCisgaXNfcmVsYXRp dmUgVk13YXJlLVBsYXllci0zLjEuMC0yNjEwMjQuaTM4Ni5idW5kbGUKKyBsb2NhbCBwYXRoPVZN d2FyZS1QbGF5ZXItMy4xLjAtMjYxMDI0LmkzODYuYnVuZGxlCisgc2hpZnQKKyAnWycgViAnIT0n IC8gJ10nCisgcmV0dXJuCisgZmlsZT0vaG9tZS9WaXJ0dWFsTWFjaGluZXMvVk13YXJlLVBsYXll ci0zLjEuMC0yNjEwMjQuaTM4Ni5idW5kbGUKKyBjZCAvdG1wL3ZtaXMuaVdJZ09MCisgZ3Vuemlw IC1jCisgZGQgaWY9L2hvbWUvVmlydHVhbE1hY2hpbmVzL1ZNd2FyZS1QbGF5ZXItMy4xLjAtMjYx MDI0LmkzODYuYnVuZGxlIGlicz0xNTEwNSBvYnM9MTAyNCBza2lwPTEKKyB0YXIgLXhmIC0KKyBl eHRyYWN0X3NlbGYKbWt0ZW1wIC1kIC90bXAvdm1pcy5YWFhYWFgKKysgbWt0ZW1wIC1kIC90bXAv dm1pcy5YWFhYWFgKKyBWTUlTX1RFTVA9L3RtcC92bWlzLm44dGJhSgorIGxvY2FsIGZpbGU9Vk13 YXJlLVBsYXllci0zLjEuMC0yNjEwMjQuaTM4Ni5idW5kbGUKKyBsb2NhbCBmaWx0ZXI9CisgbG9j YWwgYm9vdHN0cmFwcGVyPS90bXAvdm1pcy5pV0lnT0wvYm9vdHN0cmFwcGVyLWd0aworICdbJyAn IScgLWQgL3RtcC92bWlzLm44dGJhSiAnXScKKyBpc19yZWxhdGl2ZSBWTXdhcmUtUGxheWVyLTMu MS4wLTI2MTAyNC5pMzg2LmJ1bmRsZQorIGxvY2FsIHBhdGg9Vk13YXJlLVBsYXllci0zLjEuMC0y NjEwMjQuaTM4Ni5idW5kbGUKKyBzaGlmdAorICdbJyBWICchPScgLyAnXScKKyByZXR1cm4KKyBm aWxlPS9ob21lL1ZpcnR1YWxNYWNoaW5lcy9WTXdhcmUtUGxheWVyLTMuMS4wLTI2MTAyNC5pMzg2 LmJ1bmRsZQorICdbJyAtZSAvdG1wL3ZtaXMuaVdJZ09ML2Jvb3RzdHJhcHBlci1ndGsgJ10nCisg ZWNobyAtbiAnRXh0cmFjdGluZyBWTXdhcmUgSW5zdGFsbGVyLi4uJwpFeHRyYWN0aW5nIFZNd2Fy ZSBJbnN0YWxsZXIuLi4rIGNkIC90bXAvdm1pcy5uOHRiYUoKKyBkZCBpZj0vaG9tZS9WaXJ0dWFs TWFjaGluZXMvVk13YXJlLVBsYXllci0zLjEuMC0yNjEwMjQuaTM4Ni5idW5kbGUgaWJzPTE1MjEx IG9icz0xMDI0IHNraXA9MQorIHRhciAteGYgLQorIGd1bnppcCAtYworICdbJyAnIScgLWUgL3Rt cC92bWlzLmlXSWdPTC9ib290c3RyYXBwZXItZ3RrICddJworIGVjaG8gZG9uZS4KZG9uZS4KKyBp bnN0YWxsIC90bXAvdm1pcy5uOHRiYUogJycgL2hvbWUvVmlydHVhbE1hY2hpbmVzL1ZNd2FyZS1Q bGF5ZXItMy4xLjAtMjYxMDI0LmkzODYuYnVuZGxlICcnCisgbG9jYWwgc291cmNlPS90bXAvdm1p cy5uOHRiYUovaW5zdGFsbAorIHNoaWZ0CisgbG9jYWwgaGVscD0KKyBzaGlmdAorIGxvY2FsIGJ1 bmRsZT0vaG9tZS9WaXJ0dWFsTWFjaGluZXMvVk13YXJlLVBsYXllci0zLjEuMC0yNjEwMjQuaTM4 Ni5idW5kbGUKKyBzaGlmdAorICdbJyAnIScgLWQgL3RtcC92bWlzLm44dGJhSi9pbnN0YWxsICdd JworIGV4cG9ydCBWTVdBUkVfQk9PVFNUUkFQPS90bXAvdm1pcy5uOHRiYUovYm9vdHN0cmFwCisg Vk1XQVJFX0JPT1RTVFJBUD0vdG1wL3ZtaXMubjh0YmFKL2Jvb3RzdHJhcAorIGNwIC1mIC90bXAv dm1pcy5uOHRiYUovaW5zdGFsbC92bXdhcmUtaW5zdGFsbGVyL2Jvb3RzdHJhcCAvdG1wL3ZtaXMu bjh0YmFKL2Jvb3RzdHJhcAorIHNlZCAtaSAtZSBzLEBATElCRElSQEAsL3RtcC92bWlzLm44dGJh Si9pbnN0YWxsLGcgL3RtcC92bWlzLm44dGJhSi9ib290c3RyYXAKKyBzZWQgLWkgLWUgcyxAQFZN V0FSRV9JTlNUQUxMRVJAQCwvdG1wL3ZtaXMubjh0YmFKL2luc3RhbGwvdm13YXJlLWluc3RhbGxl cixnIC90bXAvdm1pcy5uOHRiYUovYm9vdHN0cmFwCisgLiAvdG1wL3ZtaXMubjh0YmFKL2Jvb3Rz dHJhcApWTVdBUkVfSU5TVEFMTEVSPSIvdG1wL3ZtaXMubjh0YmFKL2luc3RhbGwvdm13YXJlLWlu c3RhbGxlciIKKysgVk1XQVJFX0lOU1RBTExFUj0vdG1wL3ZtaXMubjh0YmFKL2luc3RhbGwvdm13 YXJlLWluc3RhbGxlcgoKVkVSU0lPTj0iMS4xIgorKyBWRVJTSU9OPTEuMQpWTUlTUFlWRVJTSU9O PSIyNSIKKysgVk1JU1BZVkVSU0lPTj0yNQojIEJVSUxEX05VTUJFUiA/CisgbG9jYWwgaW5zdGFs bGVyPS90bXAvdm1pcy5uOHRiYUovaW5zdGFsbC92bXdhcmUtaW5zdGFsbGVyL3Ztd2FyZS1pbnN0 YWxsZXIKKyAnWycgLW4gJycgJ10nCisgbG9jYWwgbGliY29uZj0vdG1wL3ZtaXMubjh0YmFKL2lu c3RhbGwvdm13YXJlLWluc3RhbGxlci9saWIvbGliY29uZgorIGZvciBmaWxlIGluIGV0Yy9wYW5n by9wYW5nb3JjIGV0Yy9wYW5nby9wYW5nby5tb2R1bGVzIGV0Yy9wYW5nby9wYW5nb3guYWxpYXNl cyBldGMvZ3RrLTIuMC9nZGstcGl4YnVmLmxvYWRlcnMgZXRjL2d0ay0yLjAvZ3RrLmltbW9kdWxl cworIHNlZCAtaSAtZSBzLEBATElCQ09ORl9ESVJAQCwvdG1wL3ZtaXMubjh0YmFKL2luc3RhbGwv dm13YXJlLWluc3RhbGxlci9saWIvbGliY29uZixnIC90bXAvdm1pcy5uOHRiYUovaW5zdGFsbC92 bXdhcmUtaW5zdGFsbGVyL2xpYi9saWJjb25mL2V0Yy9wYW5nby9wYW5nb3JjCisgZm9yIGZpbGUg aW4gZXRjL3BhbmdvL3BhbmdvcmMgZXRjL3BhbmdvL3BhbmdvLm1vZHVsZXMgZXRjL3BhbmdvL3Bh bmdveC5hbGlhc2VzIGV0Yy9ndGstMi4wL2dkay1waXhidWYubG9hZGVycyBldGMvZ3RrLTIuMC9n dGsuaW1tb2R1bGVzCisgc2VkIC1pIC1lIHMsQEBMSUJDT05GX0RJUkBALC90bXAvdm1pcy5uOHRi YUovaW5zdGFsbC92bXdhcmUtaW5zdGFsbGVyL2xpYi9saWJjb25mLGcgL3RtcC92bWlzLm44dGJh Si9pbnN0YWxsL3Ztd2FyZS1pbnN0YWxsZXIvbGliL2xpYmNvbmYvZXRjL3BhbmdvL3BhbmdvLm1v ZHVsZXMKKyBmb3IgZmlsZSBpbiBldGMvcGFuZ28vcGFuZ29yYyBldGMvcGFuZ28vcGFuZ28ubW9k dWxlcyBldGMvcGFuZ28vcGFuZ294LmFsaWFzZXMgZXRjL2d0ay0yLjAvZ2RrLXBpeGJ1Zi5sb2Fk ZXJzIGV0Yy9ndGstMi4wL2d0ay5pbW1vZHVsZXMKKyBzZWQgLWkgLWUgcyxAQExJQkNPTkZfRElS QEAsL3RtcC92bWlzLm44dGJhSi9pbnN0YWxsL3Ztd2FyZS1pbnN0YWxsZXIvbGliL2xpYmNvbmYs ZyAvdG1wL3ZtaXMubjh0YmFKL2luc3RhbGwvdm13YXJlLWluc3RhbGxlci9saWIvbGliY29uZi9l dGMvcGFuZ28vcGFuZ294LmFsaWFzZXMKKyBmb3IgZmlsZSBpbiBldGMvcGFuZ28vcGFuZ29yYyBl dGMvcGFuZ28vcGFuZ28ubW9kdWxlcyBldGMvcGFuZ28vcGFuZ294LmFsaWFzZXMgZXRjL2d0ay0y LjAvZ2RrLXBpeGJ1Zi5sb2FkZXJzIGV0Yy9ndGstMi4wL2d0ay5pbW1vZHVsZXMKKyBzZWQgLWkg LWUgcyxAQExJQkNPTkZfRElSQEAsL3RtcC92bWlzLm44dGJhSi9pbnN0YWxsL3Ztd2FyZS1pbnN0 YWxsZXIvbGliL2xpYmNvbmYsZyAvdG1wL3ZtaXMubjh0YmFKL2luc3RhbGwvdm13YXJlLWluc3Rh bGxlci9saWIvbGliY29uZi9ldGMvZ3RrLTIuMC9nZGstcGl4YnVmLmxvYWRlcnMKKyBmb3IgZmls ZSBpbiBldGMvcGFuZ28vcGFuZ29yYyBldGMvcGFuZ28vcGFuZ28ubW9kdWxlcyBldGMvcGFuZ28v cGFuZ294LmFsaWFzZXMgZXRjL2d0ay0yLjAvZ2RrLXBpeGJ1Zi5sb2FkZXJzIGV0Yy9ndGstMi4w L2d0ay5pbW1vZHVsZXMKKyBzZWQgLWkgLWUgcyxAQExJQkNPTkZfRElSQEAsL3RtcC92bWlzLm44 dGJhSi9pbnN0YWxsL3Ztd2FyZS1pbnN0YWxsZXIvbGliL2xpYmNvbmYsZyAvdG1wL3ZtaXMubjh0 YmFKL2luc3RhbGwvdm13YXJlLWluc3RhbGxlci9saWIvbGliY29uZi9ldGMvZ3RrLTIuMC9ndGsu aW1tb2R1bGVzCisgL3RtcC92bWlzLm44dGJhSi9pbnN0YWxsL3Ztd2FyZS1pbnN0YWxsZXIvdm13 YXJlLWluc3RhbGxlciAtLXNldC1zZXR0aW5nIHZtd2FyZS1pbnN0YWxsZXIgbGliY29uZiAvdG1w L3ZtaXMubjh0YmFKL2luc3RhbGwvdm13YXJlLWluc3RhbGxlci9saWIvbGliY29uZiAtLWluc3Rh bGwtY29tcG9uZW50IC90bXAvdm1pcy5uOHRiYUovaW5zdGFsbC92bXdhcmUtaW5zdGFsbGVyIC0t aW5zdGFsbC1idW5kbGUgL2hvbWUvVmlydHVhbE1hY2hpbmVzL1ZNd2FyZS1QbGF5ZXItMy4xLjAt MjYxMDI0LmkzODYuYnVuZGxlICcnClVzZXIgaW50ZXJmYWNlIGluaXRpYWxpemF0aW9uIGZhaWxl ZC4gIEV4aXRpbmcuICBDaGVjayB0aGUgbG9nIGZvciBkZXRhaWxzLgpvbl9leGl0Cisgb25fZXhp dAorICdbJyAtZSAvdG1wL3ZtaXMubjh0YmFKIC1hIC16ICcnICddJworIHJtIC1yZiAvdG1wL3Zt aXMubjh0YmFKCisgJ1snIC1lIC90bXAvdm1pcy5pV0lnT0wgLWEgLXogJycgJ10nCisgcm0gLXJm IC90bXAvdm1pcy5pV0lnT0wKQlJTSU5DLVZNMDIjIApCUlNJTkMtVk0wMiMgL2NvbXBhdC9saW51 eC9iaW4vYmFzaCAtdnggVk13YXJlLVBsYXllci0zLjEuMC0yNjEwMjQuaTM4Ni5idW5kbGUgPj4g b3V0cHV0LnR4dAojIS91c3IvYmluL2VudiBiYXNoCiMKIyBWTXdhcmUgSW5zdGFsbGVyIExhdW5j aGVyCiMKIyBUaGlzIGlzIHRoZSBleGVjdXRhYmxlIHN0dWIgdG8gY2hlY2sgaWYgdGhlIFZNd2Fy ZSBJbnN0YWxsZXIgU2VydmljZQojIGlzIGluc3RhbGxlZCBhbmQgaWYgc28sIGxhdW5jaCBpdC4g IElmIGl0IGlzIG5vdCBpbnN0YWxsZWQsIHRoZQojIGF0dGFjaGVkIHBheWxvYWQgaXMgZXh0cmFj dGVkLCB0aGUgVk1JUyBpcyBpbnN0YWxsZWQsIGFuZCB0aGUgVk1JUwojIGlzIGxhdW5jaGVkIHRv IGluc3RhbGwgdGhlIGJ1bmRsZSBhcyBub3JtYWwuCgojIEFyY2hpdGVjdHVyZSB0aGlzIGJ1bmRs ZSB3YXMgYnVpbHQgZm9yICh4ODYgb3IgeDY0KQpBUkNIPXg4NgorIEFSQ0g9eDg2CgppZiBbIC16 ICIkQkFTSCIgXTsgdGhlbgogICAjICQtIGV4cGFuZHMgdG8gdGhlIGN1cnJlbnQgb3B0aW9ucyBz byB0aGluZ3MgbGlrZSAteCBnZXQgcGFzc2VkIHRocm91Z2gKICAgaWYgWyAhIC16ICIkLSIgXTsg dGhlbgogICAgICBvcHRzPSItJC0iCiAgIGZpCgogICAjIGRhc2ggZmxpcHMgb3V0IG9mICRvcHRz IGlzIHF1b3RlZCwgc28gZG9uJ3QuCiAgIGV4ZWMgL3Vzci9iaW4vZW52IGJhc2ggJG9wdHMgIiQw IiAiJEAiCiAgIGVjaG8gIlVuYWJsZSB0byByZXN0YXJ0IHdpdGggYmFzaCBzaGVsbCIKICAgZXhp dCAxCmZpCisgJ1snIC16IC9jb21wYXQvbGludXgvYmluL2Jhc2ggJ10nCgpzZXQgLWUKKyBzZXQg LWUKCkVUQ0RJUj0vZXRjL3Ztd2FyZS1pbnN0YWxsZXIKKyBFVENESVI9L2V0Yy92bXdhcmUtaW5z dGFsbGVyCk9MREVUQ0RJUj0iL2V0Yy92bXdhcmUiCisgT0xERVRDRElSPS9ldGMvdm13YXJlCgoj IyMgT2Zmc2V0cyAjIyMKIyBUaGVzZSBhcmUgb2Zmc2V0cyB0aGF0IGFyZSBsYXRlciB1c2VkIHJl bGF0aXZlIHRvIEVPRi4KRk9PVEVSX1NJWkU9NTIKKyBGT09URVJfU0laRT01MgoKIyBUaGlzIHdv bid0IHdvcmsgd2l0aCBub24tR05VIHN0YXQuCkZJTEVfU0laRT1gc3RhdCAtLWZvcm1hdCAiJXMi ICIkMCJgCnN0YXQgLS1mb3JtYXQgIiVzIiAiJDAiCisrIHN0YXQgLS1mb3JtYXQgJXMgVk13YXJl LVBsYXllci0zLjEuMC0yNjEwMjQuaTM4Ni5idW5kbGUKKyBGSUxFX1NJWkU9MTA2NTE5ODY1Cm9m ZnNldD0kKCgkRklMRV9TSVpFIC0gNCkpCisgb2Zmc2V0PTEwNjUxOTg2MQoKTUFHSUNfT0ZGU0VU PSRvZmZzZXQKKyBNQUdJQ19PRkZTRVQ9MTA2NTE5ODYxCm9mZnNldD0kKCgkb2Zmc2V0IC0gNCkp Cisgb2Zmc2V0PTEwNjUxOTg1NwoKQ0hFQ0tTVU1fT0ZGU0VUPSRvZmZzZXQKKyBDSEVDS1NVTV9P RkZTRVQ9MTA2NTE5ODU3Cm9mZnNldD0kKCgkb2Zmc2V0IC0gNCkpCisgb2Zmc2V0PTEwNjUxOTg1 MwoKVkVSU0lPTl9PRkZTRVQ9JG9mZnNldAorIFZFUlNJT05fT0ZGU0VUPTEwNjUxOTg1MwpvZmZz ZXQ9JCgoJG9mZnNldCAtIDQpKQorIG9mZnNldD0xMDY1MTk4NDkKClBSRVBBWUxPQURfT0ZGU0VU PSRvZmZzZXQKKyBQUkVQQVlMT0FEX09GRlNFVD0xMDY1MTk4NDkKb2Zmc2V0PSQoKCRvZmZzZXQg LSA0KSkKKyBvZmZzZXQ9MTA2NTE5ODQ1CgpQUkVQQVlMT0FEX1NJWkVfT0ZGU0VUPSRvZmZzZXQK KyBQUkVQQVlMT0FEX1NJWkVfT0ZGU0VUPTEwNjUxOTg0NQpvZmZzZXQ9JCgoJG9mZnNldCAtIDQp KQorIG9mZnNldD0xMDY1MTk4NDEKCkxBVU5DSEVSX1NJWkVfT0ZGU0VUPSRvZmZzZXQKKyBMQVVO Q0hFUl9TSVpFX09GRlNFVD0xMDY1MTk4NDEKb2Zmc2V0PSQoKCRvZmZzZXQgLSA0KSkKKyBvZmZz ZXQ9MTA2NTE5ODM3CgpQQVlMT0FEX09GRlNFVD0kb2Zmc2V0CisgUEFZTE9BRF9PRkZTRVQ9MTA2 NTE5ODM3Cm9mZnNldD0kKCgkb2Zmc2V0IC0gNCkpCisgb2Zmc2V0PTEwNjUxOTgzMwoKUEFZTE9B RF9TSVpFX09GRlNFVD0kb2Zmc2V0CisgUEFZTE9BRF9TSVpFX09GRlNFVD0xMDY1MTk4MzMKb2Zm c2V0PSQoKCRvZmZzZXQgLSA0KSkKKyBvZmZzZXQ9MTA2NTE5ODI5CgojIFJlc3Qgb2YgdGhlIG9m ZnNldHMgb21taXR0ZWQKCiMjIyBFbmQgb2Zmc2V0cyAjIyMKCiMgU2hvcnQgbmFtZSAoaWUsIHZt d2FyZS13b3Jrc3RhdGlvbikuICBUaGlzIGlzbid0IHRlY2huaWNhbGx5IGNvcnJlY3QKIyBzaW5j ZSB0aGVyZSBjb3VsZCBiZSBtdWx0aXBsZSBwcm9kdWN0IGNvbXBvbmVudHMgaW4gYSBidW5kbGUu ClBST0RVQ1RfTkFNRT12bXdhcmUtcGxheWVyCisgUFJPRFVDVF9OQU1FPXZtd2FyZS1wbGF5ZXIK CiMgQ2FsbGVkIHdoZW4gdGhlIHNjcmlwdCBleGl0cwojCiMgQXJndW1lbnRzOgojICAgIE5vbmUK IwojIFNpZGUgZWZmZWN0czoKIyAgICAtIFZNSVNfVEVNUCBhbmQgUFJFUEFZTE9BRCBpcyByZW1v dmVkIHVubGVzcyBWTUlTX0tFRVBfVEVNUCBpcyBzZXQKb25fZXhpdCgpIHsKICAgaWYgWyAtZSAi JFZNSVNfVEVNUCIgLWEgLXogIiRWTUlTX0tFRVBfVEVNUCIgXTsgdGhlbgogICAgICBybSAtcmYg IiRWTUlTX1RFTVAiCiAgIGZpCgogICBpZiBbIC1lICIkUFJFUEFZTE9BRCIgLWEgLXogIiRWTUlT X0tFRVBfVEVNUCIgXTsgdGhlbgogICAgICBybSAtcmYgIiRQUkVQQVlMT0FEIgogICBmaQp9Cgp0 cmFwIG9uX2V4aXQgRVhJVAorIHRyYXAgb25fZXhpdCBFWElUCnRyYXAgIiIgVVNSMQorIHRyYXAg JycgVVNSMQoKIyBSZXRyaXZlcyBhbmQgc2V0cyB0aGUgdmFyaW91cyBsZW5ndGhzIHRoYXQgYXJl IGV4dHJhY3RlZCBmcm9tIHRoZQojIGZvb3RlciBvZiB0aGUgZmlsZS4KIwojIEFyZ3VtZW50czoK IyAgICAkMSA9PiBidW5kbGUgdG8gZ2V0IHRoZSBsZW5ndGhzIGZyb20KIwojIFNpZGUgZWZmZWN0 czoKIyAgICAtIE1BR0lDX05VTUJFUiwgTEFVTkNIRVJfU0laRSwgYW5kIFBBWUxPQURfU0laRSBh cmUgc2V0LgojCiMgUmV0dXJuczoKIyAgICAwIGlmIHN1Y2Nlc3NmdWwsIGVsc2UgMQpzZXRfbGVu Z3RocygpIHsKICAgbG9jYWwgZmlsZT0iJDEiCiAgIGlmIFsgISAtcyAiJGZpbGUiIF07IHRoZW4K ICAgICAgZWNobyAiJGZpbGUgZG9lcyBub3QgZXhpc3QiCiAgICAgIGV4aXQgMQogICBmaQoKICAg IyBYWFg6IHB1dCBleHRyYWN0aW9uIGluIGl0cyBvd24gZnVuY3Rpb24KICAgTUFHSUNfTlVNQkVS PWBvZCAtQW4gLXQgdTQgLU4gNCAtaiAkTUFHSUNfT0ZGU0VUICIkZmlsZSIgfCB0ciAtZCAnICdg CgogICBpZiBbICIkTUFHSUNfTlVNQkVSIiAhPSAiOTA3MzgwMjQxIiBdOyB0aGVuCiAgICAgIGVj aG8gIm1hZ2ljIG51bWJlciBkb2VzIG5vdCBtYXRjaCIKICAgICAgZXhpdCAxCiAgIGZpCgogICBM QVVOQ0hFUl9TSVpFPWBvZCAtQW4gLXQgdTQgLU4gNCAtaiAkTEFVTkNIRVJfU0laRV9PRkZTRVQg IiRmaWxlIiB8IHRyIC1kICcgJ2AKICAgUEFZTE9BRF9TSVpFPWBvZCAtQW4gLXQgdTQgLU4gNCAt aiAkUEFZTE9BRF9TSVpFX09GRlNFVCAiJGZpbGUiIHwgdHIgLWQgJyAnYAogICBQUkVQQVlMT0FE X1NJWkU9YG9kIC1BbiAtdCB1NCAtTiA0IC1qICRQUkVQQVlMT0FEX1NJWkVfT0ZGU0VUICIkZmls ZSIgfCB0ciAtZCAnICdgCgogICBTS0lQX0JZVEVTPSQoKCRQUkVQQVlMT0FEX1NJWkUgKyAkTEFV TkNIRVJfU0laRSkpCgogICByZXR1cm4gMAp9CgojIERldGVybWluZXMgd2hldGhlciB0aGUgdXNl ciBsYW5kIGlzIDMyIG9yIDY0LWJpdC4KIwojIFNpZGUgZWZmZWN0czoKIyAgICBOb25lLgojCiMg UmV0dXJuczoKIyAgICAieDg2IiBvciAieDY0IiBvbiBzdWNjZXNzIHdpdGggZXJyb3IgY29kZSAw LiAgRXhpdHMgd2l0aCBub24temVybwojICAgIHN0YXR1cyBhbmQgdW5kZWZpbmVkIHRleHQgb24g ZmFpbHVyZS4KZ2V0X2FyY2goKSB7CiAgICMgRmlyc3QgYnl0ZSBpcyB0aGUgRUxGIG1hZ2ljIG51 bWJlci4gIFRoZSA1dGggYnl0ZSBpcyB3aGV0aGVyIGl0J3MKICAgIyBhIDMyIG9yIDY0LWJpdCBt YWNoaW5lICgxIG9yIDIsIHJlc3BlY3RpdmVseSkuICBTZWUgYG1hbiBlbGZgIGZvcgogICAjIGRl dGFpbHMuCiAgIGxvY2FsIEVMRl9NQUdJQz03ZgoKICAgaWYgWyAiYG9kIC1OMSAtQW4gLXQgeDEg PCAvYmluL3NoIHwgdHIgLWQgJyAnYCIgIT0gIiRFTEZfTUFHSUMiIF07IHRoZW4KICAgICAgZXhp dCAxCiAgIGZpCgogICBsb2NhbCBhcmNoPWBvZCAtajQgLU4xIC1BbiAtdCB1MSA8IC9iaW4vc2gg fCB0ciAtZCAnICdgCgogICBjYXNlICRhcmNoIGluCiAgICAgIDEpCiAgICAgICAgIGVjaG8gIng4 NiIKCSBleGl0IDAKCSA7OwogICAgICAyKQogICAgICAgICBlY2hvICJ4NjQiCiAgICAgICAgIGV4 aXQgMAoJIDs7CiAgICAgICopCiAgICAgICAgIGV4aXQgMQogICAgICAgICA7OwogICBlc2FjCn0K CiMgRGV0ZXJtaW5lcyBpZiBwYXRoIGlzIHJlbGF0aXZlLgojCiMgU2lkZSBlZmZlY3RzOgojICAg IE5vbmUuCiMKIyBSZXR1cm5zOgojICAgIDAgaWYgcmVsYXRpdmUsIG90aGVyd2lzZSAxLgppc19y ZWxhdGl2ZSgpIHsKICAgIGxvY2FsIHBhdGg9IiQxIgogICAgc2hpZnQKCiAgICBbICIke3BhdGg6 MDoxfSIgIT0gIi8iIF0KICAgIHJldHVybgp9CgojIEV4dHJhY3RzIHRoZSBwYXlsb2FkIGRhdGEg aW50byBhIHRlbXBvcmFyeSBkaXJlY3RvcnkuCiMKIyBTaWRlIGVmZmVjdHM6CiMgICAgLSB0ZW1w b3JhcnkgZGlyZWN0b3J5IGlzIGNyZWF0ZWQKIyAgICAtIFZNSVNfVEVNUCBpcyBzZXQgdG8gdGVt cG9yYXJ5IGRpcmVjdG9yeQojCiMgUmV0dXJuczoKIyAgICBOb25lCmV4dHJhY3Rfc2VsZigpIHsK ICAgVk1JU19URU1QPWBta3RlbXAgLWQgL3RtcC92bWlzLlhYWFhYWGAKICAgbG9jYWwgZmlsZT0i JDAiCiAgIGxvY2FsIGZpbHRlcj0iIgogICBsb2NhbCBib290c3RyYXBwZXI9IiRQUkVQQVlMT0FE Ii9ib290c3RyYXBwZXItZ3RrCgogICBpZiBbICEgLWQgIiRWTUlTX1RFTVAiIF07IHRoZW4KICAg ICAgZWNobyAiVW5hYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LiIKICAgICAgZXhp dCAxCiAgIGZpCgogICBpZiBpc19yZWxhdGl2ZSAiJGZpbGUiOyB0aGVuCiAgICAgIGZpbGU9IiRQ V0QvJGZpbGUiCiAgIGZpCgogICBpZiBbIC1lICIkYm9vdHN0cmFwcGVyIiBdICYmICIkYm9vdHN0 cmFwcGVyIiAtLXZhbGlkYXRlIDI+IC9kZXYvbnVsbDsgdGhlbgogICAgICBmaWx0ZXI9JyB8ICIk UFJFUEFZTE9BRCIvYm9vdHN0cmFwcGVyLWd0ayAtLXRpdGxlICJWTXdhcmUgSW5zdGFsbGVyIiBc CiAgICAgICAgICAgICAgICAtLW1lc3NhZ2UgIlBsZWFzZSB3YWl0IHdoaWxlIGV4dHJhY3Rpbmcg dGhlIFZNd2FyZSBJbnN0YWxsZXIuLi4iIFwKICAgICAgICAgICAgICAgIC0tdG90YWwgJFBBWUxP QURfU0laRSInCiAgIGVsc2UKICAgICAgZWNobyAtbiAiRXh0cmFjdGluZyBWTXdhcmUgSW5zdGFs bGVyLi4uIgogICBmaQoKICAgKGNkICRWTUlTX1RFTVAgJiYgZGQgaWY9IiRmaWxlIiBpYnM9JFNL SVBfQllURVMgb2JzPTEwMjQgc2tpcD0xIDI+IC9kZXYvbnVsbCBcCiAgICAgICRmaWx0ZXIgfCBn dW56aXAgLWMgMj4gL2Rldi9udWxsIHwgdGFyIC14ZiAtIDI+IC9kZXYvbnVsbCkKCiAgIGlmIFsg ISAtZSAiJGJvb3RzdHJhcHBlciIgXTsgdGhlbgogICAgICBlY2hvICJkb25lLiIKICAgZmkKfQoK ZXh0cmFjdF9wcmVwYXlsb2FkKCkgewogICBQUkVQQVlMT0FEPWBta3RlbXAgLWQgL3RtcC92bWlz LlhYWFhYWGAKICAgbG9jYWwgZmlsZT0iJDAiCgogICBpZiBbICEgLWQgIiRQUkVQQVlMT0FEIiBd OyB0aGVuCiAgICAgIGVjaG8gIlVuYWJsZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGRpcmVjdG9yeS4i CiAgICAgIGV4aXQgMQogICBmaQoKICAgaWYgaXNfcmVsYXRpdmUgIiRmaWxlIjsgdGhlbgogICAg ICBmaWxlPSIkUFdELyRmaWxlIgogICBmaQoKICAgKGNkICRQUkVQQVlMT0FEICYmIGRkIGlmPSIk ZmlsZSIgaWJzPSRMQVVOQ0hFUl9TSVpFIG9icz0xMDI0IHNraXA9MSAyPiAvZGV2L251bGwgfCBc CiAgICAgIGd1bnppcCAtYyAyPiAvZGV2L251bGwgfCB0YXIgLXhmIC0gMj4gL2Rldi9udWxsKQp9 CgojIERldGVybWluZXMgaWYgYSBwcm9ncmFtIGlzIGluIHRoZSB1c2VyJ3MgUEFUSC4gIFRoaXMg aXMgdXNlZCBpbnN0ZWFkCiMgb2YgdGhlIGV4dGVybmFsIHdoaWNoIGJlY2F1c2UgU29sYXJpcycg dmVyc2lvbiBkb2VzIG5vdCB3b3JrIGFzCiMgZXhwZWN0ZWQuCiMKIyBTaWRlIGVmZmVjdHM6CiMg ICAgTm9uZQojCiMgQXJndW1lbnRzOgojICAgICQxID0+IHByb2dyYW0gdG8gY2hlY2sKIwojIFJl dHVybnM6CiMgICAgMCBpZiBmb3VuZCwgZWxzZSAxCmludGVybmFsX3doaWNoKCkgewogICBsb2Nh bCBiaW5hcnk9IiQxIgoKICAgZm9yIGRpciBpbiBgZWNobyAkUEFUSCB8IHRyICI6IiAiXG4iYDsg ZG8KICAgICAgaWYgWyAtcyAiJGRpci8kYmluYXJ5IiAtYSAteCAiJGRpci8kYmluYXJ5IiBdOyB0 aGVuCiAgICAgICAgIHJldHVybiAwCiAgICAgIGZpCiAgIGRvbmUKCiAgIHJldHVybiAxCn0KCgoj IEluc3RhbGxzIHRoZSBpbnN0YWxsZXIgYW5kIHRoZSBjdXJyZW50IGJ1bmRsZS4KIwojIEFyZ3Vt ZW50czoKIyAgICAkMSA9PiBmaWxlIHNvdXJjZQojICAgICQyID0+IHRydWUgaWYgc2hvdyBoZWxw CiMgICAgJDMgPT4gcGF0aCB0byBidW5kbGUKIwojIFJldHVybnM6CiMgICAgTm9uZQppbnN0YWxs KCkgewogICBsb2NhbCBzb3VyY2U9IiQxIi9pbnN0YWxsCiAgIHNoaWZ0CiAgIGxvY2FsIGhlbHA9 IiQxIgogICBzaGlmdAogICBsb2NhbCBidW5kbGU9IiQxIgogICBzaGlmdAoKICAgaWYgWyAhIC1k ICIkc291cmNlIiBdOyB0aGVuCiAgICAgIGVjaG8gIiRzb3VyY2UgZG9lcyBub3QgZXhpc3QiID4m MgogICAgICBleGl0IDEKICAgZmkKCiAgIGV4cG9ydCBWTVdBUkVfQk9PVFNUUkFQPSIkVk1JU19U RU1QIi9ib290c3RyYXAKCiAgIGNwIC1mICIkc291cmNlIi92bXdhcmUtaW5zdGFsbGVyL2Jvb3Rz dHJhcCAiJFZNV0FSRV9CT09UU1RSQVAiCiAgIHNlZCAtaSAtZSAicyxAQExJQkRJUkBALCRzb3Vy Y2UsZyIgIiRWTVdBUkVfQk9PVFNUUkFQIgogICBzZWQgLWkgLWUgInMsQEBWTVdBUkVfSU5TVEFM TEVSQEAsJHNvdXJjZS92bXdhcmUtaW5zdGFsbGVyLGciICIkVk1XQVJFX0JPT1RTVFJBUCIKCiAg IC4gIiRWTVdBUkVfQk9PVFNUUkFQIgoKICAgbG9jYWwgaW5zdGFsbGVyPSIkVk1XQVJFX0lOU1RB TExFUiIvdm13YXJlLWluc3RhbGxlcgoKICAgaWYgWyAtbiAiJGhlbHAiIF07IHRoZW4KICAgICAg IiRpbnN0YWxsZXIiIC0taGVscAogICAgICBleGl0IDAKICAgZmkKCiAgICMgV2UgbXVzdCBmaXh1 cCB0aGUgcGF0aHMgaW4gUGFuZ28gb3IgdGhlIGZvbnRzIHdpbGwgYmUgYWxsIG1lc3NlZCB1cAog ICBsb2NhbCBsaWJjb25mPSIkc291cmNlIi92bXdhcmUtaW5zdGFsbGVyL2xpYi9saWJjb25mCiAg IGZvciBmaWxlIGluIGV0Yy9wYW5nby9wYW5nb3JjIGV0Yy9wYW5nby9wYW5nby5tb2R1bGVzIGV0 Yy9wYW5nby9wYW5nb3guYWxpYXNlcyBcCiAgICAgICAgICAgICAgIGV0Yy9ndGstMi4wL2dkay1w aXhidWYubG9hZGVycyBldGMvZ3RrLTIuMC9ndGsuaW1tb2R1bGVzOyBkbwogICAgICAgc2VkIC1p IC1lICJzLEBATElCQ09ORl9ESVJAQCwkbGliY29uZixnIiAiJGxpYmNvbmYvJGZpbGUiCiAgIGRv bmUKCiAgICMgUGFzcyBhbGwgb3B0aW9ucyB0aGUgdXNlciBwYXNzZWQgaW4gc28gdGhhdCB0aGUg Y29ycmVjdCBVSSB0eXBlCiAgICMgZ2V0cyBzZXQuCiAgICIkaW5zdGFsbGVyIiAtLXNldC1zZXR0 aW5nIHZtd2FyZS1pbnN0YWxsZXIgbGliY29uZiAiJGxpYmNvbmYiICAgXAogICAgICAgICAgICAg ICAgLS1pbnN0YWxsLWNvbXBvbmVudCAiJHNvdXJjZSIvdm13YXJlLWluc3RhbGxlciAgICAgIFwK ICAgICAgICAgICAgICAgIC0taW5zdGFsbC1idW5kbGUgIiRidW5kbGUiICIkQCIKICAgcmV0PSQ/ CiAgIGlmIFsgJHJldCAhPSAwIF07IHRoZW4KICAgICAgZXhpdCAkcmV0CiAgIGZpCgogICByZXR1 cm4gMAp9CgoKIyBVbmluc3RhbGwgZXhpc3RpbmcgYnVuZGxlIGluc3RhbGxhdGlvbi4KIwojIEFy Z3VtZW50czoKIyAgICAkMSA9PiBldGNkaXIKIyAgICAkMiA9PiBzdWZmaXggdG8gYWRkIHRvIHZt d2FyZS11bmluc3RhbGwgKGllIC12aXgpCiMKIyBSZXR1cm5zOgojICAgIDAgb24gc3VjY2Vzcwp1 bmluc3RhbGxfYnVuZGxlKCkgewogICBldGNkaXI9IiQxIgogICBzaGlmdAogICBzdWZmaXg9IiQx IgogICBzaGlmdAoKICAgbG9jYWwgYm9vdHN0cmFwPSIkZXRjZGlyIi9ib290c3RyYXAKCiAgICMg SWYgdGhlIGJvb3RzdHJhcCBmaWxlIGV4aXN0cywgd2UgYXJlIGRlYWxpbmcgd2l0aCBhIFZNSVMK ICAgIyBpbnN0YWxsZXIuCiAgIGlmIFsgLWUgIiRib290c3RyYXAiIF07IHRoZW4KICAgICAgbG9j YWwgYmluZGlyPSJgLiAkZXRjZGlyL2Jvb3RzdHJhcCAmJiBlY2hvICRCSU5ESVJgIgogICAgICBs b2NhbCBpbnN0YWxsZXI9IiRiaW5kaXIiL3Ztd2FyZS11bmluc3RhbGwkc3VmZml4CiAgICAgICMg Q2hlY2sgaWYgdGhpcyBpcyBhbiBvbGQgc3R5bGUgZmlsZSBieSBjaGVja2luZyB0aGUgdmVyc2lv bgogICAgICAjIGxpbmUgZm9yICdWRVJTSU9OPSIxLjAiJyAgSWYgaXQncyBmb3VuZCwgcnVuIHRo ZSBibGFua2V0CiAgICAgICMgdW5pbnN0YWxsLgogICAgICBpZiBncmVwIC1xICdWRVJTSU9OPSIx LjAiJyAiJGJvb3RzdHJhcCI7IHRoZW4KICAgICAgICAgaWYgWyAtZSAiJGluc3RhbGxlciIgXTsg dGhlbgogICAgICAgICAgICBpZiAhICIkaW5zdGFsbGVyIiAiJEAiOyB0aGVuCiAgICAgICAgICAg ICAgIGVjaG8gIkluc3RhbGxlciBkaWQgbm90IHVuaW5zdGFsbCBzdWNjZXNzZnVsbHkuIgogICAg ICAgICAgICBmaQogICAgICAgICBmaQogICAgICBmaQogICBmaQoKICAgcmV0dXJuIDAKfQoKCiMg VW5pbnN0YWxsIGEgdGFyIGluc3RhbGxhdGlvbi4KIwojIEFyZ3VtZW50czoKIyAgICAkMSA9PiBl dGNkaXIKIyAgICAkMiA9PiBzdWZmaXggdG8gYWRkIHRvIHZtd2FyZS11bmluc3RhbGwgKGllIC12 aXgpCiMKIyBSZXR1cm5zOgojICAgIDAgb24gc3VjY2Vzcwp1bmluc3RhbGxfdGFyKCkgewogICBl dGNkaXI9IiQxIgogICBzaGlmdAogICBzdWZmaXg9IiQxIgogICBzaGlmdAoKICAgbG9jYXRpb25z PSIkZXRjZGlyIi9sb2NhdGlvbnMKCiAgIGlmIFsgLWUgJGxvY2F0aW9ucyBdOyB0aGVuCiAgICAg IGxvY2FsIGJpbmRpcj1gZ3JlcCAiXmFuc3dlciBCSU5ESVIgIiAkbG9jYXRpb25zIHwgdGFpbCAt biAxIHwgc2VkICdzLGFuc3dlciBCSU5ESVIgLCxnJ2AKICAgICAgbG9jYWwgaW5zdGFsbGVyPSIk YmluZGlyIi92bXdhcmUtdW5pbnN0YWxsJHN1ZmZpeC5wbAoKICAgICAgaWYgWyAtZSAiJGluc3Rh bGxlciIgXTsgdGhlbgogICAgICAgICBlY2hvICJVbmluc3RhbGxpbmcgbGVnYWN5IGluc3RhbGxh dGlvbi4uLiIKICAgICAgICAgIiRpbnN0YWxsZXIiIC1kCiAgICAgIGVsc2UJCQkjIE5vIHVuaW5z dGFsbGVyIHByZXNlbnQsIGdldCByaWQgb2YgbG9jYXRpb25zIGRiLgogICAgICAgICBybSAtZiAk bG9jYXRpb25zCiAgICAgIGZpCiAgIGZpCn0KCnJlbW92ZV9ycG0oKSB7CiAgIGxvY2FsIHBrZz0i JDEiCiAgIHNoaWZ0CgogICAjIElmIG5vcm1hbCB1bmluc3RhbGxhdGlvbiBmYWlscywgd2Ugd2Fu dCB0byBmb3JjZSBpdCBvdXQuICBUaGlzCiAgICMgaXMgbGlrZWx5IGJlY2F1c2UgdGhlIHByZXVu IHNjcmlwdCBmYWlsZWQuICB0cnkgYWdhaW4gd2l0aAogICAjIC0tbm9zY3JpcHRzCiAgIGlmICEg cnBtIC1lICRwa2c7IHRoZW4KICAgICAgZWNobyAiVW5pbnN0YWxsYXRpb24gb2YgJHBrZyBmYWls ZWQuICBGb3JjaW5nIHVuaW5zdGFsbGF0aW9uLiIKICAgICAgcnBtIC1lICRwa2cgLS1ub3Njcmlw dHMKICAgZmkKfQoKIyBVbmluc3RhbGxzIGxlZ2FjeSBQbGF5ZXIvV29ya3N0YXRpb24uCiMKIyBB cmd1bWVudHM6CiMgICAgTm9uZQojCiMgUmV0dXJuczoKIyAgICAwIG9uIHN1Y2Nlc3MuCnVuaW5z dGFsbF9sZWdhY3koKSB7CiAgIGxvY2FsIGV0Y2Rpcj0iJDEiCiAgIHNoaWZ0CgogICBsb2NhbCBo b3N0ZWQ9YGVjaG8gIiRQUk9EVUNUX05BTUUiIHwgZ3JlcCAiXCh2bXdhcmUtd29ya3N0YXRpb25c fHZtd2FyZS1wbGF5ZXJcfHZtd2FyZS1zZXJ2ZXJcfHZtd2FyZS12aXhcKSJgCgogICBpZiBbIC1u ICIkaG9zdGVkIiBdOyB0aGVuICMgQ2hlY2sgdG8gc2VlIGlmIHJwbSBpcyBpbnN0YWxsZWQKICAg ICAgZm9yIHBrZyBpbiBWTXdhcmVXb3Jrc3RhdGlvbiBWTXdhcmVQbGF5ZXI7IGRvCiAgICAgICAg IGlmIHJwbSAtcSAkcGtnID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KICAgICAgICAgICAgcmVtb3Zl X3JwbSAkcGtnCiAgICAgICAgIGZpCiAgICAgIGRvbmUKICAgICAgIyBOb3cgaGFuZGxlIHRoZSBz ZXJ2ZXIgY2FzZS4gIFRoZSBpbnN0YWxsZXIgaXMgbm9ybWFsbHkgcmVwbGFjaW5nCiAgICAgICMg UGxheWVyIGFuZC9vciBXb3Jrc3RhdGlvbiwgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBleHBsaWNp dGx5IGxldAogICAgICAjIHRoZSB1c2VyIGtub3cgdGhhdCB3ZSdyZSByZXBsYWNpbmcgdGhlbS4g IFNpbGVudGx5IHJlcGxhY2luZwogICAgICAjIHNlcnZlciBvbiB0aGUgb3RoZXIgaGFuZCBpcyBu b3QgYSBnb29kIGlkZWEuCiAgICAgIGlmIHJwbSAtcSBWTXdhcmUtc2VydmVyID4gL2Rldi9udWxs IDI+JjE7IHRoZW4KICAgICAgICAgZWNobyAiVk13YXJlIFNlcnZlciBtdXN0IGJlIHJlbW92ZWQg YmVmb3JlIGluc3RhbGxhdGlvbiBjYW4gY29udGludWUuIgogICAgICAgICBlY2hvICJJdCB3aWxs IGJlIGF1dG9tYXRpY2FsbHkgdW5pbnN0YWxsZWQgYnkgdGhpcyBpbnN0YWxsZXIuICBQcmVzcyIK ICAgICAgICAgZWNobyAiY3RybC1DIG5vdyBpZiB5b3UgZG8gbm90IHdpc2ggdG8gY29udGludWUg b3IgaWYgeW91IGhhdmUgcnVubmluZyIKICAgICAgICAgZWNobyAidmlydHVhbCBtYWNoaW5lcyB0 aGF0IG11c3QgYmUgY2xvc2VkLiIKICAgICAgICAgZWNobyAiIgogICAgICAgICBlY2hvICJPdGhl cndpc2UgcHJlc3MgPGVudGVyPiB0byBjb250aW51ZSBhbmQgYXV0b21hdGljYWxseSB1bmluc3Rh bGwgVk13YXJlIFNlcnZlci4iCiAgICAgICAgIHJlYWQgLWUgTk9WQVIKICAgICAgICAgcnBtIC1l IC0tbm9zY3JpcHRzIFZNd2FyZS1zZXJ2ZXIKICAgICAgZmkKICAgZmkKCiAgIHVuaW5zdGFsbF90 YXIgIiRldGNkaXIiICIiCgogICAjIGNvbmZpZyB3YXMgYSBtZXNzIHVuZGVyIHRoZSB0YXIvcnBt LiAgSXQgYWx3YXlzIGdvdCByZW5hbWVkIGFuZAogICAjIGNyYXp5IHRoaW5ncy4gIENsZWFuIHRo ZW0gdXAuCiAgIHJtIC1mICIkZXRjZGlyIi9jb25maWcuWzAtOV0qCgogICAjIE5ldHdvcmtpbmcg aXMgc29tZXRpbWVzIHN0aWxsIHJ1bm5pbmcgYWZ0ZXIgc3RvcHBpbmcgc2VydmljZXMgc28KICAg IyBmb3JjZWFibHkga2lsbCBpdC4gIElmIGl0J3Mgc3RpbGwgcnVubmluZyB0aGVuIHZtbmV0IGNh bid0IGJlCiAgICMgcmVtb3ZlZCBhbmQgbmV0d29yayBzZXR0aW5ncyBhcmVuJ3QgbWlncmF0ZWQg cHJvcGVybHkgZWl0aGVyLgogICBraWxsYWxsIC0td2FpdCAtOSB2bW5ldC1uZXRpZnVwIHZtbmV0 LWRoY3BkIHZtbmV0LW5hdGQgdm1uZXQtYnJpZGdlIFwKICAgICAgICAgICAgICAgICAgICAgdm1u ZXQtZGV0ZWN0IHZtbmV0LXNuaWZmZXIgMj4gL2Rldi9udWxsIHx8IHRydWUKICAgL3NiaW4vcm1t b2Qgdm1uZXQgMj4gL2Rldi9udWxsIHx8IHRydWUKCiAgIHJldHVybiAwCn0KCgojIFVuaW5zdGFs bHMgYnVuZGxlIHJwbSBmb3IgUGxheWVyL1dvcmtzdGF0aW9uLgojCiMgQXJndW1lbnRzOgojICAg IE5vbmUKIwojIFJldHVybnM6CiMgICAgTm9uZS4KdW5pbnN0YWxsX3JwbSgpIHsKICAgbG9jYWwg aG9zdGVkPWBlY2hvICIkUFJPRFVDVF9OQU1FIiB8IGdyZXAgIlwodm13YXJlLXdvcmtzdGF0aW9u XHx2bXdhcmUtcGxheWVyXHx2bXdhcmUtc2VydmVyXHx2bXdhcmUtdml4XCkiYAoKICAgaWYgWyAt biAiJGhvc3RlZCIgXTsgdGhlbiAjIENoZWNrIHRvIHNlZSBpZiBycG0gaXMgaW5zdGFsbGVkCiAg ICAgIGZvciBwa2cgaW4gVk13YXJlLVdvcmtzdGF0aW9uIFZNd2FyZS1QbGF5ZXI7IGRvCiAgICAg ICAgIGlmIHJwbSAtcSAkcGtnID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KICAgICAgICAgICAgcmVt b3ZlX3JwbSAkcGtnCiAgICAgICAgIGZpCiAgICAgIGRvbmUKICAgZmkKfQoKCiMgTWlncmF0ZXMg bmV0d29ya2luZyBzZXR0aW5ncyBmb3IgUGxheWVyL1dvcmtzdGF0aW9uLgojIElmIGNhbGxlZCBv biBhbiBJcm9uIGluc3RhbGwgb2YgV29ya3N0YXRpb24sIGl0IHdpbGwKIyBkbyBub3RoaW5nLiAg VGhlIGxvY2F0aW9ucyBhbmQgbmV0d29ya2luZyBmaWxlcyB3ZXJlCiMgbG9jYXRlZCBieSBkZWZh dWx0IGluIC9ldGMvdm13YXJlLCBoZW5jZSBPTERFVENESVIuCiMgSWYgdGhleSB3ZXJlIGluc3Rh bGxlZCBlbHNld2hlcmUsIHdlIGhhdmUgbm8gd2F5IHRvCiMgZmluZCB0aGVtLgojCiMgVGhpcyBv bmx5IHdvcmtzIGZvciBwcmUtSXJvbi4gIElyb24gbmV0d29yayBzZXR0aW5ncwojIGFyZSBzdG9y ZWQgaW4gYSBkaWZmZXJlbnQgZGlyZWN0b3J5IGFuZCB1cGdyYWRlcyBoYW5kbGVkCiMgYnkgVk1J Uy4KIwojIEFyZ3VtZW50czoKIyAgICBOb25lCiMKIyBSZXR1cm5zOgojICAgIE5vbmUuCm1pZ3Jh dGVfbmV0d29ya3MoKSB7CiAgIGxvY2FsIGxvY2F0aW9ucz0iJE9MREVUQ0RJUiIvbG9jYXRpb25z CiAgIGxvY2FsIG5ldHdvcmtpbmc9IiRPTERFVENESVIiL25ldHdvcmtpbmcKCiAgIGlmIFsgLWUg IiRuZXR3b3JraW5nIiBdOyB0aGVuCiAgICAgIGxvY2FsIHRlbXBOZXR3b3JraW5nPWBta3RlbXAg L3RtcC92bXdhcmVOZXR3b3JraW5nLlhYWFhYWGAKICAgICAgY3AgLWYgIiRuZXR3b3JraW5nIiAk dGVtcE5ldHdvcmtpbmcKICAgICAgZXhwb3J0IFZNV0FSRV9SRVNUT1JFX05FVFdPUktJTkc9JHRl bXBOZXR3b3JraW5nCiAgIGVsaWYgWyAtZSAiJGxvY2F0aW9ucyIgXTsgdGhlbgogICAgICBsb2Nh bCB0ZW1wTG9jYXRpb25zPWBta3RlbXAgL3RtcC92bXdhcmVMb2NhdGlvbnMuWFhYWFhYYAogICAg ICBjcCAtZiAiJGxvY2F0aW9ucyIgJHRlbXBMb2NhdGlvbnMKICAgICAgZXhwb3J0IFZNV0FSRV9N SUdSQVRFX05FVFdPUktJTkc9JHRlbXBMb2NhdGlvbnMKICAgZmkKCiAgIHJldHVybiAwCn0KCnVu aW5zdGFsbF9vbGRfdml4KCkgewogICAjIFZJWCB1c2VkIHRvIGxpdmUgdW5kZXIgdm13YXJlLXZp eCwgc28gd2UgbmVlZCB0bwogICAjIGNoZWNrIGZvciBhbiBvbGRlciBWSVggdGhlcmUuCiAgIHVu aW5zdGFsbF9idW5kbGUgL2V0Yy92bXdhcmUtdml4ICItdml4IiAiJEAiCgogICAjIFVuaW5zdGFs bCBvbGQgVklYIHZlcnNpb25zIGlmIG5lY2Vzc2FyeS4KICAgdW5pbnN0YWxsX3RhciAvZXRjL3Zt d2FyZS12aXggIi12aXgiCn0KCnVuaW5zdGFsbF9vbGQoKSB7CiAgICMgVW5pbnN0YWxsIHRoZSBv bGRlciAuYnVuZGxlcwogICB1bmluc3RhbGxfYnVuZGxlICIkT0xERVRDRElSIiAiIiAiJEAiCgog ICAjIFZNV0FSRV9TS0lQX1JQTV9VTklOU1RBTEwgd2lsbCBiZSBzZXQgaWYgd2UncmUgaW5zdGFs bGluZwogICAjIGluIGFuIHJwbSBjb250ZXh0LiBJbiB0aGF0IGNhc2UsIHdlIGRvbid0IHdhbnQg dG8gcnVuIGFueQogICAjIHJwbSBjb21tYW5kcyB0byBwcmV2ZW50IHJwbSBkZWFkbG9jay4KICAg aWYgWyAteiAiJFZNV0FSRV9TS0lQX1JQTV9VTklOU1RBTEwiIF07IHRoZW4KICAgICAgdW5pbnN0 YWxsX3JwbQogICBmaQoKICAgIyBDaGVjayBpZiB3ZSBuZWVkIHRvIHJ1biB0aGUgdW5pbnN0YWxs IHBvcnRpb25zIG9mIHRoaXMgc2NyaXB0IGZvciBlYXJsaWVyCiAgICMgaW5zdGFsbGVycy4gIExv b2sgZm9yIHRoZSBsb2NhdGlvbnMgZGF0YWJhc2UgaW4gL2V0Yy92bXdhcmUuICBUaGlzIGZpbGUK ICAgIyB3aWxsIG9ubHkgZXhpc3QgZm9yIHByZS1Jcm9uIGluc3RhbGxzLgogICBpZiBbIC1lICIk T0xERVRDRElSIi9sb2NhdGlvbnMgXTsgdGhlbgogICAgICAjIFRoaXMgd2lsbCB1bmluc3RhbGwg bGVnYWN5IHRhci9ycG0gaW5zdGFsbGF0aW9ucy4gTm90ZSB0aGF0CiAgICAgICMgd2UgZG8gbm90 IG5lZWQgdG8gYmUgY29uY2VybmVkIGFib3V0IGNoZWNraW5nIGZvcgogICAgICAjIFZNV0FSRV9T S0lQX1JQTV9VTklOU1RBTEwgc2luY2UgdGhlIGJ1bmRsZSBycG1zIGFyZSBtYXJrZWQKICAgICAg IyB0byBjb25mbGljdCB3aXRoIGxlZ2FjeSBycG1zLgogICAgICB1bmluc3RhbGxfbGVnYWN5ICRP TERFVENESVIKCiAgICAgICMgQ2hlY2sgaWYgd2UgbmVlZCB0byB1bmluc3RhbGwgY29tcG9uZW50 cwogICAgICB1bmluc3RhbGxfdGFyICRPTERFVENESVIgIiIKCiAgICAgIHVuaW5zdGFsbF9vbGRf dml4ICIkQCIKICAgZmkKfQoKCiMgTWFpbiBlbnRyeSBwb2ludC4gIENoZWNrcyB3aGV0aGVyIHRo ZSBWTUlTIGlzIGluc3RhbGxlZCBhbmQgaWYgc28gbGF1bmNoZXMgaXQuCiMgT3RoZXJ3aXNlIGV4 dHJhY3RzIGl0c2VsZiB0aGVuIGluc3RhbGxzIHRoZSBWTUlTLgptYWluKCkgewogICBsb2NhbCBm dWxscGF0aD0iJDAiCiAgIGxvY2FsIGhlbHAKICAgbG9jYWwgZXh0cmFjdAoKICAgaWYgWyAiYGdl dF9hcmNoYCIgIT0gIiRBUkNIIiBdOyB0aGVuCiAgICAgIGVjaG8gIlRoaXMgaXMgYSAkQVJDSCBi dW5kbGUgYW5kIGRvZXMgbm90IG1hdGNoIHRoYXQgb2YgdGhlIGN1cnJlbnQgIgogICAgICBlY2hv ICJhcmNoaXRlY3R1cmUuICBQbGVhc2UgZG93bmxvYWQgdGhlIGBnZXRfYXJjaGAgYnVuZGxlLiIK ICAgICAgZXhpdCAxCiAgIGZpCgogICBpZiBbICIkMSIgPSAiLWgiIC1vICIkMSIgPSAiLS1oZWxw IiBdOyB0aGVuCiAgICAgIGhlbHA9JDEKICAgICAgc2hpZnQKICAgZmkKCiAgIGlmIFsgIiQxIiA9 ICIteCIgLW8gIiQxIiA9ICItLWV4dHJhY3QiIF07IHRoZW4KICAgICAgZXh0cmFjdD0kMQogICAg ICBzaGlmdAogICBmaQoKICAgaWYgaXNfcmVsYXRpdmUgIiRmdWxscGF0aCI7IHRoZW4KICAgICAg ZnVsbHBhdGg9IiRQV0QvJGZ1bGxwYXRoIgogICBmaQoKICAgaWYgWyAkVUlEIC1lcSAwIF0gJiYg WyAteiAiJGhlbHAiIF0gJiYgWyAteiAiJGV4dHJhY3QiIF07IHRoZW4KICAgICAgY2FzZSAiJFBS T0RVQ1RfTkFNRSIgaW4KICAgICAgICAgIHZtd2FyZS13b3Jrc3RhdGlvbikKICAgICAgICAgICAg ICBtaWdyYXRlX25ldHdvcmtzCiAgICAgICAgICAgICAgdW5pbnN0YWxsX29sZF92aXggIiRAIgog ICAgICAgICAgICAgIHVuaW5zdGFsbF9vbGQgIiRAIgogICAgICAgICAgICAgIDs7CiAgICAgICAg ICB2bXdhcmUtcGxheWVyKQogICAgICAgICAgICAgIG1pZ3JhdGVfbmV0d29ya3MKICAgICAgICAg ICAgICB1bmluc3RhbGxfb2xkICIkQCIKICAgICAgICAgICAgICA7OwogICAgICAgICAgdm13YXJl LXNlcnZlcikKICAgICAgICAgICAgICBtaWdyYXRlX25ldHdvcmtzCiAgICAgICAgICAgICAgdW5p bnN0YWxsX29sZCAiJEAiCiAgICAgICAgICAgICAgOzsKICAgICAgICAgIHZtd2FyZS12aXgpCiAg ICAgICAgICAgICAgdW5pbnN0YWxsX29sZF92aXggIiRAIgogICAgICAgICAgICAgIDs7CiAgICAg ICAgICB0ZXN0LWNvbXBvbmVudCkKICAgICAgICAgICAgICB1bmluc3RhbGxfYnVuZGxlIC9ldGMv dm13YXJlLXRlc3QgLXRlc3QgIiRAIgogICAgICBlc2FjCiAgIGZpCgogICBpZiAhIHNldF9sZW5n dGhzICIkMCI7IHRoZW4KICAgICAgZWNobyAiVW5hYmxlIHRvIGV4dHJhY3QgbGVuZ3RocyBmcm9t IGJ1bmRsZS4iCiAgICAgIGV4aXQgMQogICBmaQoKICAgZXh0cmFjdF9wcmVwYXlsb2FkCiAgIGV4 dHJhY3Rfc2VsZgoKICAgaW5zdGFsbCAiJFZNSVNfVEVNUCIgIiRoZWxwIiAiJGZ1bGxwYXRoIiAi JGV4dHJhY3QiICIkQCIKfQoKbWFpbiAiJEAiCisgbWFpbgorIGxvY2FsIGZ1bGxwYXRoPVZNd2Fy ZS1QbGF5ZXItMy4xLjAtMjYxMDI0LmkzODYuYnVuZGxlCisgbG9jYWwgaGVscAorIGxvY2FsIGV4 dHJhY3QKZ2V0X2FyY2gKKysgZ2V0X2FyY2gKKysgbG9jYWwgRUxGX01BR0lDPTdmCm9kIC1OMSAt QW4gLXQgeDEgPCAvYmluL3NoIHwgdHIgLWQgJyAnCisrKyBvZCAtTjEgLUFuIC10IHgxCisrKyB0 ciAtZCAnICcKKysgJ1snIDdmICchPScgN2YgJ10nCm9kIC1qNCAtTjEgLUFuIC10IHUxIDwgL2Jp bi9zaCB8IHRyIC1kICcgJworKysgb2QgLWo0IC1OMSAtQW4gLXQgdTEKKysrIHRyIC1kICcgJwor KyBsb2NhbCBhcmNoPTEKKysgY2FzZSAkYXJjaCBpbgorKyBlY2hvIHg4NgorKyBleGl0IDAKKyAn WycgeDg2ICchPScgeDg2ICddJworICdbJyAnJyA9IC1oIC1vICcnID0gLS1oZWxwICddJworICdb JyAnJyA9IC14IC1vICcnID0gLS1leHRyYWN0ICddJworIGlzX3JlbGF0aXZlIFZNd2FyZS1QbGF5 ZXItMy4xLjAtMjYxMDI0LmkzODYuYnVuZGxlCisgbG9jYWwgcGF0aD1WTXdhcmUtUGxheWVyLTMu MS4wLTI2MTAyNC5pMzg2LmJ1bmRsZQorIHNoaWZ0CisgJ1snIFYgJyE9JyAvICddJworIHJldHVy bgorIGZ1bGxwYXRoPS9ob21lL1ZpcnR1YWxNYWNoaW5lcy9WTXdhcmUtUGxheWVyLTMuMS4wLTI2 MTAyNC5pMzg2LmJ1bmRsZQorICdbJyAwIC1lcSAwICddJworICdbJyAteiAnJyAnXScKKyAnWycg LXogJycgJ10nCisgY2FzZSAiJFBST0RVQ1RfTkFNRSIgaW4KKyBtaWdyYXRlX25ldHdvcmtzCisg bG9jYWwgbG9jYXRpb25zPS9ldGMvdm13YXJlL2xvY2F0aW9ucworIGxvY2FsIG5ldHdvcmtpbmc9 L2V0Yy92bXdhcmUvbmV0d29ya2luZworICdbJyAtZSAvZXRjL3Ztd2FyZS9uZXR3b3JraW5nICdd JworICdbJyAtZSAvZXRjL3Ztd2FyZS9sb2NhdGlvbnMgJ10nCisgcmV0dXJuIDAKKyB1bmluc3Rh bGxfb2xkCisgdW5pbnN0YWxsX2J1bmRsZSAvZXRjL3Ztd2FyZSAnJworIGV0Y2Rpcj0vZXRjL3Zt d2FyZQorIHNoaWZ0Cisgc3VmZml4PQorIHNoaWZ0CisgbG9jYWwgYm9vdHN0cmFwPS9ldGMvdm13 YXJlL2Jvb3RzdHJhcAorICdbJyAtZSAvZXRjL3Ztd2FyZS9ib290c3RyYXAgJ10nCisgcmV0dXJu IDAKKyAnWycgLXogJycgJ10nCisgdW5pbnN0YWxsX3JwbQplY2hvICIkUFJPRFVDVF9OQU1FIiB8 IGdyZXAgIlwodm13YXJlLXdvcmtzdGF0aW9uXHx2bXdhcmUtcGxheWVyXHx2bXdhcmUtc2VydmVy XHx2bXdhcmUtdml4XCkiCisrIGVjaG8gdm13YXJlLXBsYXllcgorKyBncmVwICdcKHZtd2FyZS13 b3Jrc3RhdGlvblx8dm13YXJlLXBsYXllclx8dm13YXJlLXNlcnZlclx8dm13YXJlLXZpeFwpJwor IGxvY2FsIGhvc3RlZD12bXdhcmUtcGxheWVyCisgJ1snIC1uIHZtd2FyZS1wbGF5ZXIgJ10nCisg Zm9yIHBrZyBpbiBWTXdhcmUtV29ya3N0YXRpb24gVk13YXJlLVBsYXllcgorIHJwbSAtcSBWTXdh cmUtV29ya3N0YXRpb24KKyBmb3IgcGtnIGluIFZNd2FyZS1Xb3Jrc3RhdGlvbiBWTXdhcmUtUGxh eWVyCisgcnBtIC1xIFZNd2FyZS1QbGF5ZXIKKyAnWycgLWUgL2V0Yy92bXdhcmUvbG9jYXRpb25z ICddJworIHNldF9sZW5ndGhzIFZNd2FyZS1QbGF5ZXItMy4xLjAtMjYxMDI0LmkzODYuYnVuZGxl CisgbG9jYWwgZmlsZT1WTXdhcmUtUGxheWVyLTMuMS4wLTI2MTAyNC5pMzg2LmJ1bmRsZQorICdb JyAnIScgLXMgVk13YXJlLVBsYXllci0zLjEuMC0yNjEwMjQuaTM4Ni5idW5kbGUgJ10nCm9kIC1B biAtdCB1NCAtTiA0IC1qICRNQUdJQ19PRkZTRVQgIiRmaWxlIiB8IHRyIC1kICcgJworKyBvZCAt QW4gLXQgdTQgLU4gNCAtaiAxMDY1MTk4NjEgVk13YXJlLVBsYXllci0zLjEuMC0yNjEwMjQuaTM4 Ni5idW5kbGUKKysgdHIgLWQgJyAnCisgTUFHSUNfTlVNQkVSPTkwNzM4MDI0MQorICdbJyA5MDcz ODAyNDEgJyE9JyA5MDczODAyNDEgJ10nCm9kIC1BbiAtdCB1NCAtTiA0IC1qICRMQVVOQ0hFUl9T SVpFX09GRlNFVCAiJGZpbGUiIHwgdHIgLWQgJyAnCisrIG9kIC1BbiAtdCB1NCAtTiA0IC1qIDEw NjUxOTg0MSBWTXdhcmUtUGxheWVyLTMuMS4wLTI2MTAyNC5pMzg2LmJ1bmRsZQorKyB0ciAtZCAn ICcKKyBMQVVOQ0hFUl9TSVpFPTE1MTA1Cm9kIC1BbiAtdCB1NCAtTiA0IC1qICRQQVlMT0FEX1NJ WkVfT0ZGU0VUICIkZmlsZSIgfCB0ciAtZCAnICcKKysgb2QgLUFuIC10IHU0IC1OIDQgLWogMTA2 NTE5ODMzIFZNd2FyZS1QbGF5ZXItMy4xLjAtMjYxMDI0LmkzODYuYnVuZGxlCisrIHRyIC1kICcg JworIFBBWUxPQURfU0laRT0xMjUwODE1NApvZCAtQW4gLXQgdTQgLU4gNCAtaiAkUFJFUEFZTE9B RF9TSVpFX09GRlNFVCAiJGZpbGUiIHwgdHIgLWQgJyAnCisrIG9kIC1BbiAtdCB1NCAtTiA0IC1q IDEwNjUxOTg0NSBWTXdhcmUtUGxheWVyLTMuMS4wLTI2MTAyNC5pMzg2LmJ1bmRsZQorKyB0ciAt ZCAnICcKKyBQUkVQQVlMT0FEX1NJWkU9MTA2CisgU0tJUF9CWVRFUz0xNTIxMQorIHJldHVybiAw CisgZXh0cmFjdF9wcmVwYXlsb2FkCm1rdGVtcCAtZCAvdG1wL3ZtaXMuWFhYWFhYCisrIG1rdGVt cCAtZCAvdG1wL3ZtaXMuWFhYWFhYCisgUFJFUEFZTE9BRD0vdG1wL3ZtaXMuY1JTZTNICisgbG9j YWwgZmlsZT1WTXdhcmUtUGxheWVyLTMuMS4wLTI2MTAyNC5pMzg2LmJ1bmRsZQorICdbJyAnIScg LWQgL3RtcC92bWlzLmNSU2UzSCAnXScKKyBpc19yZWxhdGl2ZSBWTXdhcmUtUGxheWVyLTMuMS4w LTI2MTAyNC5pMzg2LmJ1bmRsZQorIGxvY2FsIHBhdGg9Vk13YXJlLVBsYXllci0zLjEuMC0yNjEw MjQuaTM4Ni5idW5kbGUKKyBzaGlmdAorICdbJyBWICchPScgLyAnXScKKyByZXR1cm4KKyBmaWxl PS9ob21lL1ZpcnR1YWxNYWNoaW5lcy9WTXdhcmUtUGxheWVyLTMuMS4wLTI2MTAyNC5pMzg2LmJ1 bmRsZQorIGNkIC90bXAvdm1pcy5jUlNlM0gKKyBkZCBpZj0vaG9tZS9WaXJ0dWFsTWFjaGluZXMv Vk13YXJlLVBsYXllci0zLjEuMC0yNjEwMjQuaTM4Ni5idW5kbGUgaWJzPTE1MTA1IG9icz0xMDI0 IHNraXA9MQorIHRhciAteGYgLQorIGd1bnppcCAtYworIGV4dHJhY3Rfc2VsZgpta3RlbXAgLWQg L3RtcC92bWlzLlhYWFhYWAorKyBta3RlbXAgLWQgL3RtcC92bWlzLlhYWFhYWAorIFZNSVNfVEVN UD0vdG1wL3ZtaXMuUUZxZXpmCisgbG9jYWwgZmlsZT1WTXdhcmUtUGxheWVyLTMuMS4wLTI2MTAy NC5pMzg2LmJ1bmRsZQorIGxvY2FsIGZpbHRlcj0KKyBsb2NhbCBib290c3RyYXBwZXI9L3RtcC92 bWlzLmNSU2UzSC9ib290c3RyYXBwZXItZ3RrCisgJ1snICchJyAtZCAvdG1wL3ZtaXMuUUZxZXpm ICddJworIGlzX3JlbGF0aXZlIFZNd2FyZS1QbGF5ZXItMy4xLjAtMjYxMDI0LmkzODYuYnVuZGxl CisgbG9jYWwgcGF0aD1WTXdhcmUtUGxheWVyLTMuMS4wLTI2MTAyNC5pMzg2LmJ1bmRsZQorIHNo aWZ0CisgJ1snIFYgJyE9JyAvICddJworIHJldHVybgorIGZpbGU9L2hvbWUvVmlydHVhbE1hY2hp bmVzL1ZNd2FyZS1QbGF5ZXItMy4xLjAtMjYxMDI0LmkzODYuYnVuZGxlCisgJ1snIC1lIC90bXAv dm1pcy5jUlNlM0gvYm9vdHN0cmFwcGVyLWd0ayAnXScKKyBlY2hvIC1uICdFeHRyYWN0aW5nIFZN d2FyZSBJbnN0YWxsZXIuLi4nCisgY2QgL3RtcC92bWlzLlFGcWV6ZgorIGRkIGlmPS9ob21lL1Zp cnR1YWxNYWNoaW5lcy9WTXdhcmUtUGxheWVyLTMuMS4wLTI2MTAyNC5pMzg2LmJ1bmRsZSBpYnM9 MTUyMTEgb2JzPTEwMjQgc2tpcD0xCisgdGFyIC14ZiAtCisgZ3VuemlwIC1jCisgJ1snICchJyAt ZSAvdG1wL3ZtaXMuY1JTZTNIL2Jvb3RzdHJhcHBlci1ndGsgJ10nCisgZWNobyBkb25lLgorIGlu c3RhbGwgL3RtcC92bWlzLlFGcWV6ZiAnJyAvaG9tZS9WaXJ0dWFsTWFjaGluZXMvVk13YXJlLVBs YXllci0zLjEuMC0yNjEwMjQuaTM4Ni5idW5kbGUgJycKKyBsb2NhbCBzb3VyY2U9L3RtcC92bWlz LlFGcWV6Zi9pbnN0YWxsCisgc2hpZnQKKyBsb2NhbCBoZWxwPQorIHNoaWZ0CisgbG9jYWwgYnVu ZGxlPS9ob21lL1ZpcnR1YWxNYWNoaW5lcy9WTXdhcmUtUGxheWVyLTMuMS4wLTI2MTAyNC5pMzg2 LmJ1bmRsZQorIHNoaWZ0CisgJ1snICchJyAtZCAvdG1wL3ZtaXMuUUZxZXpmL2luc3RhbGwgJ10n CisgZXhwb3J0IFZNV0FSRV9CT09UU1RSQVA9L3RtcC92bWlzLlFGcWV6Zi9ib290c3RyYXAKKyBW TVdBUkVfQk9PVFNUUkFQPS90bXAvdm1pcy5RRnFlemYvYm9vdHN0cmFwCisgY3AgLWYgL3RtcC92 bWlzLlFGcWV6Zi9pbnN0YWxsL3Ztd2FyZS1pbnN0YWxsZXIvYm9vdHN0cmFwIC90bXAvdm1pcy5R RnFlemYvYm9vdHN0cmFwCisgc2VkIC1pIC1lIHMsQEBMSUJESVJAQCwvdG1wL3ZtaXMuUUZxZXpm L2luc3RhbGwsZyAvdG1wL3ZtaXMuUUZxZXpmL2Jvb3RzdHJhcAorIHNlZCAtaSAtZSBzLEBAVk1X QVJFX0lOU1RBTExFUkBALC90bXAvdm1pcy5RRnFlemYvaW5zdGFsbC92bXdhcmUtaW5zdGFsbGVy LGcgL3RtcC92bWlzLlFGcWV6Zi9ib290c3RyYXAKKyAuIC90bXAvdm1pcy5RRnFlemYvYm9vdHN0 cmFwClZNV0FSRV9JTlNUQUxMRVI9Ii90bXAvdm1pcy5RRnFlemYvaW5zdGFsbC92bXdhcmUtaW5z dGFsbGVyIgorKyBWTVdBUkVfSU5TVEFMTEVSPS90bXAvdm1pcy5RRnFlemYvaW5zdGFsbC92bXdh cmUtaW5zdGFsbGVyCgpWRVJTSU9OPSIxLjEiCisrIFZFUlNJT049MS4xClZNSVNQWVZFUlNJT049 IjI1IgorKyBWTUlTUFlWRVJTSU9OPTI1CiMgQlVJTERfTlVNQkVSID8KKyBsb2NhbCBpbnN0YWxs ZXI9L3RtcC92bWlzLlFGcWV6Zi9pbnN0YWxsL3Ztd2FyZS1pbnN0YWxsZXIvdm13YXJlLWluc3Rh bGxlcgorICdbJyAtbiAnJyAnXScKKyBsb2NhbCBsaWJjb25mPS90bXAvdm1pcy5RRnFlemYvaW5z dGFsbC92bXdhcmUtaW5zdGFsbGVyL2xpYi9saWJjb25mCisgZm9yIGZpbGUgaW4gZXRjL3Bhbmdv L3BhbmdvcmMgZXRjL3BhbmdvL3BhbmdvLm1vZHVsZXMgZXRjL3BhbmdvL3BhbmdveC5hbGlhc2Vz IGV0Yy9ndGstMi4wL2dkay1waXhidWYubG9hZGVycyBldGMvZ3RrLTIuMC9ndGsuaW1tb2R1bGVz Cisgc2VkIC1pIC1lIHMsQEBMSUJDT05GX0RJUkBALC90bXAvdm1pcy5RRnFlemYvaW5zdGFsbC92 bXdhcmUtaW5zdGFsbGVyL2xpYi9saWJjb25mLGcgL3RtcC92bWlzLlFGcWV6Zi9pbnN0YWxsL3Zt d2FyZS1pbnN0YWxsZXIvbGliL2xpYmNvbmYvZXRjL3BhbmdvL3BhbmdvcmMKKyBmb3IgZmlsZSBp biBldGMvcGFuZ28vcGFuZ29yYyBldGMvcGFuZ28vcGFuZ28ubW9kdWxlcyBldGMvcGFuZ28vcGFu Z294LmFsaWFzZXMgZXRjL2d0ay0yLjAvZ2RrLXBpeGJ1Zi5sb2FkZXJzIGV0Yy9ndGstMi4wL2d0 ay5pbW1vZHVsZXMKKyBzZWQgLWkgLWUgcyxAQExJQkNPTkZfRElSQEAsL3RtcC92bWlzLlFGcWV6 Zi9pbnN0YWxsL3Ztd2FyZS1pbnN0YWxsZXIvbGliL2xpYmNvbmYsZyAvdG1wL3ZtaXMuUUZxZXpm L2luc3RhbGwvdm13YXJlLWluc3RhbGxlci9saWIvbGliY29uZi9ldGMvcGFuZ28vcGFuZ28ubW9k dWxlcworIGZvciBmaWxlIGluIGV0Yy9wYW5nby9wYW5nb3JjIGV0Yy9wYW5nby9wYW5nby5tb2R1 bGVzIGV0Yy9wYW5nby9wYW5nb3guYWxpYXNlcyBldGMvZ3RrLTIuMC9nZGstcGl4YnVmLmxvYWRl cnMgZXRjL2d0ay0yLjAvZ3RrLmltbW9kdWxlcworIHNlZCAtaSAtZSBzLEBATElCQ09ORl9ESVJA QCwvdG1wL3ZtaXMuUUZxZXpmL2luc3RhbGwvdm13YXJlLWluc3RhbGxlci9saWIvbGliY29uZixn IC90bXAvdm1pcy5RRnFlemYvaW5zdGFsbC92bXdhcmUtaW5zdGFsbGVyL2xpYi9saWJjb25mL2V0 Yy9wYW5nby9wYW5nb3guYWxpYXNlcworIGZvciBmaWxlIGluIGV0Yy9wYW5nby9wYW5nb3JjIGV0 Yy9wYW5nby9wYW5nby5tb2R1bGVzIGV0Yy9wYW5nby9wYW5nb3guYWxpYXNlcyBldGMvZ3RrLTIu MC9nZGstcGl4YnVmLmxvYWRlcnMgZXRjL2d0ay0yLjAvZ3RrLmltbW9kdWxlcworIHNlZCAtaSAt ZSBzLEBATElCQ09ORl9ESVJAQCwvdG1wL3ZtaXMuUUZxZXpmL2luc3RhbGwvdm13YXJlLWluc3Rh bGxlci9saWIvbGliY29uZixnIC90bXAvdm1pcy5RRnFlemYvaW5zdGFsbC92bXdhcmUtaW5zdGFs bGVyL2xpYi9saWJjb25mL2V0Yy9ndGstMi4wL2dkay1waXhidWYubG9hZGVycworIGZvciBmaWxl IGluIGV0Yy9wYW5nby9wYW5nb3JjIGV0Yy9wYW5nby9wYW5nby5tb2R1bGVzIGV0Yy9wYW5nby9w YW5nb3guYWxpYXNlcyBldGMvZ3RrLTIuMC9nZGstcGl4YnVmLmxvYWRlcnMgZXRjL2d0ay0yLjAv Z3RrLmltbW9kdWxlcworIHNlZCAtaSAtZSBzLEBATElCQ09ORl9ESVJAQCwvdG1wL3ZtaXMuUUZx ZXpmL2luc3RhbGwvdm13YXJlLWluc3RhbGxlci9saWIvbGliY29uZixnIC90bXAvdm1pcy5RRnFl emYvaW5zdGFsbC92bXdhcmUtaW5zdGFsbGVyL2xpYi9saWJjb25mL2V0Yy9ndGstMi4wL2d0ay5p bW1vZHVsZXMKKyAvdG1wL3ZtaXMuUUZxZXpmL2luc3RhbGwvdm13YXJlLWluc3RhbGxlci92bXdh cmUtaW5zdGFsbGVyIC0tc2V0LXNldHRpbmcgdm13YXJlLWluc3RhbGxlciBsaWJjb25mIC90bXAv dm1pcy5RRnFlemYvaW5zdGFsbC92bXdhcmUtaW5zdGFsbGVyL2xpYi9saWJjb25mIC0taW5zdGFs bC1jb21wb25lbnQgL3RtcC92bWlzLlFGcWV6Zi9pbnN0YWxsL3Ztd2FyZS1pbnN0YWxsZXIgLS1p bnN0YWxsLWJ1bmRsZSAvaG9tZS9WaXJ0dWFsTWFjaGluZXMvVk13YXJlLVBsYXllci0zLjEuMC0y NjEwMjQuaTM4Ni5idW5kbGUgJycKVXNlciBpbnRlcmZhY2UgaW5pdGlhbGl6YXRpb24gZmFpbGVk LiAgRXhpdGluZy4gIENoZWNrIHRoZSBsb2cgZm9yIGRldGFpbHMuCm9uX2V4aXQKKyBvbl9leGl0 CisgJ1snIC1lIC90bXAvdm1pcy5RRnFlemYgLWEgLXogJycgJ10nCisgcm0gLXJmIC90bXAvdm1p cy5RRnFlemYKKyAnWycgLWUgL3RtcC92bWlzLmNSU2UzSCAtYSAteiAnJyAnXScKKyBybSAtcmYg L3RtcC92bWlzLmNSU2UzSAoK --0015174bf18688a8f4048d63cced--