From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18125 invoked by alias); 7 Jul 2011 15:03:12 -0000 Received: (qmail 18076 invoked by uid 22791); 7 Jul 2011 15:03:07 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_AV X-Spam-Check-By: sourceware.org Received: from mail-qw0-f47.google.com (HELO mail-qw0-f47.google.com) (209.85.216.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 07 Jul 2011 15:02:49 +0000 Received: by qwh5 with SMTP id 5so572825qwh.20 for ; Thu, 07 Jul 2011 08:02:48 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.27.198 with SMTP id j6mr698162qcc.10.1310050968413; Thu, 07 Jul 2011 08:02:48 -0700 (PDT) Received: by 10.229.71.157 with HTTP; Thu, 7 Jul 2011 08:02:48 -0700 (PDT) In-Reply-To: References: <20110605195441.GA1225@intel.com> <20110705143920.GA25294@intel.com> Date: Thu, 07 Jul 2011 15:10:00 -0000 Message-ID: Subject: Re: PATCH [1/n] X32: Add initial -x32 support From: "H.J. Lu" To: Paolo Bonzini , Uros Bizjak Cc: Richard Guenther , DJ Delorie , Alexandre Oliva , Ralf Wildenhues , neroden@gcc.gnu.org, gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary=001636426d059c270104a77c0253 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-07/txt/msg00488.txt.bz2 --001636426d059c270104a77c0253 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2399 On Thu, Jul 7, 2011 at 6:21 AM, Paolo Bonzini wrote: > Did you even _think_ of looking at the sh configury, and do something > vaguely similar for x86? > > You should not duplicate t-linux64 at all. =A0Instead, in config.gcc set > m64/m32 as the default value for with_multilib_list on i386 biarch and > x86_64. =A0Pass $with_multilib_list to t-linux64 using > TM_MULTILIB_CONFIG. =A0Then, do something like > > comma=3D, > MULTILIB_OPTIONS =A0 =A0=3D $(subst $(comma),/,@TM_MULTILIB_CONFIG@) > MULTILIB_DIRNAMES =A0 =3D $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTION= S))) > MULTILIB_OSDIRNAMES =A0=3D 64=3D../lib64 > MULTILIB_OSDIRNAMES +=3D 32=3D$(if $(wildcard $(shell echo > $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) > MULTILIB_OSDIRNAMES +=3D x32=3D../libx32 > > in config/t-linux64. =A0(Each on one line, apologies for any wrapping) > > The option will be used as --with-multilib-list=3Dm64,m32,mx32 (allowing > the user to omit some of the variants, too). > This is an excellent suggestion. Here is the updated patch. It uses TM_MULTILIB_CONFIG and removes config/i386/t-linux-x32. Uros, is this OK for trunk to replace the patch you approved earlier? Thanks. --=20 H.J. --- 2011-07-07 H.J. Lu * config.gcc: Support --with-multilib-list for x86 Linux targets. * configure.ac: Mention x86-64 for --with-multilib-list. * configure: Regenerated. * config/i386/gnu-user64.h (SPEC_64): Support x32. (SPEC_32): Likewise. (ASM_SPEC): Likewise. (LINK_SPEC): Likewise. (TARGET_THREAD_SSP_OFFSET): Likewise. (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise. (SPEC_X32): New. * config/i386/i386.h (TARGET_X32): New. (TARGET_LP64): New. (LONG_TYPE_SIZE): Likewise. (POINTER_SIZE): Likewise. (POINTERS_EXTEND_UNSIGNED): Likewise. (OPT_ARCH64): Support x32. (OPT_ARCH32): Likewise. * config/i386/i386.opt (mx32): New. * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New. (GLIBC_DYNAMIC_LINKERX32): Likewise. * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise. (GLIBC_DYNAMIC_LINKERX32): Likewise. * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New. (BIONIC_DYNAMIC_LINKERX32): Likewise. (GNU_USER_DYNAMIC_LINKERX32): Likewise. * config/i386/t-linux64: Support TM_MULTILIB_CONFIG. * doc/install.texi: Document --with-multilib-list for Linux/x86-64. * doc/invoke.texi: Document -mx32. --001636426d059c270104a77c0253 Content-Type: text/plain; charset=US-ASCII; name="gcc-x32-5.patch" Content-Disposition: attachment; filename="gcc-x32-5.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gptug1fa0 Content-length: 20118 MjAxMS0wNy0wNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoK CSogY29uZmlnLmdjYzogU3VwcG9ydCAtLXdpdGgtbXVsdGlsaWItbGlzdCBm b3IgeDg2IExpbnV4Cgl0YXJnZXRzLgoKCSogY29uZmlndXJlLmFjOiBNZW50 aW9uIHg4Ni02NCBmb3IgLS13aXRoLW11bHRpbGliLWxpc3QuCgkqIGNvbmZp Z3VyZTogUmVnZW5lcmF0ZWQuCgoJKiBjb25maWcvaTM4Ni9nbnUtdXNlcjY0 LmggKFNQRUNfNjQpOiBTdXBwb3J0IHgzMi4KCShTUEVDXzMyKTogTGlrZXdp c2UuCgkoQVNNX1NQRUMpOiBMaWtld2lzZS4KCShMSU5LX1NQRUMpOiBMaWtl d2lzZS4KCShUQVJHRVRfVEhSRUFEX1NTUF9PRkZTRVQpOiBMaWtld2lzZS4K CShUQVJHRVRfVEhSRUFEX1NQTElUX1NUQUNLX09GRlNFVCk6IExpa2V3aXNl LgoJKFNQRUNfWDMyKTogTmV3LgoKCSogY29uZmlnL2kzODYvaTM4Ni5oIChU QVJHRVRfWDMyKTogTmV3LgoJKFRBUkdFVF9MUDY0KTogTmV3LgoJKExPTkdf VFlQRV9TSVpFKTogTGlrZXdpc2UuCgkoUE9JTlRFUl9TSVpFKTogTGlrZXdp c2UuCgkoUE9JTlRFUlNfRVhURU5EX1VOU0lHTkVEKTogTGlrZXdpc2UuCgko T1BUX0FSQ0g2NCk6IFN1cHBvcnQgeDMyLgoJKE9QVF9BUkNIMzIpOiBMaWtl d2lzZS4KCgkqIGNvbmZpZy9pMzg2L2kzODYub3B0IChteDMyKTogTmV3LgoK CSogY29uZmlnL2kzODYva2ZyZWVic2QtZ251NjQuaCAoR05VX1VTRVJfTElO S19FTVVMQVRJT05YMzIpOiBOZXcuCgkoR0xJQkNfRFlOQU1JQ19MSU5LRVJY MzIpOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvbGludXg2NC5oIChHTlVf VVNFUl9MSU5LX0VNVUxBVElPTlgzMik6IExpa2V3aXNlLgoJKEdMSUJDX0RZ TkFNSUNfTElOS0VSWDMyKTogTGlrZXdpc2UuCgoJKiBjb25maWcvbGludXgu aCAoVUNMSUJDX0RZTkFNSUNfTElOS0VSWDMyKTogTmV3LgoJKEJJT05JQ19E WU5BTUlDX0xJTktFUlgzMik6IExpa2V3aXNlLgoJKEdOVV9VU0VSX0RZTkFN SUNfTElOS0VSWDMyKTogTGlrZXdpc2UuCgoJKiBjb25maWcvaTM4Ni90LWxp bnV4NjQ6IFN1cHBvcnQgVE1fTVVMVElMSUJfQ09ORklHLgoKCSogZG9jL2lu c3RhbGwudGV4aTogRG9jdW1lbnQgLS13aXRoLW11bHRpbGliLWxpc3QgZm9y CglMaW51eC94ODYtNjQuCgoJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50 IC1teDMyLgoKZGlmZiAtLWdpdCBhL2djYy9jb25maWcuZ2NjIGIvZ2NjL2Nv bmZpZy5nY2MKaW5kZXggYzc3ZjQwYi4uNDQ5NDA5ZSAxMDA2NDQKLS0tIGEv Z2NjL2NvbmZpZy5nY2MKKysrIGIvZ2NjL2NvbmZpZy5nY2MKQEAgLTEyODAs NiArMTI4MCwyMiBAQCBpWzM0NTY3XTg2LSotbGludXgqIHwgaVszNDU2N104 Ni0qLWtmcmVlYnNkKi1nbnUgfCBpWzM0NTY3XTg2LSota25ldGJzZCotZ251 IHwgaQogCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBpMzg2L3g4Ni02NC5oIGkz ODYvZ251LXVzZXI2NC5oIGkzODYvbGludXg2NC5oIgogCQkJdG1fZGVmaW5l cz0iJHt0bV9kZWZpbmVzfSBUQVJHRVRfQklfQVJDSD0xIgogCQkJdG1ha2Vf ZmlsZT0iJHt0bWFrZV9maWxlfSBpMzg2L3QtbGludXg2NCIKKwkJCXg4Nl9t dWx0aWxpYnM9IiR7d2l0aF9tdWx0aWxpYl9saXN0fSIKKwkJCWlmIHRlc3Qg IiR4ODZfbXVsdGlsaWJzIiA9ICJkZWZhdWx0IjsgdGhlbgorCQkJCXg4Nl9t dWx0aWxpYnM9Im02NCxtMzIiCisJCQlmaQorCQkJeDg2X211bHRpbGlicz1g ZWNobyAkeDg2X211bHRpbGlicyB8IHNlZCAtZSAncy8sLyAvZydgCisJCQlm b3IgeDg2X211bHRpbGliIGluICR7eDg2X211bHRpbGlic307IGRvCisJCQkJ Y2FzZSAke3g4Nl9tdWx0aWxpYn0gaW4KKwkJCQltMzIgfCBtNjQgfCBteDMy KQorCQkJCQlUTV9NVUxUSUxJQl9DT05GSUc9IiR7VE1fTVVMVElMSUJfQ09O RklHfSwke3g4Nl9tdWx0aWxpYn0iCisJCQkJCTs7CisJCQkJKikKKwkJCQkJ ZWNobyAiLS13aXRoLW11bHRpbGliLWxpc3Q9JHt4ODZfd2l0aF9tdWx0aWxp Yn0gbm90IHN1cHBvcnRlZC4iCisJCQkJCWV4aXQgMQorCQkJCWVzYWMKKwkJ CWRvbmUKKwkJCVRNX01VTFRJTElCX0NPTkZJRz1gZWNobyAkVE1fTVVMVElM SUJfQ09ORklHIHwgc2VkICdzL14sLy8nYAogCQkJbmVlZF82NGJpdF9od2lu dD15ZXMKIAkJCW5lZWRfNjRiaXRfaXNhPXllcwogCQkJY2FzZSBYIiR7d2l0 aF9jcHV9IiBpbgpAQCAtMTMxOCw2ICsxMzM0LDIyIEBAIHg4Nl82NC0qLWxp bnV4KiB8IHg4Nl82NC0qLWtmcmVlYnNkKi1nbnUgfCB4ODZfNjQtKi1rbmV0 YnNkKi1nbnUpCiAJeDg2XzY0LSota25ldGJzZCotZ251KSB0bV9maWxlPSIk e3RtX2ZpbGV9IGtuZXRic2QtZ251LmgiIDs7CiAJZXNhYwogCXRtYWtlX2Zp bGU9IiR7dG1ha2VfZmlsZX0gaTM4Ni90LWxpbnV4NjQgaTM4Ni90LWNydHN0 dWZmIGkzODYvdC1jcnRwYyBpMzg2L3QtY3J0Zm0gdC1kZnBydWxlcyIKKwl4 ODZfbXVsdGlsaWJzPSIke3dpdGhfbXVsdGlsaWJfbGlzdH0iCisJaWYgdGVz dCAiJHg4Nl9tdWx0aWxpYnMiID0gImRlZmF1bHQiOyB0aGVuCisJCXg4Nl9t dWx0aWxpYnM9Im02NCxtMzIiCisJZmkKKwl4ODZfbXVsdGlsaWJzPWBlY2hv ICR4ODZfbXVsdGlsaWJzIHwgc2VkIC1lICdzLywvIC9nJ2AKKwlmb3IgeDg2 X211bHRpbGliIGluICR7eDg2X211bHRpbGlic307IGRvCisJCWNhc2UgJHt4 ODZfbXVsdGlsaWJ9IGluCisJCW0zMiB8IG02NCB8IG14MzIpCisJCQlUTV9N VUxUSUxJQl9DT05GSUc9IiR7VE1fTVVMVElMSUJfQ09ORklHfSwke3g4Nl9t dWx0aWxpYn0iCisJCQk7OworCQkqKQorCQkJZWNobyAiLS13aXRoLW11bHRp bGliLWxpc3Q9JHt4ODZfd2l0aF9tdWx0aWxpYn0gbm90IHN1cHBvcnRlZC4i CisJCQlleGl0IDEKKwkJZXNhYworCWRvbmUKKwlUTV9NVUxUSUxJQl9DT05G SUc9YGVjaG8gJFRNX01VTFRJTElCX0NPTkZJRyB8IHNlZCAncy9eLC8vJ2AK IAk7OwogaVszNDU2N104Ni1wYy1tc2Rvc2RqZ3BwKikKIAl4bV9maWxlPWkz ODYveG0tZGpncHAuaApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L2du dS11c2VyNjQuaCBiL2djYy9jb25maWcvaTM4Ni9nbnUtdXNlcjY0LmgKaW5k ZXggYjA2OTk3NS4uOTU0ZjNiMiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9p Mzg2L2dudS11c2VyNjQuaAorKysgYi9nY2MvY29uZmlnL2kzODYvZ251LXVz ZXI2NC5oCkBAIC01OCwyNSArNTgsMzEgQEAgc2VlIHRoZSBmaWxlcyBDT1BZ SU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5v dCwgc2VlCiAKICNpZiBUQVJHRVRfNjRCSVRfREVGQVVMVAogI2RlZmluZSBT UEVDXzMyICJtMzIiCi0jZGVmaW5lIFNQRUNfNjQgIiFtMzIiCisjZGVmaW5l IFNQRUNfNjQgIm0zMnxteDMyOjsiCisjZGVmaW5lIFNQRUNfWDMyICJteDMy IgogI2Vsc2UKLSNkZWZpbmUgU1BFQ18zMiAiIW02NCIKKyNkZWZpbmUgU1BF Q18zMiAibTY0fG14MzI6OyIKICNkZWZpbmUgU1BFQ182NCAibTY0IgorI2Rl ZmluZSBTUEVDX1gzMiAibXgzMiIKICNlbmRpZgogCiAjdW5kZWYgQVNNX1NQ RUMKLSNkZWZpbmUgQVNNX1NQRUMgIiV7IiBTUEVDXzMyICI6LS0zMn0gJXsi IFNQRUNfNjQgIjotLTY0fSBcCisjZGVmaW5lIEFTTV9TUEVDICIleyIgU1BF Q18zMiAiOi0tMzJ9IFwKKyAleyIgU1BFQ182NCAiOi0tNjR9IFwKKyAleyIg U1BFQ19YMzIgIjotLXgzMn0gXAogICV7IW1uby1zc2UyYXZ4OiV7bWF2eDot bXNzZTJhdnh9fSAle21zc2UyYXZ4OiV7IW1hdng6LW1zc2UyYXZ4fX0iCiAK ICN1bmRlZglMSU5LX1NQRUMKICNkZWZpbmUgTElOS19TUEVDICIleyIgU1BF Q182NCAiOi1tICIgR05VX1VTRVJfTElOS19FTVVMQVRJT042NCAifSBcCiAg ICAgICAgICAgICAgICAgICAgJXsiIFNQRUNfMzIgIjotbSAiIEdOVV9VU0VS X0xJTktfRU1VTEFUSU9OMzIgIn0gXAorICAgICAgICAgICAgICAgICAgICV7 IiBTUEVDX1gzMiAiOi1tICIgR05VX1VTRVJfTElOS19FTVVMQVRJT05YMzIg In0gXAogICAle3NoYXJlZDotc2hhcmVkfSBcCiAgICV7IXNoYXJlZDogXAog ICAgICV7IXN0YXRpYzogXAogICAgICAgJXtyZHluYW1pYzotZXhwb3J0LWR5 bmFtaWN9IFwKICAgICAgICV7IiBTUEVDXzMyICI6LWR5bmFtaWMtbGlua2Vy ICIgR05VX1VTRVJfRFlOQU1JQ19MSU5LRVIzMiAifSBcCi0gICAgICAleyIg U1BFQ182NCAiOi1keW5hbWljLWxpbmtlciAiIEdOVV9VU0VSX0RZTkFNSUNf TElOS0VSNjQgIn19IFwKKyAgICAgICV7IiBTUEVDXzY0ICI6LWR5bmFtaWMt bGlua2VyICIgR05VX1VTRVJfRFlOQU1JQ19MSU5LRVI2NCAifSBcCisgICAg ICAleyIgU1BFQ19YMzIgIjotZHluYW1pYy1saW5rZXIgIiBHTlVfVVNFUl9E WU5BTUlDX0xJTktFUlgzMiAifX0gXAogICAgICV7c3RhdGljOi1zdGF0aWN9 fSIKIAogLyogU2ltaWxhciB0byBzdGFuZGFyZCBHTlUgdXNlcnNwYWNlLCBi dXQgYWRkaW5nIC1mZmFzdC1tYXRoIHN1cHBvcnQuICAqLwpAQCAtMTEwLDEw ICsxMTYsMTMgQEAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlO Ry5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCiAKICNpZmRl ZiBUQVJHRVRfTElCQ19QUk9WSURFU19TU1AKIC8qIGkzODYgZ2xpYmMgcHJv dmlkZXMgX19zdGFja19jaGtfZ3VhcmQgaW4gJWdzOjB4MTQsCisgICB4MzIg Z2xpYmMgcHJvdmlkZXMgaXQgaW4gJWZzOjB4MTguIAogICAgeDg2XzY0IGds aWJjIHByb3ZpZGVzIGl0IGluICVmczoweDI4LiAgKi8KLSNkZWZpbmUgVEFS R0VUX1RIUkVBRF9TU1BfT0ZGU0VUCShUQVJHRVRfNjRCSVQgPyAweDI4IDog MHgxNCkKKyNkZWZpbmUgVEFSR0VUX1RIUkVBRF9TU1BfT0ZGU0VUIFwKKyAg KFRBUkdFVF82NEJJVCA/IChUQVJHRVRfWDMyID8gMHgxOCA6IDB4MjgpIDog MHgxNCkKIAogLyogV2Ugc3RlYWwgdGhlIGxhc3QgdHJhbnNhY3Rpb25hbCBt ZW1vcnkgd29yZC4gICovCiAjZGVmaW5lIFRBUkdFVF9DQU5fU1BMSVRfU1RB Q0sKLSNkZWZpbmUgVEFSR0VUX1RIUkVBRF9TUExJVF9TVEFDS19PRkZTRVQg KFRBUkdFVF82NEJJVCA/IDB4NzAgOiAweDMwKQorI2RlZmluZSBUQVJHRVRf VEhSRUFEX1NQTElUX1NUQUNLX09GRlNFVCBcCisgIChUQVJHRVRfNjRCSVQg PyAoVEFSR0VUX1gzMiA/IDB4NDAgOiAweDcwKSA6IDB4MzApCiAjZW5kaWYK ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LmggYi9nY2MvY29u ZmlnL2kzODYvaTM4Ni5oCmluZGV4IGExYWM2YjYuLjhjZWY0ZTcgMTAwNjQ0 Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9pMzg2LmgKKysrIGIvZ2NjL2NvbmZp Zy9pMzg2L2kzODYuaApAQCAtNDIsNiArNDIsNyBAQCBzZWUgdGhlIGZpbGVz IENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAg SWYgbm90LCBzZWUKIC8qIFJlZGVmaW5lcyBmb3Igb3B0aW9uIG1hY3Jvcy4g ICovCiAKICNkZWZpbmUgVEFSR0VUXzY0QklUCU9QVElPTl9JU0FfNjRCSVQK KyNkZWZpbmUgVEFSR0VUX1gzMglPUFRJT05fSVNBX1gzMgogI2RlZmluZSBU QVJHRVRfTU1YCU9QVElPTl9JU0FfTU1YCiAjZGVmaW5lIFRBUkdFVF8zRE5P VwlPUFRJT05fSVNBXzNETk9XCiAjZGVmaW5lIFRBUkdFVF8zRE5PV19BCU9Q VElPTl9JU0FfM0ROT1dfQQpAQCAtNzIsNiArNzMsNyBAQCBzZWUgdGhlIGZp bGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2ZWx5 LiAgSWYgbm90LCBzZWUKICNkZWZpbmUgVEFSR0VUX1JEUk5ECU9QVElPTl9J U0FfUkRSTkQKICNkZWZpbmUgVEFSR0VUX0YxNkMJT1BUSU9OX0lTQV9GMTZD CiAKKyNkZWZpbmUgVEFSR0VUX0xQNjQJKFRBUkdFVF82NEJJVCAmJiAhVEFS R0VUX1gzMikKIAogLyogU1NFNC4xIGRlZmluZXMgcm91bmQgaW5zdHJ1Y3Rp b25zICovCiAjZGVmaW5lCU9QVElPTl9NQVNLX0lTQV9ST1VORAlPUFRJT05f TUFTS19JU0FfU1NFNF8xCkBAIC01MTYsOCArNTE4LDggQEAgZXh0ZXJuIGNv bnN0IGNoYXIgKmhvc3RfZGV0ZWN0X2xvY2FsX2NwdSAoaW50IGFyZ2MsIGNv bnN0IGNoYXIgKiphcmd2KTsKICNkZWZpbmUgT1BUX0FSQ0g2NCAiIW0zMiIK ICNkZWZpbmUgT1BUX0FSQ0gzMiAibTMyIgogI2Vsc2UKLSNkZWZpbmUgT1BU X0FSQ0g2NCAibTY0IgotI2RlZmluZSBPUFRfQVJDSDMyICIhbTY0IgorI2Rl ZmluZSBPUFRfQVJDSDY0ICJtNjR8bXgzMiIKKyNkZWZpbmUgT1BUX0FSQ0gz MiAibTY0fG14MzI6OyIKICNlbmRpZgogCiAvKiBTdXBwb3J0IGZvciBjb25m aWd1cmUtdGltZSBkZWZhdWx0cyBvZiBzb21lIGNvbW1hbmQgbGluZSBvcHRp b25zLgpAQCAtNjM3LDYgKzYzOSw4IEBAIGVudW0gdGFyZ2V0X2NwdV9kZWZh dWx0CiAKICNkZWZpbmUgU0hPUlRfVFlQRV9TSVpFIDE2CiAjZGVmaW5lIElO VF9UWVBFX1NJWkUgMzIKKyNkZWZpbmUgTE9OR19UWVBFX1NJWkUgKFRBUkdF VF9YMzIgPyAzMiA6IEJJVFNfUEVSX1dPUkQpCisjZGVmaW5lIFBPSU5URVJf U0laRSAoVEFSR0VUX1gzMiA/IDMyIDogQklUU19QRVJfV09SRCkKICNkZWZp bmUgTE9OR19MT05HX1RZUEVfU0laRSA2NAogI2RlZmluZSBGTE9BVF9UWVBF X1NJWkUgMzIKICNkZWZpbmUgRE9VQkxFX1RZUEVfU0laRSA2NApAQCAtMTc0 Miw2ICsxNzQ2LDEzIEBAIGRvIHsJCQkJCQkJXAogICAgYmV0d2VlbiBwb2lu dGVycyBhbmQgYW55IG90aGVyIG9iamVjdHMgb2YgdGhpcyBtYWNoaW5lIG1v ZGUuICAqLwogI2RlZmluZSBQbW9kZSAoVEFSR0VUXzY0QklUID8gREltb2Rl IDogU0ltb2RlKQogCisvKiBBIEMgZXhwcmVzc2lvbiB3aG9zZSB2YWx1ZSBp cyB6ZXJvIGlmIHBvaW50ZXJzIHRoYXQgbmVlZCB0byBiZSBleHRlbmRlZAor ICAgZnJvbSBiZWluZyBgUE9JTlRFUl9TSVpFJyBiaXRzIHdpZGUgdG8gYFBt b2RlJyBhcmUgc2lnbi1leHRlbmRlZCBhbmQKKyAgIGdyZWF0ZXIgdGhlbiB6 ZXJvIGlmIHRoZXkgYXJlIHplcm8tZXh0ZW5kZWQgYW5kIGxlc3MgdGhlbiB6 ZXJvIGlmIHRoZQorICAgcHRyX2V4dGVuZCBpbnN0cnVjdGlvbiBzaG91bGQg YmUgdXNlZC4gICovCisKKyNkZWZpbmUgUE9JTlRFUlNfRVhURU5EX1VOU0lH TkVEIDEKKwogLyogQSBmdW5jdGlvbiBhZGRyZXNzIGluIGEgY2FsbCBpbnN0 cnVjdGlvbgogICAgaXMgYSBieXRlIGFkZHJlc3MgKGZvciBpbmRleGluZyBw dXJwb3NlcykKICAgIHNvIGdpdmUgdGhlIE1FTSBydHggYSBieXRlJ3MgbW9k ZS4gICovCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5vcHQg Yi9nY2MvY29uZmlnL2kzODYvaTM4Ni5vcHQKaW5kZXggOTg4NmI3Yi4uOGRl YTkzZSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYub3B0Cisr KyBiL2djYy9jb25maWcvaTM4Ni9pMzg2Lm9wdApAQCAtMzk4LDkgKzM5OCwx MyBAQCBUYXJnZXQgUmVqZWN0TmVnYXRpdmUgTmVnYXRpdmUobTY0KSBSZXBv cnQgSW52ZXJzZU1hc2soSVNBXzY0QklUKSBWYXIoaXg4Nl9pc2FfZgogR2Vu ZXJhdGUgMzJiaXQgaTM4NiBjb2RlCiAKIG02NAotVGFyZ2V0IFJlamVjdE5l Z2F0aXZlIE5lZ2F0aXZlKG0zMikgUmVwb3J0IE1hc2soSVNBXzY0QklUKSBW YXIoaXg4Nl9pc2FfZmxhZ3MpIFNhdmUKK1RhcmdldCBSZWplY3ROZWdhdGl2 ZSBOZWdhdGl2ZShteDMyKSBSZXBvcnQgTWFzayhJU0FfNjRCSVQpIFZhcihp eDg2X2lzYV9mbGFncykgU2F2ZQogR2VuZXJhdGUgNjRiaXQgeDg2LTY0IGNv ZGUKIAorbXgzMgorVGFyZ2V0IFJlamVjdE5lZ2F0aXZlIE5lZ2F0aXZlKG0z MikgUmVwb3J0IE1hc2soSVNBX1gzMikgVmFyKGl4ODZfaXNhX2ZsYWdzKSBT YXZlCitHZW5lcmF0ZSAzMmJpdCB4ODYtNjQgY29kZQorCiBtbW14CiBUYXJn ZXQgUmVwb3J0IE1hc2soSVNBX01NWCkgVmFyKGl4ODZfaXNhX2ZsYWdzKSBT YXZlCiBTdXBwb3J0IE1NWCBidWlsdC1pbiBmdW5jdGlvbnMKZGlmZiAtLWdp dCBhL2djYy9jb25maWcvaTM4Ni9rZnJlZWJzZC1nbnU2NC5oIGIvZ2NjL2Nv bmZpZy9pMzg2L2tmcmVlYnNkLWdudTY0LmgKaW5kZXggYzM3OThhNS4uMjA4 NWNhNSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2tmcmVlYnNkLWdu dTY0LmgKKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2tmcmVlYnNkLWdudTY0LmgK QEAgLTIxLDYgKzIxLDggQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmls ZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKIAogI2RlZmluZSBHTlVfVVNFUl9M SU5LX0VNVUxBVElPTjMyICJlbGZfaTM4Nl9mYnNkIgogI2RlZmluZSBHTlVf VVNFUl9MSU5LX0VNVUxBVElPTjY0ICJlbGZfeDg2XzY0X2Zic2QiCisjZGVm aW5lIEdOVV9VU0VSX0xJTktfRU1VTEFUSU9OWDMyICJlbGYzMl94ODZfNjRf ZmJzZCIKIAogI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktFUjMyICIvbGli L2xkLnNvLjEiCiAjZGVmaW5lIEdMSUJDX0RZTkFNSUNfTElOS0VSNjQgIi9s aWIvbGQta2ZyZWVic2QteDg2LTY0LnNvLjEiCisjZGVmaW5lIEdMSUJDX0RZ TkFNSUNfTElOS0VSWDMyICIvbGliL2xkLWtmcmVlYnNkLXgzMi5zby4xIgpk aWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L2xpbnV4NjQuaCBiL2djYy9j b25maWcvaTM4Ni9saW51eDY0LmgKaW5kZXggNWQzMzIyNC4uNWIwYTIxMiAx MDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2xpbnV4NjQuaAorKysgYi9n Y2MvY29uZmlnL2kzODYvbGludXg2NC5oCkBAIC0yNiw2ICsyNiw4IEBAIHNl ZSB0aGUgZmlsZXMgQ09QWUlORzMgYW5kIENPUFlJTkcuUlVOVElNRSByZXNw ZWN0aXZlbHkuICBJZiBub3QsIHNlZQogCiAjZGVmaW5lIEdOVV9VU0VSX0xJ TktfRU1VTEFUSU9OMzIgImVsZl9pMzg2IgogI2RlZmluZSBHTlVfVVNFUl9M SU5LX0VNVUxBVElPTjY0ICJlbGZfeDg2XzY0IgorI2RlZmluZSBHTlVfVVNF Ul9MSU5LX0VNVUxBVElPTlgzMiAiZWxmMzJfeDg2XzY0IgogCiAjZGVmaW5l IEdMSUJDX0RZTkFNSUNfTElOS0VSMzIgIi9saWIvbGQtbGludXguc28uMiIK ICNkZWZpbmUgR0xJQkNfRFlOQU1JQ19MSU5LRVI2NCAiL2xpYjY0L2xkLWxp bnV4LXg4Ni02NC5zby4yIgorI2RlZmluZSBHTElCQ19EWU5BTUlDX0xJTktF UlgzMiAiL2xpYngzMi9sZC1saW51eC14MzIuc28uMiIKZGlmZiAtLWdpdCBh L2djYy9jb25maWcvaTM4Ni90LWxpbnV4NjQgYi9nY2MvY29uZmlnL2kzODYv dC1saW51eDY0CmluZGV4IDVkNWE0NzYuLmVhOGY1ZTkgMTAwNjQ0Ci0tLSBh L2djYy9jb25maWcvaTM4Ni90LWxpbnV4NjQKKysrIGIvZ2NjL2NvbmZpZy9p Mzg2L3QtbGludXg2NApAQCAtMSw0ICsxLDUgQEAKLSMgQ29weXJpZ2h0IChD KSAyMDAyLCAyMDA1LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorIyBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIwMDcs IDIwMDgsIDIwMTEKKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CiAjCiAjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdDQy4KICMKQEAgLTIzLDkg KzI0LDE5IEBACiAjIGl0IGRvZXNuJ3QgdGVsbCBhbnl0aGluZyBhYm91dCB0 aGUgMzJiaXQgbGlicmFyaWVzIG9uIHRob3NlIHN5c3RlbXMuICBTZXQKICMg TVVMVElMSUJfT1NESVJOQU1FUyBhY2NvcmRpbmcgdG8gd2hhdCBpcyBmb3Vu ZCBvbiB0aGUgdGFyZ2V0LgogCi1NVUxUSUxJQl9PUFRJT05TID0gbTY0L20z MgotTVVMVElMSUJfRElSTkFNRVMgPSA2NCAzMiAKLU1VTFRJTElCX09TRElS TkFNRVMgPSAuLi9saWI2NCAkKGlmICQod2lsZGNhcmQgJChzaGVsbCBlY2hv ICQoU1lTVEVNX0hFQURFUl9ESVIpKS8uLi8uLi91c3IvbGliMzIpLC4uL2xp YjMyLC4uL2xpYikKKyMgVG8gc3VwcG9ydCBpMzg2LCB4ODYtNjQgYW5kIHgz MiBsaWJyYXJpZXMsIHRoZSBkaXJlY3Rvcnkgc3RydWN0cnVlCisjIHNob3Vs ZCBiZToKKyMKKyMgCS9saWIgaGFzIGkzODYgbGlicmFyaWVzLgorIyAJL2xp YjY0IGhhcyB4ODYtNjQgbGlicmFyaWVzLgorIyAJL2xpYngzMiBoYXMgeDMy IGxpYnJhcmllcy4KKyMKK2NvbW1hPSwKK01VTFRJTElCX09QVElPTlMgICAg PSAkKHN1YnN0ICQoY29tbWEpLC8sJChUTV9NVUxUSUxJQl9DT05GSUcpKQor TVVMVElMSUJfRElSTkFNRVMgICA9ICQocGF0c3Vic3QgbSUsICUsICQoc3Vi c3QgLywgLCQoTVVMVElMSUJfT1BUSU9OUykpKQorTVVMVElMSUJfT1NESVJO QU1FUyA9IG02ND0uLi9saWI2NAorTVVMVElMSUJfT1NESVJOQU1FUys9IG0z Mj0kKGlmICQod2lsZGNhcmQgJChzaGVsbCBlY2hvICQoU1lTVEVNX0hFQURF Ul9ESVIpKS8uLi8uLi91c3IvbGliMzIpLC4uL2xpYjMyLC4uL2xpYikKK01V TFRJTElCX09TRElSTkFNRVMrPSBteDMyPS4uL2xpYngzMgogCiBMSUJHQ0Mg PSBzdG1wLW11bHRpbGliCiBJTlNUQUxMX0xJQkdDQyA9IGluc3RhbGwtbXVs dGlsaWIKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvbGludXguaCBiL2djYy9j b25maWcvbGludXguaAppbmRleCBmYzg5N2IxLi5kYmJlZWE1IDEwMDY0NAot LS0gYS9nY2MvY29uZmlnL2xpbnV4LmgKKysrIGIvZ2NjL2NvbmZpZy9saW51 eC5oCkBAIC03Nyw5ICs3NywxMSBAQCBzZWUgdGhlIGZpbGVzIENPUFlJTkcz IGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAgSWYgbm90LCBz ZWUKICNkZWZpbmUgVUNMSUJDX0RZTkFNSUNfTElOS0VSICIvbGliL2xkLXVD bGliYy5zby4wIgogI2RlZmluZSBVQ0xJQkNfRFlOQU1JQ19MSU5LRVIzMiAi L2xpYi9sZC11Q2xpYmMuc28uMCIKICNkZWZpbmUgVUNMSUJDX0RZTkFNSUNf TElOS0VSNjQgIi9saWIvbGQ2NC11Q2xpYmMuc28uMCIKKyNkZWZpbmUgVUNM SUJDX0RZTkFNSUNfTElOS0VSWDMyICIvbGliL2xkeDMyLXVDbGliYy5zby4w IgogI2RlZmluZSBCSU9OSUNfRFlOQU1JQ19MSU5LRVIgIi9zeXN0ZW0vYmlu L2xpbmtlciIKICNkZWZpbmUgQklPTklDX0RZTkFNSUNfTElOS0VSMzIgIi9z eXN0ZW0vYmluL2xpbmtlciIKICNkZWZpbmUgQklPTklDX0RZTkFNSUNfTElO S0VSNjQgIi9zeXN0ZW0vYmluL2xpbmtlcjY0IgorI2RlZmluZSBCSU9OSUNf RFlOQU1JQ19MSU5LRVJYMzIgIi9zeXN0ZW0vYmluL2xpbmtlcngzMiIKIAog I2RlZmluZSBHTlVfVVNFUl9EWU5BTUlDX0xJTktFUgkJCQkJCVwKICAgQ0hP T1NFX0RZTkFNSUNfTElOS0VSIChHTElCQ19EWU5BTUlDX0xJTktFUiwgVUNM SUJDX0RZTkFNSUNfTElOS0VSLAlcCkBAIC05MCw2ICs5Miw5IEBAIHNlZSB0 aGUgZmlsZXMgQ09QWUlORzMgYW5kIENPUFlJTkcuUlVOVElNRSByZXNwZWN0 aXZlbHkuICBJZiBub3QsIHNlZQogI2RlZmluZSBHTlVfVVNFUl9EWU5BTUlD X0xJTktFUjY0CQkJCQlcCiAgIENIT09TRV9EWU5BTUlDX0xJTktFUiAoR0xJ QkNfRFlOQU1JQ19MSU5LRVI2NCwgVUNMSUJDX0RZTkFNSUNfTElOS0VSNjQs IFwKIAkJCSBCSU9OSUNfRFlOQU1JQ19MSU5LRVI2NCkKKyNkZWZpbmUgR05V X1VTRVJfRFlOQU1JQ19MSU5LRVJYMzIJCQkJCVwKKyAgQ0hPT1NFX0RZTkFN SUNfTElOS0VSIChHTElCQ19EWU5BTUlDX0xJTktFUlgzMiwgVUNMSUJDX0RZ TkFNSUNfTElOS0VSWDMyLCBcCisJCQkgQklPTklDX0RZTkFNSUNfTElOS0VS WDMyKQogCiAvKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZW50aXJlIGM5OSBy dW50aW1lCiAgICBpcyBwcmVzZW50IGluIHRoZSBydW50aW1lIGxpYnJhcnku ICAqLwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZ3VyZS5hYyBiL2djYy9jb25m aWd1cmUuYWMKaW5kZXggNWYzNjQxYi4uYTczZjc1OCAxMDA2NDQKLS0tIGEv Z2NjL2NvbmZpZ3VyZS5hYworKysgYi9nY2MvY29uZmlndXJlLmFjCkBAIC03 OTUsNyArNzk1LDcgQEAgZXNhY10sCiBbZW5hYmxlX2xhbmd1YWdlcz1jXSkK IAogQUNfQVJHX1dJVEgobXVsdGlsaWItbGlzdCwKLVtBU19IRUxQX1NUUklO RyhbLS13aXRoLW11bHRpbGliLWxpc3RdLCBbc2VsZWN0IG11bHRpbGlicyAo U0ggb25seSldKV0sCitbQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1tdWx0aWxp Yi1saXN0XSwgW3NlbGVjdCBtdWx0aWxpYnMgKFNIIGFuZCB4ODYtNjQgb25s eSldKV0sCiA6LAogd2l0aF9tdWx0aWxpYl9saXN0PWRlZmF1bHQpCiAKZGlm ZiAtLWdpdCBhL2djYy9kb2MvaW5zdGFsbC50ZXhpIGIvZ2NjL2RvYy9pbnN0 YWxsLnRleGkKaW5kZXggNzhhNmVlOC4uZjE0YmEwYiAxMDA2NDQKLS0tIGEv Z2NjL2RvYy9pbnN0YWxsLnRleGkKKysrIGIvZ2NjL2RvYy9pbnN0YWxsLnRl eGkKQEAgLTEwNDksOCArMTA0OSwxMCBAQCBzeXN2LCBhaXguCiBAaXRlbSAt LXdpdGgtbXVsdGlsaWItbGlzdD1AdmFye2xpc3R9CiBAaXRlbXggLS13aXRo b3V0LW11bHRpbGliLWxpc3QKIFNwZWNpZnkgd2hhdCBtdWx0aWxpYnMgdG8g YnVpbGQuCi1DdXJyZW50bHkgb25seSBpbXBsZW1lbnRlZCBmb3Igc2gqLSot Ki4KK0N1cnJlbnRseSBvbmx5IGltcGxlbWVudGVkIGZvciBzaCotKi0qIGFu ZCB4ODYtNjQtKi1saW51eCouCiAKK0B0YWJsZSBAY29kZQorQGl0ZW0gc2gq LSotKgogQHZhcntsaXN0fSBpcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9m IENQVSBuYW1lcy4gIFRoZXNlIG11c3QgYmUgb2YgdGhlCiBmb3JtIEBjb2Rl e3NoKn0gb3IgQGNvZGV7bSp9IChpbiB3aGljaCBjYXNlIHRoZXkgbWF0Y2gg dGhlIGNvbXBpbGVyIG9wdGlvbgogZm9yIHRoYXQgcHJvY2Vzc29yKS4gIFRo ZSBsaXN0IHNob3VsZCBub3QgY29udGFpbiBhbnkgZW5kaWFuIG9wdGlvbnMg LQpAQCAtMTA4Miw2ICsxMDg0LDE2IEBAIG9ubHkgbGl0dGxlIGVuZGlhbiBT SDRBTDoKIC0td2l0aC1tdWx0aWxpYi1saXN0PXNoNGFsLCFtYi9tNGFsCiBA ZW5kIHNtYWxsZXhhbXBsZQogCitAaXRlbSB4ODYtNjQtKi1saW51eCoKK0B2 YXJ7bGlzdH0gaXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBAY29kZXtt MzJ9LCBAY29kZXttNjR9IGFuZAorQGNvZGV7bXgzMn0gdG8gZW5hYmxlIDMy LWJpdCwgNjQtYml0IGFuZCB4MzIgcnVuLXRpbWUgbGlicmFyaWVzLAorcmVz cGVjdGl2ZWx5LiAgSWYgQHZhcntsaXN0fSBpcyBlbXB0eSwgdGhlbiB0aGVy ZSB3aWxsIGJlIG5vIG11bHRpbGlicworYW5kIG9ubHkgdGhlIGRlZmF1bHQg cnVuLXRpbWUgbGlicmFyeSB3aWxsIGJlIGVuYWJsZWQuCisKK0lmIEBvcHRp b257LS13aXRoLW11bHRpbGliLWxpc3R9IGlzIG5vdCBnaXZlbiwgdGhlbiBv bmx5IDMyLWJpdCBhbmQKKzY0LWJpdCBydW4tdGltZSBsaWJyYXJpZXMgd2ls bCBiZSBlbmFibGVkLgorQGVuZCB0YWJsZQorCiBAaXRlbSAtLXdpdGgtZW5k aWFuPUB2YXJ7ZW5kaWFuc30KIFNwZWNpZnkgd2hhdCBlbmRpYW5zIHRvIHVz ZS4KIEN1cnJlbnRseSBvbmx5IGltcGxlbWVudGVkIGZvciBzaCotKi0qLgpk aWZmIC0tZ2l0IGEvZ2NjL2RvYy9pbnZva2UudGV4aSBiL2djYy9kb2MvaW52 b2tlLnRleGkKaW5kZXggMWZjNDAzOC4uZmQ2NzExYyAxMDA2NDQKLS0tIGEv Z2NjL2RvYy9pbnZva2UudGV4aQorKysgYi9nY2MvZG9jL2ludm9rZS50ZXhp CkBAIC02MTAsNyArNjEwLDcgQEAgT2JqZWN0aXZlLUMgYW5kIE9iamVjdGl2 ZS1DKysgRGlhbGVjdHN9LgogLW1wYzMyIC1tcGM2NCAtbXBjODAgLW1zdGFj a3JlYWxpZ24gQGdvbAogLW1vbWl0LWxlYWYtZnJhbWUtcG9pbnRlciAgLW1u by1yZWQtem9uZSAtbW5vLXRscy1kaXJlY3Qtc2VnLXJlZnMgQGdvbAogLW1j bW9kZWw9QHZhcntjb2RlLW1vZGVsfSAtbWFiaT1AdmFye25hbWV9IEBnb2wK LS1tMzIgIC1tNjQgLW1sYXJnZS1kYXRhLXRocmVzaG9sZD1AdmFye251bX0g QGdvbAorLW0zMiAtbTY0IC1teDMyIC1tbGFyZ2UtZGF0YS10aHJlc2hvbGQ9 QHZhcntudW19IEBnb2wKIC1tc3NlMmF2eCAtbWZlbnRyeSAtbThiaXQtaWRp diBAZ29sCiAtbWF2eDI1Ni1zcGxpdC11bmFsaWduZWQtbG9hZCAtbWF2eDI1 Ni1zcGxpdC11bmFsaWduZWQtc3RvcmV9CiAKQEAgLTEyODUxLDE1ICsxMjg1 MSwxOSBAQCBvbiBBTUQgeDg2LTY0IHByb2Nlc3NvcnMgaW4gNjQtYml0IGVu dmlyb25tZW50cy4KIEB0YWJsZSBAZ2NjdGFib3B0CiBAaXRlbSAtbTMyCiBA aXRlbXggLW02NAorQGl0ZW14IC1teDMyCiBAb3BpbmRleCBtMzIKIEBvcGlu ZGV4IG02NAorQG9waW5kZXggbXgzMgogR2VuZXJhdGUgY29kZSBmb3IgYSAz Mi1iaXQgb3IgNjQtYml0IGVudmlyb25tZW50LgotVGhlIDMyLWJpdCBlbnZp cm9ubWVudCBzZXRzIGludCwgbG9uZyBhbmQgcG9pbnRlciB0byAzMiBiaXRz IGFuZAorVGhlIEBvcHRpb257LW0zMn0gb3B0aW9uIHNldHMgaW50LCBsb25n IGFuZCBwb2ludGVyIHRvIDMyIGJpdHMgYW5kCiBnZW5lcmF0ZXMgY29kZSB0 aGF0IHJ1bnMgb24gYW55IGkzODYgc3lzdGVtLgotVGhlIDY0LWJpdCBlbnZp cm9ubWVudCBzZXRzIGludCB0byAzMiBiaXRzIGFuZCBsb25nIGFuZCBwb2lu dGVyCi10byA2NCBiaXRzIGFuZCBnZW5lcmF0ZXMgY29kZSBmb3IgQU1EJ3Mg eDg2LTY0IGFyY2hpdGVjdHVyZS4gRm9yCi1kYXJ3aW4gb25seSB0aGUgLW02 NCBvcHRpb24gdHVybnMgb2ZmIHRoZSBAb3B0aW9uey1mbm8tcGljfSBhbmQK LUBvcHRpb257LW1keW5hbWljLW5vLXBpY30gb3B0aW9ucy4KK1RoZSBAb3B0 aW9uey1tNjR9IG9wdGlvbiBzZXRzIGludCB0byAzMiBiaXRzIGFuZCBsb25n IGFuZCBwb2ludGVyCit0byA2NCBiaXRzIGFuZCBnZW5lcmF0ZXMgY29kZSBm b3IgQU1EJ3MgeDg2LTY0IGFyY2hpdGVjdHVyZS4KK1RoZSBAb3B0aW9uey1t eDMyfSBvcHRpb24gc2V0cyBpbnQsIGxvbmcgYW5kIHBvaW50ZXIgdG8gMzIg Yml0cyBhbmQKK2dlbmVyYXRlcyBjb2RlIGZvciBBTUQncyB4ODYtNjQgYXJj aGl0ZWN0dXJlLgorRm9yIGRhcndpbiBvbmx5IHRoZSBAb3B0aW9uey1tNjR9 IG9wdGlvbiB0dXJucyBvZmYgdGhlIEBvcHRpb257LWZuby1waWN9CithbmQg QG9wdGlvbnstbWR5bmFtaWMtbm8tcGljfSBvcHRpb25zLgogCiBAaXRlbSAt bW5vLXJlZC16b25lCiBAb3BpbmRleCBtbm8tcmVkLXpvbmUK --001636426d059c270104a77c0253--