From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1690 invoked by alias); 26 Oct 2009 07:03:23 -0000 Received: (qmail 982 invoked by uid 22791); 26 Oct 2009 07:03:13 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-pw0-f49.google.com (HELO mail-pw0-f49.google.com) (209.85.160.49) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 26 Oct 2009 07:03:04 +0000 Received: by pwj3 with SMTP id 3so3272555pwj.8 for ; Mon, 26 Oct 2009 00:03:03 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.2.14 with SMTP id 14mr577650wfb.15.1256540583117; Mon, 26 Oct 2009 00:03:03 -0700 (PDT) In-Reply-To: <4AE518C6.2000701@vmware.com> References: <20091022193607.13598.qmail@sourceware.org> <4AE37D44.10905@eagercon.com> <4AE386EF.60809@vmware.com> <4AE3A79A.6060600@vmware.com> <4AE49A75.9030007@vmware.com> <4AE518C6.2000701@vmware.com> From: Hui Zhu Date: Mon, 26 Oct 2009 07:03:00 -0000 Message-ID: Subject: Re: Build failure: src/gdb ChangeLog record.c gcore.c gcore.h To: Michael Snyder Cc: Michael Eager , Pierre Muller , "msnyder@sourceware.org" , "gdb-patches@sourceware.org" Content-Type: multipart/mixed; boundary=00504502b5351a45dd0476d1278f X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-10/txt/msg00639.txt.bz2 --00504502b5351a45dd0476d1278f Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 13035 OK. I make a new patch for it. Please help me review it. Thanks, Hui 2009-10-26 Michael Snyder Hui Zhu * Makefile.in (SFILES): Add gcore.c. (COMMON_OBS): Add gcore.o. * config/alpha/alpha-linux.mh (NATDEPFILES): Delete gcore.o. * config/alpha/fbsd.mh (NATDEPFILES): Ditto. * config/arm/linux.mh (NATDEPFILES): Ditto. * config/i386/fbsd.mh (NATDEPFILES): Ditto. * config/i386/fbsd64.mh (NATDEPFILES): Ditto. * config/i386/i386sol2.mh (NATDEPFILES): Ditto. * config/i386/linux.mh (NATDEPFILES): Ditto. * config/i386/linux64.mh (NATDEPFILES): Ditto. * config/i386/sol2-64.mh (NATDEPFILES): Ditto. * config/ia64/linux.mh (NATDEPFILES): Ditto. * config/m32r/linux.mh (NATDEPFILES): Ditto. * config/m68k/linux.mh (NATDEPFILES): Ditto. * config/mips/linux.mh (NATDEPFILES): Ditto. * config/pa/linux.mh (NATDEPFILES): Ditto. * config/powerpc/linux.mh (NATDEPFILES): Ditto. * config/powerpc/ppc64-linux.mh (NATDEPFILES): Ditto. * config/s390/s390.mh (NATDEPFILES): Ditto. * config/sparc/fbsd.mh (NATDEPFILES): Ditto. * config/sparc/linux.mh (NATDEPFILES): Ditto. * config/sparc/linux64.mh (NATDEPFILES): Ditto. * config/sparc/sol2.mh (NATDEPFILES): Ditto. * config/xtensa/linux.mh (NATDEPFILES): Ditto. * target.c (dummy_find_memory_regions): Change output. (dummy_make_corefile_notes): Ditto. --- Makefile.in | 4 ++-- config/alpha/alpha-linux.mh | 2 +- config/alpha/fbsd.mh | 2 +- config/arm/linux.mh | 2 +- config/i386/fbsd.mh | 2 +- config/i386/fbsd64.mh | 2 +- config/i386/i386sol2.mh | 2 +- config/i386/linux.mh | 2 +- config/i386/linux64.mh | 2 +- config/i386/sol2-64.mh | 2 +- config/ia64/linux.mh | 2 +- config/m32r/linux.mh | 2 +- config/m68k/linux.mh | 2 +- config/mips/linux.mh | 2 +- config/pa/linux.mh | 2 +- config/powerpc/linux.mh | 2 +- config/powerpc/ppc64-linux.mh | 2 +- config/s390/s390.mh | 2 +- config/sparc/fbsd.mh | 2 +- config/sparc/linux.mh | 2 +- config/sparc/linux64.mh | 2 +- config/sparc/sol2.mh | 2 +- config/xtensa/linux.mh | 2 +- target.c | 14 ++++++++------ 24 files changed, 32 insertions(+), 30 deletions(-) --- a/Makefile.in +++ b/Makefile.in @@ -681,7 +681,7 @@ SFILES =3D ada-exp.y ada-lang.c ada-typepr wrapper.c \ xml-tdesc.c xml-support.c \ inferior.c gdb_usleep.c \ - record.c \ + record.c gcore.c\ jit.c \ xml-syscall.c \ @@ -834,7 +834,7 @@ COMMON_OBS =3D $(DEPFILES) $(CONFIG_OBS) $ solib.o solib-null.o \ prologue-value.o memory-map.o xml-support.o xml-syscall.o \ target-descriptions.o target-memory.o xml-tdesc.o xml-builtin.o \ - inferior.o osdata.o gdb_usleep.o record.o \ + inferior.o osdata.o gdb_usleep.o record.o gcore.o \ jit.o progspace.o # Definitions for the syscall's XML files and dir --- a/config/alpha/alpha-linux.mh +++ b/config/alpha/alpha-linux.mh @@ -1,7 +1,7 @@ # Host: Little-endian Alpha running Linux NAT_FILE=3D config/nm-linux.h NATDEPFILES=3D inf-ptrace.o corelow.o alpha-linux-nat.o \ - fork-child.o proc-service.o linux-thread-db.o gcore.o \ + fork-child.o proc-service.o linux-thread-db.o \ linux-nat.o linux-fork.o # The dynamically loaded libthread_db needs access to symbols in the --- a/config/alpha/fbsd.mh +++ b/config/alpha/fbsd.mh @@ -1,6 +1,6 @@ # Host: FreeBSD/alpha NATDEPFILES=3D fork-child.o inf-ptrace.o \ fbsd-nat.o alphabsd-nat.o bsd-kvm.o \ - gcore.o corelow.o core-regset.o + corelow.o core-regset.o LOADLIBES=3D -lkvm --- a/config/arm/linux.mh +++ b/config/arm/linux.mh @@ -1,7 +1,7 @@ # Host: ARM based machine running GNU/Linux NAT_FILE=3D config/nm-linux.h -NATDEPFILES=3D inf-ptrace.o fork-child.o arm-linux-nat.o gcore.o \ +NATDEPFILES=3D inf-ptrace.o fork-child.o arm-linux-nat.o \ proc-service.o linux-thread-db.o linux-nat.o linux-fork.o LOADLIBES=3D -ldl -rdynamic --- a/config/i386/fbsd.mh +++ b/config/i386/fbsd.mh @@ -1,7 +1,7 @@ # Host: FreeBSD/i386 NATDEPFILES=3D fork-child.o inf-ptrace.o \ fbsd-nat.o i386-nat.o i386bsd-nat.o i386fbsd-nat.o \ - gcore.o bsd-kvm.o + bsd-kvm.o NAT_FILE=3D nm-fbsd.h LOADLIBES=3D -lkvm --- a/config/i386/fbsd64.mh +++ b/config/i386/fbsd64.mh @@ -1,6 +1,6 @@ # Host: FreeBSD/amd64 NATDEPFILES=3D fork-child.o inf-ptrace.o \ fbsd-nat.o amd64-nat.o amd64bsd-nat.o amd64fbsd-nat.o \ - gcore.o bsd-kvm.o + bsd-kvm.o LOADLIBES=3D -lkvm --- a/config/i386/i386sol2.mh +++ b/config/i386/i386sol2.mh @@ -1,4 +1,4 @@ # Host: Solaris x86 NATDEPFILES=3D fork-child.o i386v4-nat.o i386-sol2-nat.o \ - procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o gcore.o + procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o NAT_FILE=3D nm-i386sol2.h --- a/config/i386/linux.mh +++ b/config/i386/linux.mh @@ -3,7 +3,7 @@ NAT_FILE=3D nm-linux.h NATDEPFILES=3D inf-ptrace.o fork-child.o \ i386-nat.o i386-linux-nat.o \ - proc-service.o linux-thread-db.o gcore.o \ + proc-service.o linux-thread-db.o \ linux-nat.o linux-fork.o # The dynamically loaded libthread_db needs access to symbols in the --- a/config/i386/linux64.mh +++ b/config/i386/linux64.mh @@ -1,7 +1,7 @@ # Host: GNU/Linux x86-64 NATDEPFILES=3D inf-ptrace.o fork-child.o \ i386-nat.o amd64-nat.o amd64-linux-nat.o linux-nat.o \ - proc-service.o linux-thread-db.o gcore.o linux-fork.o + proc-service.o linux-thread-db.o linux-fork.o NAT_FILE=3D config/nm-linux.h # The dynamically loaded libthread_db needs access to symbols in the --- a/config/i386/sol2-64.mh +++ b/config/i386/sol2-64.mh @@ -1,4 +1,4 @@ # Host: Solaris x86_64 NATDEPFILES=3D fork-child.o amd64-nat.o i386v4-nat.o i386-sol2-nat.o \ - procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o gcore.o + procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o NAT_FILE=3D nm-i386sol2.h --- a/config/ia64/linux.mh +++ b/config/ia64/linux.mh @@ -1,7 +1,7 @@ # Host: Intel IA-64 running GNU/Linux NAT_FILE=3D config/nm-linux.h -NATDEPFILES=3D inf-ptrace.o fork-child.o corelow.o gcore.o \ +NATDEPFILES=3D inf-ptrace.o fork-child.o corelow.o \ core-regset.o ia64-linux-nat.o \ proc-service.o linux-thread-db.o linux-nat.o linux-fork.o --- a/config/m32r/linux.mh +++ b/config/m32r/linux.mh @@ -2,7 +2,7 @@ NAT_FILE=3D config/nm-linux.h NATDEPFILES=3D inf-ptrace.o fork-child.o corelow.o \ - m32r-linux-nat.o gcore.o proc-service.o linux-thread-db.o \ + m32r-linux-nat.o proc-service.o linux-thread-db.o \ linux-nat.o linux-fork.o LOADLIBES=3D -ldl -rdynamic --- a/config/m68k/linux.mh +++ b/config/m68k/linux.mh @@ -2,7 +2,7 @@ NAT_FILE=3D config/nm-linux.h NATDEPFILES=3D inf-ptrace.o fork-child.o \ - corelow.o m68klinux-nat.o gcore.o \ + corelow.o m68klinux-nat.o \ proc-service.o linux-thread-db.o linux-nat.o linux-fork.o # The dynamically loaded libthread_db needs access to symbols in the --- a/config/mips/linux.mh +++ b/config/mips/linux.mh @@ -1,7 +1,7 @@ # Host: Linux/MIPS NAT_FILE=3D config/nm-linux.h NATDEPFILES=3D inf-ptrace.o fork-child.o mips-linux-nat.o \ - linux-thread-db.o proc-service.o gcore.o \ + linux-thread-db.o proc-service.o \ linux-nat.o linux-fork.o LOADLIBES =3D -ldl -rdynamic --- a/config/pa/linux.mh +++ b/config/pa/linux.mh @@ -1,6 +1,6 @@ # Host: Hewlett-Packard PA-RISC machine, running Linux NAT_FILE=3D config/nm-linux.h -NATDEPFILES=3D inf-ptrace.o fork-child.o corelow.o gcore.o \ +NATDEPFILES=3D inf-ptrace.o fork-child.o corelow.o \ hppa-linux-nat.o proc-service.o linux-thread-db.o linux-nat.o \ linux-fork.o --- a/config/powerpc/linux.mh +++ b/config/powerpc/linux.mh @@ -5,6 +5,6 @@ XM_CLIBS=3D NAT_FILE=3D config/nm-linux.h NATDEPFILES=3D inf-ptrace.o fork-child.o \ ppc-linux-nat.o proc-service.o linux-thread-db.o \ - gcore.o linux-nat.o linux-fork.o + linux-nat.o linux-fork.o LOADLIBES =3D -ldl -rdynamic --- a/config/powerpc/ppc64-linux.mh +++ b/config/powerpc/ppc64-linux.mh @@ -5,7 +5,7 @@ XM_CLIBS=3D NAT_FILE=3D config/nm-linux.h NATDEPFILES=3D inf-ptrace.o fork-child.o \ ppc-linux-nat.o proc-service.o linux-thread-db.o \ - gcore.o linux-nat.o linux-fork.o + linux-nat.o linux-fork.o # The PowerPC has severe limitations on TOC size, and uses them even # for non-PIC code. GDB overflows those tables when compiling with --- a/config/s390/s390.mh +++ b/config/s390/s390.mh @@ -1,5 +1,5 @@ # Host: S390, running Linux NAT_FILE=3D config/nm-linux.h NATDEPFILES=3D inf-ptrace.o fork-child.o corelow.o s390-nat.o \ - gcore.o linux-thread-db.o proc-service.o linux-nat.o linux-fork.o + linux-thread-db.o proc-service.o linux-nat.o linux-fork.o LOADLIBES =3D -ldl -rdynamic --- a/config/sparc/fbsd.mh +++ b/config/sparc/fbsd.mh @@ -1,6 +1,6 @@ # Host: FreeBSD/sparc64 NATDEPFILES=3D fork-child.o inf-ptrace.o \ fbsd-nat.o sparc-nat.o sparc64-nat.o sparc64fbsd-nat.o \ - gcore.o bsd-kvm.o + bsd-kvm.o LOADLIBES=3D -lkvm --- a/config/sparc/linux.mh +++ b/config/sparc/linux.mh @@ -3,7 +3,7 @@ NAT_FILE=3D config/nm-linux.h NATDEPFILES=3D sparc-nat.o sparc-linux-nat.o \ corelow.o core-regset.o fork-child.o inf-ptrace.o \ proc-service.o linux-thread-db.o \ - gcore.o linux-nat.o linux-fork.o + linux-nat.o linux-fork.o # The dynamically loaded libthread_db needs access to symbols in the # gdb executable. --- a/config/sparc/linux64.mh +++ b/config/sparc/linux64.mh @@ -4,7 +4,7 @@ NATDEPFILES=3D sparc-nat.o sparc64-nat.o s corelow.o core-regset.o \ fork-child.o inf-ptrace.o \ proc-service.o linux-thread-db.o \ - gcore.o linux-nat.o linux-fork.o + linux-nat.o linux-fork.o # The dynamically loaded libthread_db needs access to symbols in the # gdb executable. --- a/config/sparc/sol2.mh +++ b/config/sparc/sol2.mh @@ -1,5 +1,5 @@ # Host: Solaris SPARC & UltraSPARC NAT_FILE=3D nm-sol2.h NATDEPFILES=3D sparc-sol2-nat.o \ - corelow.o core-regset.o fork-child.o gcore.o \ + corelow.o core-regset.o fork-child.o \ procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o --- a/config/xtensa/linux.mh +++ b/config/xtensa/linux.mh @@ -2,7 +2,7 @@ NAT_FILE=3D config/nm-linux.h -NATDEPFILES=3D inf-ptrace.o fork-child.o xtensa-linux-nat.o gcore.o \ +NATDEPFILES=3D inf-ptrace.o fork-child.o xtensa-linux-nat.o \ linux-thread-db.o proc-service.o linux-nat.o linux-fork.o LOADLIBES =3D -ldl -rdynamic --- a/target.c +++ b/target.c @@ -2751,17 +2751,19 @@ dummy_pid_to_str (struct target_ops *ops return normal_pid_to_str (ptid); } -/* Error-catcher for target_find_memory_regions */ -static int dummy_find_memory_regions (int (*ignore1) (), void *ignore2) +/* Error-catcher for target_find_memory_regions. */ +static int +dummy_find_memory_regions (int (*ignore1) (), void *ignore2) { - error (_("No target.")); + error (_("Command not implemented for this target.")); return 0; } -/* Error-catcher for target_make_corefile_notes */ -static char * dummy_make_corefile_notes (bfd *ignore1, int *ignore2) +/* Error-catcher for target_make_corefile_notes. */ +static char * +dummy_make_corefile_notes (bfd *ignore1, int *ignore2) { - error (_("No target.")); + error (_("Command not implemented for this target.")); return NULL; } On Mon, Oct 26, 2009 at 11:34, Michael Snyder wrote: > Hui Zhu wrote: >> >> Hi Michael, >> >> I make a patch that move gcore.o to makefile.in. >> It will make record save build OK in cygwin. > > Not quite good for targets that don't use "exec" (such as > remote or sim). =A0We'll expose an error message that isn't > very informative. > > Could you add this diff to your patch? > > > Index: target.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvs/src/src/gdb/target.c,v > retrieving revision 1.229 > diff -u -p -r1.229 target.c > --- target.c =A0 =A020 Oct 2009 11:09:01 -0000 =A0 =A0 =A01.229 > +++ target.c =A0 =A026 Oct 2009 03:39:36 -0000 > @@ -2751,17 +2751,19 @@ dummy_pid_to_str (struct target_ops *ops > =A0 return normal_pid_to_str (ptid); > =A0} > > -/* Error-catcher for target_find_memory_regions */ > -static int dummy_find_memory_regions (int (*ignore1) (), void *ignore2) > +/* Error-catcher for target_find_memory_regions. =A0*/ > +static int > +dummy_find_memory_regions (int (*ignore1) (), void *ignore2) > =A0{ > - =A0error (_("No target.")); > + =A0error (_("Command not implemented for this target.")); > =A0 return 0; > =A0} > > -/* Error-catcher for target_make_corefile_notes */ > -static char * dummy_make_corefile_notes (bfd *ignore1, int *ignore2) > +/* Error-catcher for target_make_corefile_notes. =A0*/ > +static char * > +dummy_make_corefile_notes (bfd *ignore1, int *ignore2) > =A0{ > - =A0error (_("No target.")); > + =A0error (_("Command not implemented for this target.")); > =A0 return NULL; > =A0} > > > --00504502b5351a45dd0476d1278f Content-Type: text/plain; charset=US-ASCII; name="mv_gcore.txt" Content-Disposition: attachment; filename="mv_gcore.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g18vqz0k1 Content-length: 13343 LS0tCiBNYWtlZmlsZS5pbiAgICAgICAgICAgICAgICAgICB8ICAgIDQgKyst LQogY29uZmlnL2FscGhhL2FscGhhLWxpbnV4Lm1oICAgfCAgICAyICstCiBj b25maWcvYWxwaGEvZmJzZC5taCAgICAgICAgICB8ICAgIDIgKy0KIGNvbmZp Zy9hcm0vbGludXgubWggICAgICAgICAgIHwgICAgMiArLQogY29uZmlnL2kz ODYvZmJzZC5taCAgICAgICAgICAgfCAgICAyICstCiBjb25maWcvaTM4Ni9m YnNkNjQubWggICAgICAgICB8ICAgIDIgKy0KIGNvbmZpZy9pMzg2L2kzODZz b2wyLm1oICAgICAgIHwgICAgMiArLQogY29uZmlnL2kzODYvbGludXgubWgg ICAgICAgICAgfCAgICAyICstCiBjb25maWcvaTM4Ni9saW51eDY0Lm1oICAg ICAgICB8ICAgIDIgKy0KIGNvbmZpZy9pMzg2L3NvbDItNjQubWggICAgICAg IHwgICAgMiArLQogY29uZmlnL2lhNjQvbGludXgubWggICAgICAgICAgfCAg ICAyICstCiBjb25maWcvbTMyci9saW51eC5taCAgICAgICAgICB8ICAgIDIg Ky0KIGNvbmZpZy9tNjhrL2xpbnV4Lm1oICAgICAgICAgIHwgICAgMiArLQog Y29uZmlnL21pcHMvbGludXgubWggICAgICAgICAgfCAgICAyICstCiBjb25m aWcvcGEvbGludXgubWggICAgICAgICAgICB8ICAgIDIgKy0KIGNvbmZpZy9w b3dlcnBjL2xpbnV4Lm1oICAgICAgIHwgICAgMiArLQogY29uZmlnL3Bvd2Vy cGMvcHBjNjQtbGludXgubWggfCAgICAyICstCiBjb25maWcvczM5MC9zMzkw Lm1oICAgICAgICAgICB8ICAgIDIgKy0KIGNvbmZpZy9zcGFyYy9mYnNkLm1o ICAgICAgICAgIHwgICAgMiArLQogY29uZmlnL3NwYXJjL2xpbnV4Lm1oICAg ICAgICAgfCAgICAyICstCiBjb25maWcvc3BhcmMvbGludXg2NC5taCAgICAg ICB8ICAgIDIgKy0KIGNvbmZpZy9zcGFyYy9zb2wyLm1oICAgICAgICAgIHwg ICAgMiArLQogY29uZmlnL3h0ZW5zYS9saW51eC5taCAgICAgICAgfCAgICAy ICstCiB0YXJnZXQuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysr KysrKystLS0tLS0KIDI0IGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMo KyksIDMwIGRlbGV0aW9ucygtKQoKLS0tIGEvTWFrZWZpbGUuaW4KKysrIGIv TWFrZWZpbGUuaW4KQEAgLTY4MSw3ICs2ODEsNyBAQCBTRklMRVMgPSBhZGEt ZXhwLnkgYWRhLWxhbmcuYyBhZGEtdHlwZXByCiAJd3JhcHBlci5jIFwKIAl4 bWwtdGRlc2MuYyB4bWwtc3VwcG9ydC5jIFwKIAlpbmZlcmlvci5jIGdkYl91 c2xlZXAuYyBcCi0JcmVjb3JkLmMgXAorCXJlY29yZC5jIGdjb3JlLmNcCiAJ aml0LmMgXAogCXhtbC1zeXNjYWxsLmMgXAogCkBAIC04MzQsNyArODM0LDcg QEAgQ09NTU9OX09CUyA9ICQoREVQRklMRVMpICQoQ09ORklHX09CUykgJAog CXNvbGliLm8gc29saWItbnVsbC5vIFwKIAlwcm9sb2d1ZS12YWx1ZS5vIG1l bW9yeS1tYXAubyB4bWwtc3VwcG9ydC5vIHhtbC1zeXNjYWxsLm8gXAogCXRh cmdldC1kZXNjcmlwdGlvbnMubyB0YXJnZXQtbWVtb3J5Lm8geG1sLXRkZXNj Lm8geG1sLWJ1aWx0aW4ubyBcCi0JaW5mZXJpb3IubyBvc2RhdGEubyBnZGJf dXNsZWVwLm8gcmVjb3JkLm8gXAorCWluZmVyaW9yLm8gb3NkYXRhLm8gZ2Ri X3VzbGVlcC5vIHJlY29yZC5vIGdjb3JlLm8gXAogCWppdC5vIHByb2dzcGFj ZS5vCiAKICMgRGVmaW5pdGlvbnMgZm9yIHRoZSBzeXNjYWxsJ3MgWE1MIGZp bGVzIGFuZCBkaXIKLS0tIGEvY29uZmlnL2FscGhhL2FscGhhLWxpbnV4Lm1o CisrKyBiL2NvbmZpZy9hbHBoYS9hbHBoYS1saW51eC5taApAQCAtMSw3ICsx LDcgQEAKICMgSG9zdDogTGl0dGxlLWVuZGlhbiBBbHBoYSBydW5uaW5nIExp bnV4CiBOQVRfRklMRT0gY29uZmlnL25tLWxpbnV4LmgKIE5BVERFUEZJTEVT PSBpbmYtcHRyYWNlLm8gY29yZWxvdy5vIGFscGhhLWxpbnV4LW5hdC5vIFwK LQlmb3JrLWNoaWxkLm8gcHJvYy1zZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRi Lm8gZ2NvcmUubyBcCisJZm9yay1jaGlsZC5vIHByb2Mtc2VydmljZS5vIGxp bnV4LXRocmVhZC1kYi5vIFwKIAlsaW51eC1uYXQubyBsaW51eC1mb3JrLm8K IAogIyBUaGUgZHluYW1pY2FsbHkgbG9hZGVkIGxpYnRocmVhZF9kYiBuZWVk cyBhY2Nlc3MgdG8gc3ltYm9scyBpbiB0aGUKLS0tIGEvY29uZmlnL2FscGhh L2Zic2QubWgKKysrIGIvY29uZmlnL2FscGhhL2Zic2QubWgKQEAgLTEsNiAr MSw2IEBACiAjIEhvc3Q6IEZyZWVCU0QvYWxwaGEKIE5BVERFUEZJTEVTPSBm b3JrLWNoaWxkLm8gaW5mLXB0cmFjZS5vIFwKIAlmYnNkLW5hdC5vIGFscGhh YnNkLW5hdC5vIGJzZC1rdm0ubyBcCi0JZ2NvcmUubyBjb3JlbG93Lm8gY29y ZS1yZWdzZXQubworCWNvcmVsb3cubyBjb3JlLXJlZ3NldC5vCiAKIExPQURM SUJFUz0gLWxrdm0KLS0tIGEvY29uZmlnL2FybS9saW51eC5taAorKysgYi9j b25maWcvYXJtL2xpbnV4Lm1oCkBAIC0xLDcgKzEsNyBAQAogIyBIb3N0OiBB Uk0gYmFzZWQgbWFjaGluZSBydW5uaW5nIEdOVS9MaW51eAogCiBOQVRfRklM RT0gY29uZmlnL25tLWxpbnV4LmgKLU5BVERFUEZJTEVTPSBpbmYtcHRyYWNl Lm8gZm9yay1jaGlsZC5vIGFybS1saW51eC1uYXQubyBnY29yZS5vIFwKK05B VERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIGFybS1saW51 eC1uYXQubyBcCiAJcHJvYy1zZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRiLm8g bGludXgtbmF0Lm8gbGludXgtZm9yay5vCiAKIExPQURMSUJFUz0gLWxkbCAt cmR5bmFtaWMKLS0tIGEvY29uZmlnL2kzODYvZmJzZC5taAorKysgYi9jb25m aWcvaTM4Ni9mYnNkLm1oCkBAIC0xLDcgKzEsNyBAQAogIyBIb3N0OiBGcmVl QlNEL2kzODYKIE5BVERFUEZJTEVTPSBmb3JrLWNoaWxkLm8gaW5mLXB0cmFj ZS5vIFwKIAlmYnNkLW5hdC5vIGkzODYtbmF0Lm8gaTM4NmJzZC1uYXQubyBp Mzg2ZmJzZC1uYXQubyBcCi0JZ2NvcmUubyBic2Qta3ZtLm8KKwlic2Qta3Zt Lm8KIE5BVF9GSUxFPSBubS1mYnNkLmgKIAogTE9BRExJQkVTPSAtbGt2bQot LS0gYS9jb25maWcvaTM4Ni9mYnNkNjQubWgKKysrIGIvY29uZmlnL2kzODYv ZmJzZDY0Lm1oCkBAIC0xLDYgKzEsNiBAQAogIyBIb3N0OiBGcmVlQlNEL2Ft ZDY0CiBOQVRERVBGSUxFUz0gZm9yay1jaGlsZC5vIGluZi1wdHJhY2UubyBc CiAJZmJzZC1uYXQubyBhbWQ2NC1uYXQubyBhbWQ2NGJzZC1uYXQubyBhbWQ2 NGZic2QtbmF0Lm8gXAotCWdjb3JlLm8gYnNkLWt2bS5vCisJYnNkLWt2bS5v CiAKIExPQURMSUJFUz0gLWxrdm0KLS0tIGEvY29uZmlnL2kzODYvaTM4NnNv bDIubWgKKysrIGIvY29uZmlnL2kzODYvaTM4NnNvbDIubWgKQEAgLTEsNCAr MSw0IEBACiAjIEhvc3Q6IFNvbGFyaXMgeDg2CiBOQVRERVBGSUxFUz0gZm9y ay1jaGlsZC5vIGkzODZ2NC1uYXQubyBpMzg2LXNvbDItbmF0Lm8gXAotCXBy b2Nmcy5vIHByb2MtYXBpLm8gcHJvYy1ldmVudHMubyBwcm9jLWZsYWdzLm8g cHJvYy13aHkubyBnY29yZS5vCisJcHJvY2ZzLm8gcHJvYy1hcGkubyBwcm9j LWV2ZW50cy5vIHByb2MtZmxhZ3MubyBwcm9jLXdoeS5vCiBOQVRfRklMRT0g bm0taTM4NnNvbDIuaAotLS0gYS9jb25maWcvaTM4Ni9saW51eC5taAorKysg Yi9jb25maWcvaTM4Ni9saW51eC5taApAQCAtMyw3ICszLDcgQEAKIE5BVF9G SUxFPSBubS1saW51eC5oCiBOQVRERVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZv cmstY2hpbGQubyBcCiAJaTM4Ni1uYXQubyBpMzg2LWxpbnV4LW5hdC5vIFwK LQlwcm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIubyBnY29yZS5vIFwK Kwlwcm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIubyBcCiAJbGludXgt bmF0Lm8gbGludXgtZm9yay5vCiAKICMgVGhlIGR5bmFtaWNhbGx5IGxvYWRl ZCBsaWJ0aHJlYWRfZGIgbmVlZHMgYWNjZXNzIHRvIHN5bWJvbHMgaW4gdGhl Ci0tLSBhL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgKKysrIGIvY29uZmlnL2kz ODYvbGludXg2NC5taApAQCAtMSw3ICsxLDcgQEAKICMgSG9zdDogR05VL0xp bnV4IHg4Ni02NAogTkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBmb3JrLWNo aWxkLm8gXAogCWkzODYtbmF0Lm8gYW1kNjQtbmF0Lm8gYW1kNjQtbGludXgt bmF0Lm8gbGludXgtbmF0Lm8gXAotCXByb2Mtc2VydmljZS5vIGxpbnV4LXRo cmVhZC1kYi5vIGdjb3JlLm8gIGxpbnV4LWZvcmsubworCXByb2Mtc2Vydmlj ZS5vIGxpbnV4LXRocmVhZC1kYi5vIGxpbnV4LWZvcmsubwogTkFUX0ZJTEU9 IGNvbmZpZy9ubS1saW51eC5oCiAKICMgVGhlIGR5bmFtaWNhbGx5IGxvYWRl ZCBsaWJ0aHJlYWRfZGIgbmVlZHMgYWNjZXNzIHRvIHN5bWJvbHMgaW4gdGhl Ci0tLSBhL2NvbmZpZy9pMzg2L3NvbDItNjQubWgKKysrIGIvY29uZmlnL2kz ODYvc29sMi02NC5taApAQCAtMSw0ICsxLDQgQEAKICMgSG9zdDogU29sYXJp cyB4ODZfNjQKIE5BVERFUEZJTEVTPSBmb3JrLWNoaWxkLm8gYW1kNjQtbmF0 Lm8gaTM4NnY0LW5hdC5vIGkzODYtc29sMi1uYXQubyBcCi0JcHJvY2ZzLm8g cHJvYy1hcGkubyBwcm9jLWV2ZW50cy5vIHByb2MtZmxhZ3MubyBwcm9jLXdo eS5vIGdjb3JlLm8KKwlwcm9jZnMubyBwcm9jLWFwaS5vIHByb2MtZXZlbnRz Lm8gcHJvYy1mbGFncy5vIHByb2Mtd2h5Lm8KIE5BVF9GSUxFPSBubS1pMzg2 c29sMi5oCi0tLSBhL2NvbmZpZy9pYTY0L2xpbnV4Lm1oCisrKyBiL2NvbmZp Zy9pYTY0L2xpbnV4Lm1oCkBAIC0xLDcgKzEsNyBAQAogIyBIb3N0OiBJbnRl bCBJQS02NCBydW5uaW5nIEdOVS9MaW51eAogCiBOQVRfRklMRT0gY29uZmln L25tLWxpbnV4LmgKLU5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1j aGlsZC5vIGNvcmVsb3cubyBnY29yZS5vIFwKK05BVERFUEZJTEVTPSBpbmYt cHRyYWNlLm8gZm9yay1jaGlsZC5vIGNvcmVsb3cubyBcCiAJY29yZS1yZWdz ZXQubyBpYTY0LWxpbnV4LW5hdC5vIFwKIAlwcm9jLXNlcnZpY2UubyBsaW51 eC10aHJlYWQtZGIubyBsaW51eC1uYXQubyBsaW51eC1mb3JrLm8KIAotLS0g YS9jb25maWcvbTMyci9saW51eC5taAorKysgYi9jb25maWcvbTMyci9saW51 eC5taApAQCAtMiw3ICsyLDcgQEAKIAogTkFUX0ZJTEU9IGNvbmZpZy9ubS1s aW51eC5oCiBOQVRERVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hpbGQu byBjb3JlbG93Lm8JXAotCW0zMnItbGludXgtbmF0Lm8gZ2NvcmUubyBwcm9j LXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIubwlcCisJbTMyci1saW51eC1u YXQubyBwcm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIubwlcCiAJbGlu dXgtbmF0Lm8gbGludXgtZm9yay5vCiAKIExPQURMSUJFUz0gLWxkbCAtcmR5 bmFtaWMKLS0tIGEvY29uZmlnL202OGsvbGludXgubWgKKysrIGIvY29uZmln L202OGsvbGludXgubWgKQEAgLTIsNyArMiw3IEBACiAKIE5BVF9GSUxFPSBj b25maWcvbm0tbGludXguaAogTkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBm b3JrLWNoaWxkLm8gXAotCWNvcmVsb3cubyBtNjhrbGludXgtbmF0Lm8gZ2Nv cmUubyBcCisJY29yZWxvdy5vIG02OGtsaW51eC1uYXQubyBcCiAJcHJvYy1z ZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gbGludXgtbmF0Lm8gbGludXgt Zm9yay5vCiAKICMgVGhlIGR5bmFtaWNhbGx5IGxvYWRlZCBsaWJ0aHJlYWRf ZGIgbmVlZHMgYWNjZXNzIHRvIHN5bWJvbHMgaW4gdGhlCi0tLSBhL2NvbmZp Zy9taXBzL2xpbnV4Lm1oCisrKyBiL2NvbmZpZy9taXBzL2xpbnV4Lm1oCkBA IC0xLDcgKzEsNyBAQAogIyBIb3N0OiBMaW51eC9NSVBTCiBOQVRfRklMRT0g Y29uZmlnL25tLWxpbnV4LmgKIE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8g Zm9yay1jaGlsZC5vIG1pcHMtbGludXgtbmF0Lm8gXAotCWxpbnV4LXRocmVh ZC1kYi5vIHByb2Mtc2VydmljZS5vIGdjb3JlLm8gXAorCWxpbnV4LXRocmVh ZC1kYi5vIHByb2Mtc2VydmljZS5vIFwKIAlsaW51eC1uYXQubyBsaW51eC1m b3JrLm8KIAogTE9BRExJQkVTID0gLWxkbCAtcmR5bmFtaWMKLS0tIGEvY29u ZmlnL3BhL2xpbnV4Lm1oCisrKyBiL2NvbmZpZy9wYS9saW51eC5taApAQCAt MSw2ICsxLDYgQEAKICMgSG9zdDogSGV3bGV0dC1QYWNrYXJkIFBBLVJJU0Mg bWFjaGluZSwgcnVubmluZyBMaW51eAogTkFUX0ZJTEU9IGNvbmZpZy9ubS1s aW51eC5oCi1OQVRERVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hpbGQu byBjb3JlbG93Lm8gZ2NvcmUubyBcCitOQVRERVBGSUxFUz0gaW5mLXB0cmFj ZS5vIGZvcmstY2hpbGQubyBjb3JlbG93Lm8gXAogCWhwcGEtbGludXgtbmF0 Lm8gcHJvYy1zZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gbGludXgtbmF0 Lm8gXAogCWxpbnV4LWZvcmsubwogCi0tLSBhL2NvbmZpZy9wb3dlcnBjL2xp bnV4Lm1oCisrKyBiL2NvbmZpZy9wb3dlcnBjL2xpbnV4Lm1oCkBAIC01LDYg KzUsNiBAQCBYTV9DTElCUz0KIE5BVF9GSUxFPSBjb25maWcvbm0tbGludXgu aAogTkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBmb3JrLWNoaWxkLm8gXAog CXBwYy1saW51eC1uYXQubyBwcm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQt ZGIubyBcCi0JZ2NvcmUubyBsaW51eC1uYXQubyBsaW51eC1mb3JrLm8KKwls aW51eC1uYXQubyBsaW51eC1mb3JrLm8KIAogTE9BRExJQkVTID0gLWxkbCAt cmR5bmFtaWMKLS0tIGEvY29uZmlnL3Bvd2VycGMvcHBjNjQtbGludXgubWgK KysrIGIvY29uZmlnL3Bvd2VycGMvcHBjNjQtbGludXgubWgKQEAgLTUsNyAr NSw3IEBAIFhNX0NMSUJTPQogTkFUX0ZJTEU9IGNvbmZpZy9ubS1saW51eC5o CiBOQVRERVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hpbGQubyBcCiAJ cHBjLWxpbnV4LW5hdC5vIHByb2Mtc2VydmljZS5vIGxpbnV4LXRocmVhZC1k Yi5vIFwKLQlnY29yZS5vIGxpbnV4LW5hdC5vIGxpbnV4LWZvcmsubworCWxp bnV4LW5hdC5vIGxpbnV4LWZvcmsubwogCiAjIFRoZSBQb3dlclBDIGhhcyBz ZXZlcmUgbGltaXRhdGlvbnMgb24gVE9DIHNpemUsIGFuZCB1c2VzIHRoZW0g ZXZlbgogIyBmb3Igbm9uLVBJQyBjb2RlLiAgR0RCIG92ZXJmbG93cyB0aG9z ZSB0YWJsZXMgd2hlbiBjb21waWxpbmcgd2l0aAotLS0gYS9jb25maWcvczM5 MC9zMzkwLm1oCisrKyBiL2NvbmZpZy9zMzkwL3MzOTAubWgKQEAgLTEsNSAr MSw1IEBACiAjIEhvc3Q6IFMzOTAsIHJ1bm5pbmcgTGludXgKIE5BVF9GSUxF PSBjb25maWcvbm0tbGludXguaAogTkFUREVQRklMRVM9IGluZi1wdHJhY2Uu byBmb3JrLWNoaWxkLm8gY29yZWxvdy5vIHMzOTAtbmF0Lm8gXAotCWdjb3Jl Lm8gbGludXgtdGhyZWFkLWRiLm8gcHJvYy1zZXJ2aWNlLm8gbGludXgtbmF0 Lm8gbGludXgtZm9yay5vCisJbGludXgtdGhyZWFkLWRiLm8gcHJvYy1zZXJ2 aWNlLm8gbGludXgtbmF0Lm8gbGludXgtZm9yay5vCiBMT0FETElCRVMgPSAt bGRsIC1yZHluYW1pYwotLS0gYS9jb25maWcvc3BhcmMvZmJzZC5taAorKysg Yi9jb25maWcvc3BhcmMvZmJzZC5taApAQCAtMSw2ICsxLDYgQEAKICMgSG9z dDogRnJlZUJTRC9zcGFyYzY0CiBOQVRERVBGSUxFUz0gZm9yay1jaGlsZC5v IGluZi1wdHJhY2UubyBcCiAJZmJzZC1uYXQubyBzcGFyYy1uYXQubyBzcGFy YzY0LW5hdC5vIHNwYXJjNjRmYnNkLW5hdC5vIFwKLQlnY29yZS5vIGJzZC1r dm0ubworCWJzZC1rdm0ubwogCiBMT0FETElCRVM9IC1sa3ZtCi0tLSBhL2Nv bmZpZy9zcGFyYy9saW51eC5taAorKysgYi9jb25maWcvc3BhcmMvbGludXgu bWgKQEAgLTMsNyArMyw3IEBAIE5BVF9GSUxFPSBjb25maWcvbm0tbGludXgu aAogTkFUREVQRklMRVM9IHNwYXJjLW5hdC5vIHNwYXJjLWxpbnV4LW5hdC5v IFwKIAljb3JlbG93Lm8gY29yZS1yZWdzZXQubyBmb3JrLWNoaWxkLm8gaW5m LXB0cmFjZS5vIFwKIAlwcm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIu byBcCi0JZ2NvcmUubyBsaW51eC1uYXQubyBsaW51eC1mb3JrLm8KKwlsaW51 eC1uYXQubyBsaW51eC1mb3JrLm8KIAogIyBUaGUgZHluYW1pY2FsbHkgbG9h ZGVkIGxpYnRocmVhZF9kYiBuZWVkcyBhY2Nlc3MgdG8gc3ltYm9scyBpbiB0 aGUKICMgZ2RiIGV4ZWN1dGFibGUuCi0tLSBhL2NvbmZpZy9zcGFyYy9saW51 eDY0Lm1oCisrKyBiL2NvbmZpZy9zcGFyYy9saW51eDY0Lm1oCkBAIC00LDcg KzQsNyBAQCBOQVRERVBGSUxFUz0gc3BhcmMtbmF0Lm8gc3BhcmM2NC1uYXQu byBzCiAJY29yZWxvdy5vIGNvcmUtcmVnc2V0Lm8gXAogCWZvcmstY2hpbGQu byBpbmYtcHRyYWNlLm8gXAogCXByb2Mtc2VydmljZS5vIGxpbnV4LXRocmVh ZC1kYi5vIFwKLQlnY29yZS5vIGxpbnV4LW5hdC5vIGxpbnV4LWZvcmsubwor CWxpbnV4LW5hdC5vIGxpbnV4LWZvcmsubwogCiAjIFRoZSBkeW5hbWljYWxs eSBsb2FkZWQgbGlidGhyZWFkX2RiIG5lZWRzIGFjY2VzcyB0byBzeW1ib2xz IGluIHRoZQogIyBnZGIgZXhlY3V0YWJsZS4KLS0tIGEvY29uZmlnL3NwYXJj L3NvbDIubWgKKysrIGIvY29uZmlnL3NwYXJjL3NvbDIubWgKQEAgLTEsNSAr MSw1IEBACiAjIEhvc3Q6IFNvbGFyaXMgU1BBUkMgJiBVbHRyYVNQQVJDCiBO QVRfRklMRT0gbm0tc29sMi5oCiBOQVRERVBGSUxFUz0gc3BhcmMtc29sMi1u YXQubyBcCi0JY29yZWxvdy5vIGNvcmUtcmVnc2V0Lm8gZm9yay1jaGlsZC5v IGdjb3JlLm8gXAorCWNvcmVsb3cubyBjb3JlLXJlZ3NldC5vIGZvcmstY2hp bGQubyBcCiAJcHJvY2ZzLm8gcHJvYy1hcGkubyBwcm9jLWV2ZW50cy5vIHBy b2MtZmxhZ3MubyBwcm9jLXdoeS5vCi0tLSBhL2NvbmZpZy94dGVuc2EvbGlu dXgubWgKKysrIGIvY29uZmlnL3h0ZW5zYS9saW51eC5taApAQCAtMiw3ICsy LDcgQEAKIAogTkFUX0ZJTEU9IGNvbmZpZy9ubS1saW51eC5oCiAKLU5BVERF UEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIHh0ZW5zYS1saW51 eC1uYXQubyBnY29yZS5vIFwKK05BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8g Zm9yay1jaGlsZC5vIHh0ZW5zYS1saW51eC1uYXQubyBcCiAJbGludXgtdGhy ZWFkLWRiLm8gcHJvYy1zZXJ2aWNlLm8gbGludXgtbmF0Lm8gbGludXgtZm9y ay5vCiAKIExPQURMSUJFUyA9IC1sZGwgLXJkeW5hbWljCi0tLSBhL3Rhcmdl dC5jCisrKyBiL3RhcmdldC5jCkBAIC0yNzUxLDE3ICsyNzUxLDE5IEBAIGR1 bW15X3BpZF90b19zdHIgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMKICAgcmV0 dXJuIG5vcm1hbF9waWRfdG9fc3RyIChwdGlkKTsKIH0KIAotLyogRXJyb3It Y2F0Y2hlciBmb3IgdGFyZ2V0X2ZpbmRfbWVtb3J5X3JlZ2lvbnMgKi8KLXN0 YXRpYyBpbnQgZHVtbXlfZmluZF9tZW1vcnlfcmVnaW9ucyAoaW50ICgqaWdu b3JlMSkgKCksIHZvaWQgKmlnbm9yZTIpCisvKiBFcnJvci1jYXRjaGVyIGZv ciB0YXJnZXRfZmluZF9tZW1vcnlfcmVnaW9ucy4gICovCitzdGF0aWMgaW50 CitkdW1teV9maW5kX21lbW9yeV9yZWdpb25zIChpbnQgKCppZ25vcmUxKSAo KSwgdm9pZCAqaWdub3JlMikKIHsKLSAgZXJyb3IgKF8oIk5vIHRhcmdldC4i KSk7CisgIGVycm9yIChfKCJDb21tYW5kIG5vdCBpbXBsZW1lbnRlZCBmb3Ig dGhpcyB0YXJnZXQuIikpOwogICByZXR1cm4gMDsKIH0KIAotLyogRXJyb3It Y2F0Y2hlciBmb3IgdGFyZ2V0X21ha2VfY29yZWZpbGVfbm90ZXMgKi8KLXN0 YXRpYyBjaGFyICogZHVtbXlfbWFrZV9jb3JlZmlsZV9ub3RlcyAoYmZkICpp Z25vcmUxLCBpbnQgKmlnbm9yZTIpCisvKiBFcnJvci1jYXRjaGVyIGZvciB0 YXJnZXRfbWFrZV9jb3JlZmlsZV9ub3Rlcy4gICovCitzdGF0aWMgY2hhciAq CitkdW1teV9tYWtlX2NvcmVmaWxlX25vdGVzIChiZmQgKmlnbm9yZTEsIGlu dCAqaWdub3JlMikKIHsKLSAgZXJyb3IgKF8oIk5vIHRhcmdldC4iKSk7Cisg IGVycm9yIChfKCJDb21tYW5kIG5vdCBpbXBsZW1lbnRlZCBmb3IgdGhpcyB0 YXJnZXQuIikpOwogICByZXR1cm4gTlVMTDsKIH0KIAo= --00504502b5351a45dd0476d1278f--