From owner-freebsd-java@FreeBSD.ORG Mon Apr 6 01:57:27 2015 Return-Path: Delivered-To: java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 37785F6A for ; Mon, 6 Apr 2015 01:57:27 +0000 (UTC) Received: from messages.atlantisservices.net (atlantisservices.net [96.39.127.150]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 06A19CC5 for ; Mon, 6 Apr 2015 01:57:26 +0000 (UTC) Received: from [192.168.0.6] (unknown [192.168.0.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by messages.atlantisservices.net (Postfix) with ESMTPSA id 05B6C19E57; Mon, 6 Apr 2015 01:57:18 +0000 (UTC) Message-ID: <5521E7FE.3090600@atlantisservices.net> Date: Sun, 05 Apr 2015 21:57:18 -0400 From: "ppathiakis@atlantisservices.net" User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: java@freebsd.org, Ronald Roskens Subject: Fwd: Re: [opennms-devel] OpenNMS 1.14+ on FreeBSD 8, 9, 10, 11 References: <7504A1F5-6C17-42D0-81E9-375C320235F5@elfin.net> In-Reply-To: <7504A1F5-6C17-42D0-81E9-375C320235F5@elfin.net> X-Forwarded-Message-Id: <7504A1F5-6C17-42D0-81E9-375C320235F5@elfin.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.18-1 X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2015 01:57:27 -0000 Forwarding to the java on freebsd project...... Hi Java! We have issues here that are problems with openjdk 7 and 8. Please acknowledge and confirm so we can all work on this together and get this resolved asap. I would like to see OpenNMS in the ports tree soon and this has already gone on for more than 6 months. Thank you! P. -------- Forwarded Message -------- Subject: Re: [opennms-devel] OpenNMS 1.14+ on FreeBSD 8, 9, 10, 11 Date: Sun, 5 Apr 2015 17:00:57 -0500 From: Ronald Roskens To: ppathiakis@atlantisservices.net > On Apr 5, 2015, at 9:38 AM, ppathiakis@atlantisservices.net wrote: > > Ron, > > Any hints on what I'm doing wrong with git and why it won't check out the develop section that you're providing. Also, if 1.8 is working with 1.16, I'm going to head in that direction for testing if that sounds good. > > Use my resources as you need to get things done. I'm here to help and learn so that I can support the FreeBSD port in the future. (Unless you want to run with it.) If the develop branch already exists, then # git checkout develop You should also pull up the latest commits. # git pull Then you could do the git merge. When I run OpenNMS 16.0.0-SNAPSHOT (develop) with either OpenJDK7 or OpenJDK8, I get a JVM crash dump. When I had installed OpenJDK7 and 8, I noticed there were config options for debugging. For both the slowdebug and fastdebug options, I re-installed OpenJDK8 and ran OpenNMS. Both times the JVM crashed within minutes of startup. Is there a way to compile OpenJDK8 using GCC rather than clang? Is there a way to compile OpenJDK8u60-b09 within the FreeBSD ports framework and use that to test running OpenNMS under? I found this PDF from Oracle on troubleshooting guide for Java SE 6, and assume it also applies to OpenJDK. http://www.oracle.com/technetwork/java/javase/tsg-vm-149989.pdf There were two JVM arguments that I found that are supposed to help debugging JNI or native methods. “-verbose:jni” and “-Xcheck:jni” and both arguments when added to the command line for OpenNMS caused the JVM to crash much earlier. Create the file $OPENNMS_HOME/etc/opennms.conf and add a line ADDITIONAL_MANAGER_OPTIONS=“Xcheck:jni -verbose:jni” and you’ll get the crash. As Jessie had posted earlier, one of the FreeBSD java port developers is needed to help diagnose it further from here. Ron From owner-freebsd-java@FreeBSD.ORG Mon Apr 6 12:40:59 2015 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 89BB3D50; Mon, 6 Apr 2015 12:40:59 +0000 (UTC) Received: from mail-ob0-x22d.google.com (mail-ob0-x22d.google.com [IPv6:2607:f8b0:4003:c01::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 49F6F1F7; Mon, 6 Apr 2015 12:40:59 +0000 (UTC) Received: by obbfy7 with SMTP id fy7so38085430obb.2; Mon, 06 Apr 2015 05:40:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=sOtDjscEozVKH943X0G+xFKib5zPdfETl/6sRSAuwts=; b=lvk6vqwFc6RxnZNPnQJRaxLJRaL0yf888HY/Tm4t05aAedib51BPQfxqHRXyJQ3A2f SPAKvT9op7UhivgT8f5w7CIIa7XhdodN2Nbdbvl991V3TVWD7KwK0Dl3AihY3Jh0ZgRc MDaKMfdASspxMyPn92Ec8bdF3+pEbrdlL2YkZX43IP/k3JEH2tvgsiYr+BjL5RfWAh+i ddAFbAR6yTlgb9Sb/TnqgvZTrmNuUz6s9I45sBqCoPSF6mtkEKLfNgvTfqzyUT0qdT53 N/9bzWnfG3KsVaLhzFTOnwm02CBwVDiK2iAt2Hqi+kwUamBQGFyaR+Br+sYFhcq/YCRB RjfQ== MIME-Version: 1.0 X-Received: by 10.60.176.69 with SMTP id cg5mr18104926oec.33.1428324058620; Mon, 06 Apr 2015 05:40:58 -0700 (PDT) Received: by 10.202.48.195 with HTTP; Mon, 6 Apr 2015 05:40:57 -0700 (PDT) In-Reply-To: <55146F51.3030404@FreeBSD.org> References: <55146F51.3030404@FreeBSD.org> Date: Mon, 6 Apr 2015 14:40:57 +0200 Message-ID: Subject: Re: dtrace, jstack and lang/openjdk7 or 8 From: Johannes Dieterich To: Jung-uk Kim , freebsd-java@freebsd.org Content-Type: multipart/mixed; boundary=089e0115f60223f8eb05130d9ce1 X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2015 12:40:59 -0000 --089e0115f60223f8eb05130d9ce1 Content-Type: text/plain; charset=UTF-8 Hi, sorry for the late response! On Thu, Mar 26, 2015 at 9:42 PM, Jung-uk Kim wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > On 03/25/2015 19:02, Johannes Dieterich wrote: >> Hi, >> >> I am currently trying to get dtrace to work with either >> java/openjdk7 or java/openjdk8 (as per Brendan Gregg's howto: >> http://www.brendangregg.com/blog/2014-06-12/java-flame-graphs.html). >> >> Unfortunately, I get exactly what he describes: I am missing >> everything inside the JVM. I suspect this has to do with jstack() >> not working. The bundled jstack executable (yes, I know that they >> are only vaguely related) also seems to work only so-so. Basically, >> I can get a working stack trace without a variable, with -l, but >> not with -m, and not with -F. It causes exceptions like this: >> >> $ /usr/local/openjdk7/bin/jstack -m 84749 > ... >> So, what I am asking is: anybody out there got a working setup for >> dtrace+openjdk on FreeBSD? If so, it would be fantastic if you >> could post the necessary steps! > > jstack from java/openjdk8 works fine AFAICT. Unfortunately, dtrace is > unimplemented for FreeBSD. I did a bit of research and found this in the hotspot sources: http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/src/os/bsd/dtrace/jhelper.d . Do I interpret this (and the entire directory) correctly that there are at least the stubs available in openJDK8? Is so, what is missing for dtrace to work? > BTW, 'jstack -m ' is invalid command, i.e., it does not work with > a running process. You need to set '-F' option to force it. > > % /usr/local/openjdk8/bin/jstack > Usage: > jstack [-l] > (to connect to running process) > jstack -F [-m] [-l] > (to connect to a hung process) > jstack [-m] [-l] > (to connect to a core file) > jstack [-m] [-l] [server_id@] > (to connect to a remote debug server) > > Options: > -F to force a thread dump. Use when jstack does not respond > (process is hung) > -m to print both java and native frames (mixed mode) > -l long listing. Prints additional information about locks > -h or -help to print this help message Thanks, it seems Dmitry below thinks -m should imply -F (so did I). Indeed, jstack -m -F $PID also throws a stack for me. I attached the full one, in case it helps? Thanks again for all the responses! Johannes > Jung-uk Kim > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2 > > iQEcBAEBCAAGBQJVFG9MAAoJEHyflib82/FG4F0H/3Z+5fTXMzQYBCeWGMZicjMB > 092HOaXctRZ5P+I5HZO199bfFLffV6Pu1pd2/jjguOqkmF4eVL6AXwQBglg19RPs > BEwhSLRLhuWc11XyikE2RG3PvvDRvhXl6AeqtKkcUi4LedjS3BlqmlGpTorJzpO3 > OqarnzGMyAHPS5QxPPUcASG4B+la6o1sVn94UiynUWnd3yXTe4uE4Ed4YeV2oBXh > BGVLhTdsWoamNpMwX9JrOMNwRPahYpoDCjeC2jlKPGPCXQiTWthlupLidXuKUI/a > OJi+VSAzNPMx5s1p2JSKwAp+tT6oX8BaFK0zA+J6cyBcBqqbWvA6LV+v9f8c/5A= > =x1pC > -----END PGP SIGNATURE----- --089e0115f60223f8eb05130d9ce1 Content-Type: application/octet-stream; name=full_stack Content-Disposition: attachment; filename=full_stack Content-Transfer-Encoding: base64 X-Attachment-Id: f_i85v915w0 QXR0YWNoaW5nIHRvIHByb2Nlc3MgSUQgODMwODYsIHBsZWFzZSB3YWl0Li4uCkRlYnVnZ2VyIGF0 dGFjaGVkIHN1Y2Nlc3NmdWxseS4KU2VydmVyIGNvbXBpbGVyIGRldGVjdGVkLgpKVk0gdmVyc2lv biBpcyAyNS40MC1iMjUKc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLkRlYnVnZ2VyRXhjZXB0aW9u OiBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuRGVidWdnZXJFeGNlcHRpb246IGdldF90aHJlYWRf cmVncyBmYWlsZWQgZm9yIGEgbHdwCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJz ZERlYnVnZ2VyTG9jYWwkQnNkRGVidWdnZXJMb2NhbFdvcmtlclRocmVhZC5leGVjdXRlKEJzZERl YnVnZ2VyTG9jYWwuamF2YToxNjkpCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJz ZERlYnVnZ2VyTG9jYWwuZ2V0VGhyZWFkSW50ZWdlclJlZ2lzdGVyU2V0KEJzZERlYnVnZ2VyTG9j YWwuamF2YTo0OTcpCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZFRocmVhZC5n ZXRDb250ZXh0KEJzZFRocmVhZC5qYXZhOjY4KQoJYXQgc3VuLmp2bS5ob3RzcG90LnJ1bnRpbWUu YnNkX2FtZDY0LkJzZEFNRDY0SmF2YVRocmVhZFBEQWNjZXNzLmdldEN1cnJlbnRGcmFtZUd1ZXNz KEJzZEFNRDY0SmF2YVRocmVhZFBEQWNjZXNzLmphdmE6OTcpCglhdCBzdW4uanZtLmhvdHNwb3Qu cnVudGltZS5KYXZhVGhyZWFkLmdldEN1cnJlbnRGcmFtZUd1ZXNzKEphdmFUaHJlYWQuamF2YToy NTYpCglhdCBzdW4uanZtLmhvdHNwb3QucnVudGltZS5KYXZhVGhyZWFkLmdldExhc3RKYXZhVkZy YW1lRGJnKEphdmFUaHJlYWQuamF2YToyMTgpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuUFN0 YWNrLmluaXRKRnJhbWVDYWNoZShQU3RhY2suamF2YToyMDMpCglhdCBzdW4uanZtLmhvdHNwb3Qu dG9vbHMuUFN0YWNrLnJ1bihQU3RhY2suamF2YTo3MSkKCWF0IHN1bi5qdm0uaG90c3BvdC50b29s cy5QU3RhY2sucnVuKFBTdGFjay5qYXZhOjU4KQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLlBT dGFjay5ydW4oUFN0YWNrLmphdmE6NTMpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuSlN0YWNr LnJ1bihKU3RhY2suamF2YTo2NikKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5Ub29sLnN0YXJ0 SW50ZXJuYWwoVG9vbC5qYXZhOjI2MCkKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5Ub29sLnN0 YXJ0KFRvb2wuamF2YToyMjMpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuVG9vbC5leGVjdXRl KFRvb2wuamF2YToxMTgpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuSlN0YWNrLm1haW4oSlN0 YWNrLmphdmE6OTIpCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52 b2tlMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJ bXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuamF2YTo2MikKCWF0IHN1bi5yZWZs ZWN0LkRlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKERlbGVnYXRpbmdNZXRob2RB Y2Nlc3NvckltcGwuamF2YTo0MykKCWF0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2Uo TWV0aG9kLmphdmE6NDk3KQoJYXQgc3VuLnRvb2xzLmpzdGFjay5KU3RhY2sucnVuSlN0YWNrVG9v bChKU3RhY2suamF2YToxNDApCglhdCBzdW4udG9vbHMuanN0YWNrLkpTdGFjay5tYWluKEpTdGFj ay5qYXZhOjEwNikKQ2F1c2VkIGJ5OiBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuRGVidWdnZXJF eGNlcHRpb246IGdldF90aHJlYWRfcmVncyBmYWlsZWQgZm9yIGEgbHdwCglhdCBzdW4uanZtLmhv dHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2VyTG9jYWwuZ2V0VGhyZWFkSW50ZWdlclJlZ2lz dGVyU2V0MChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJzZC5C c2REZWJ1Z2dlckxvY2FsLmFjY2VzcyQ4MDAoQnNkRGVidWdnZXJMb2NhbC5qYXZhOjY1KQoJYXQg c3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJzZC5Cc2REZWJ1Z2dlckxvY2FsJDFHZXRUaHJlYWRJ bnRlZ2VyUmVnaXN0ZXJTZXRUYXNrLmRvaXQoQnNkRGVidWdnZXJMb2NhbC5qYXZhOjQ5MSkKCWF0 IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2NhbCRCc2REZWJ1Z2dl ckxvY2FsV29ya2VyVGhyZWFkLnJ1bihCc2REZWJ1Z2dlckxvY2FsLmphdmE6MTQ0KQpzdW4uanZt LmhvdHNwb3QuZGVidWdnZXIuRGVidWdnZXJFeGNlcHRpb246IHN1bi5qdm0uaG90c3BvdC5kZWJ1 Z2dlci5EZWJ1Z2dlckV4Y2VwdGlvbjogZ2V0X3RocmVhZF9yZWdzIGZhaWxlZCBmb3IgYSBsd3AK CWF0IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2NhbCRCc2REZWJ1 Z2dlckxvY2FsV29ya2VyVGhyZWFkLmV4ZWN1dGUoQnNkRGVidWdnZXJMb2NhbC5qYXZhOjE2OSkK CWF0IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2NhbC5nZXRUaHJl YWRJbnRlZ2VyUmVnaXN0ZXJTZXQoQnNkRGVidWdnZXJMb2NhbC5qYXZhOjQ5NykKCWF0IHN1bi5q dm0uaG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNkVGhyZWFkLmdldENvbnRleHQoQnNkVGhyZWFkLmph dmE6NjgpCglhdCBzdW4uanZtLmhvdHNwb3QucnVudGltZS5ic2RfYW1kNjQuQnNkQU1ENjRKYXZh VGhyZWFkUERBY2Nlc3MuZ2V0Q3VycmVudEZyYW1lR3Vlc3MoQnNkQU1ENjRKYXZhVGhyZWFkUERB Y2Nlc3MuamF2YTo5NykKCWF0IHN1bi5qdm0uaG90c3BvdC5ydW50aW1lLkphdmFUaHJlYWQuZ2V0 Q3VycmVudEZyYW1lR3Vlc3MoSmF2YVRocmVhZC5qYXZhOjI1NikKCWF0IHN1bi5qdm0uaG90c3Bv dC5ydW50aW1lLkphdmFUaHJlYWQuZ2V0TGFzdEphdmFWRnJhbWVEYmcoSmF2YVRocmVhZC5qYXZh OjIxOCkKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5QU3RhY2suaW5pdEpGcmFtZUNhY2hlKFBT dGFjay5qYXZhOjIwMykKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5QU3RhY2sucnVuKFBTdGFj ay5qYXZhOjcxKQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLlBTdGFjay5ydW4oUFN0YWNrLmph dmE6NTgpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuUFN0YWNrLnJ1bihQU3RhY2suamF2YTo1 MykKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5KU3RhY2sucnVuKEpTdGFjay5qYXZhOjY2KQoJ YXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLlRvb2wuc3RhcnRJbnRlcm5hbChUb29sLmphdmE6MjYw KQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLlRvb2wuc3RhcnQoVG9vbC5qYXZhOjIyMykKCWF0 IHN1bi5qdm0uaG90c3BvdC50b29scy5Ub29sLmV4ZWN1dGUoVG9vbC5qYXZhOjExOCkKCWF0IHN1 bi5qdm0uaG90c3BvdC50b29scy5KU3RhY2subWFpbihKU3RhY2suamF2YTo5MikKCWF0IHN1bi5y ZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UwKE5hdGl2ZSBNZXRob2QpCglh dCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKE5hdGl2ZU1ldGhv ZEFjY2Vzc29ySW1wbC5qYXZhOjYyKQoJYXQgc3VuLnJlZmxlY3QuRGVsZWdhdGluZ01ldGhvZEFj Y2Vzc29ySW1wbC5pbnZva2UoRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjQzKQoJ YXQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZShNZXRob2QuamF2YTo0OTcpCglhdCBz dW4udG9vbHMuanN0YWNrLkpTdGFjay5ydW5KU3RhY2tUb29sKEpTdGFjay5qYXZhOjE0MCkKCWF0 IHN1bi50b29scy5qc3RhY2suSlN0YWNrLm1haW4oSlN0YWNrLmphdmE6MTA2KQpDYXVzZWQgYnk6 IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5EZWJ1Z2dlckV4Y2VwdGlvbjogZ2V0X3RocmVhZF9y ZWdzIGZhaWxlZCBmb3IgYSBsd3AKCWF0IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNk RGVidWdnZXJMb2NhbC5nZXRUaHJlYWRJbnRlZ2VyUmVnaXN0ZXJTZXQwKE5hdGl2ZSBNZXRob2Qp CglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2VyTG9jYWwuYWNjZXNz JDgwMChCc2REZWJ1Z2dlckxvY2FsLmphdmE6NjUpCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdn ZXIuYnNkLkJzZERlYnVnZ2VyTG9jYWwkMUdldFRocmVhZEludGVnZXJSZWdpc3RlclNldFRhc2su ZG9pdChCc2REZWJ1Z2dlckxvY2FsLmphdmE6NDkxKQoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVn Z2VyLmJzZC5Cc2REZWJ1Z2dlckxvY2FsJEJzZERlYnVnZ2VyTG9jYWxXb3JrZXJUaHJlYWQucnVu KEJzZERlYnVnZ2VyTG9jYWwuamF2YToxNDQpCnN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5EZWJ1 Z2dlckV4Y2VwdGlvbjogc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLkRlYnVnZ2VyRXhjZXB0aW9u OiBnZXRfdGhyZWFkX3JlZ3MgZmFpbGVkIGZvciBhIGx3cAoJYXQgc3VuLmp2bS5ob3RzcG90LmRl YnVnZ2VyLmJzZC5Cc2REZWJ1Z2dlckxvY2FsJEJzZERlYnVnZ2VyTG9jYWxXb3JrZXJUaHJlYWQu ZXhlY3V0ZShCc2REZWJ1Z2dlckxvY2FsLmphdmE6MTY5KQoJYXQgc3VuLmp2bS5ob3RzcG90LmRl YnVnZ2VyLmJzZC5Cc2REZWJ1Z2dlckxvY2FsLmdldFRocmVhZEludGVnZXJSZWdpc3RlclNldChC c2REZWJ1Z2dlckxvY2FsLmphdmE6NDk3KQoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJz ZC5Cc2RUaHJlYWQuZ2V0Q29udGV4dChCc2RUaHJlYWQuamF2YTo2OCkKCWF0IHN1bi5qdm0uaG90 c3BvdC5ydW50aW1lLmJzZF9hbWQ2NC5Cc2RBTUQ2NEphdmFUaHJlYWRQREFjY2Vzcy5nZXRDdXJy ZW50RnJhbWVHdWVzcyhCc2RBTUQ2NEphdmFUaHJlYWRQREFjY2Vzcy5qYXZhOjk3KQoJYXQgc3Vu Lmp2bS5ob3RzcG90LnJ1bnRpbWUuSmF2YVRocmVhZC5nZXRDdXJyZW50RnJhbWVHdWVzcyhKYXZh VGhyZWFkLmphdmE6MjU2KQoJYXQgc3VuLmp2bS5ob3RzcG90LnJ1bnRpbWUuSmF2YVRocmVhZC5n ZXRMYXN0SmF2YVZGcmFtZURiZyhKYXZhVGhyZWFkLmphdmE6MjE4KQoJYXQgc3VuLmp2bS5ob3Rz cG90LnRvb2xzLlBTdGFjay5pbml0SkZyYW1lQ2FjaGUoUFN0YWNrLmphdmE6MjAzKQoJYXQgc3Vu Lmp2bS5ob3RzcG90LnRvb2xzLlBTdGFjay5ydW4oUFN0YWNrLmphdmE6NzEpCglhdCBzdW4uanZt LmhvdHNwb3QudG9vbHMuUFN0YWNrLnJ1bihQU3RhY2suamF2YTo1OCkKCWF0IHN1bi5qdm0uaG90 c3BvdC50b29scy5QU3RhY2sucnVuKFBTdGFjay5qYXZhOjUzKQoJYXQgc3VuLmp2bS5ob3RzcG90 LnRvb2xzLkpTdGFjay5ydW4oSlN0YWNrLmphdmE6NjYpCglhdCBzdW4uanZtLmhvdHNwb3QudG9v bHMuVG9vbC5zdGFydEludGVybmFsKFRvb2wuamF2YToyNjApCglhdCBzdW4uanZtLmhvdHNwb3Qu dG9vbHMuVG9vbC5zdGFydChUb29sLmphdmE6MjIzKQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xz LlRvb2wuZXhlY3V0ZShUb29sLmphdmE6MTE4KQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLkpT dGFjay5tYWluKEpTdGFjay5qYXZhOjkyKQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNj ZXNzb3JJbXBsLmludm9rZTAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1l dGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NjIp CglhdCBzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxl Z2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NDMpCglhdCBqYXZhLmxhbmcucmVmbGVjdC5N ZXRob2QuaW52b2tlKE1ldGhvZC5qYXZhOjQ5NykKCWF0IHN1bi50b29scy5qc3RhY2suSlN0YWNr LnJ1bkpTdGFja1Rvb2woSlN0YWNrLmphdmE6MTQwKQoJYXQgc3VuLnRvb2xzLmpzdGFjay5KU3Rh Y2subWFpbihKU3RhY2suamF2YToxMDYpCkNhdXNlZCBieTogc3VuLmp2bS5ob3RzcG90LmRlYnVn Z2VyLkRlYnVnZ2VyRXhjZXB0aW9uOiBnZXRfdGhyZWFkX3JlZ3MgZmFpbGVkIGZvciBhIGx3cAoJ YXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJzZC5Cc2REZWJ1Z2dlckxvY2FsLmdldFRocmVh ZEludGVnZXJSZWdpc3RlclNldDAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5qdm0uaG90c3BvdC5k ZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2NhbC5hY2Nlc3MkODAwKEJzZERlYnVnZ2VyTG9jYWwu amF2YTo2NSkKCWF0IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2Nh bCQxR2V0VGhyZWFkSW50ZWdlclJlZ2lzdGVyU2V0VGFzay5kb2l0KEJzZERlYnVnZ2VyTG9jYWwu amF2YTo0OTEpCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2VyTG9j YWwkQnNkRGVidWdnZXJMb2NhbFdvcmtlclRocmVhZC5ydW4oQnNkRGVidWdnZXJMb2NhbC5qYXZh OjE0NCkKc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLkRlYnVnZ2VyRXhjZXB0aW9uOiBzdW4uanZt LmhvdHNwb3QuZGVidWdnZXIuRGVidWdnZXJFeGNlcHRpb246IGdldF90aHJlYWRfcmVncyBmYWls ZWQgZm9yIGEgbHdwCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2Vy TG9jYWwkQnNkRGVidWdnZXJMb2NhbFdvcmtlclRocmVhZC5leGVjdXRlKEJzZERlYnVnZ2VyTG9j YWwuamF2YToxNjkpCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2Vy TG9jYWwuZ2V0VGhyZWFkSW50ZWdlclJlZ2lzdGVyU2V0KEJzZERlYnVnZ2VyTG9jYWwuamF2YTo0 OTcpCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZFRocmVhZC5nZXRDb250ZXh0 KEJzZFRocmVhZC5qYXZhOjY4KQoJYXQgc3VuLmp2bS5ob3RzcG90LnJ1bnRpbWUuYnNkX2FtZDY0 LkJzZEFNRDY0SmF2YVRocmVhZFBEQWNjZXNzLmdldEN1cnJlbnRGcmFtZUd1ZXNzKEJzZEFNRDY0 SmF2YVRocmVhZFBEQWNjZXNzLmphdmE6OTcpCglhdCBzdW4uanZtLmhvdHNwb3QucnVudGltZS5K YXZhVGhyZWFkLmdldEN1cnJlbnRGcmFtZUd1ZXNzKEphdmFUaHJlYWQuamF2YToyNTYpCglhdCBz dW4uanZtLmhvdHNwb3QucnVudGltZS5KYXZhVGhyZWFkLmdldExhc3RKYXZhVkZyYW1lRGJnKEph dmFUaHJlYWQuamF2YToyMTgpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuUFN0YWNrLmluaXRK RnJhbWVDYWNoZShQU3RhY2suamF2YToyMDMpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuUFN0 YWNrLnJ1bihQU3RhY2suamF2YTo3MSkKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5QU3RhY2su cnVuKFBTdGFjay5qYXZhOjU4KQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLlBTdGFjay5ydW4o UFN0YWNrLmphdmE6NTMpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuSlN0YWNrLnJ1bihKU3Rh Y2suamF2YTo2NikKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5Ub29sLnN0YXJ0SW50ZXJuYWwo VG9vbC5qYXZhOjI2MCkKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5Ub29sLnN0YXJ0KFRvb2wu amF2YToyMjMpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuVG9vbC5leGVjdXRlKFRvb2wuamF2 YToxMTgpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuSlN0YWNrLm1haW4oSlN0YWNrLmphdmE6 OTIpCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRp dmUgTWV0aG9kKQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9r ZShOYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuamF2YTo2MikKCWF0IHN1bi5yZWZsZWN0LkRlbGVn YXRpbmdNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKERlbGVnYXRpbmdNZXRob2RBY2Nlc3Nvcklt cGwuamF2YTo0MykKCWF0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UoTWV0aG9kLmph dmE6NDk3KQoJYXQgc3VuLnRvb2xzLmpzdGFjay5KU3RhY2sucnVuSlN0YWNrVG9vbChKU3RhY2su amF2YToxNDApCglhdCBzdW4udG9vbHMuanN0YWNrLkpTdGFjay5tYWluKEpTdGFjay5qYXZhOjEw NikKQ2F1c2VkIGJ5OiBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuRGVidWdnZXJFeGNlcHRpb246 IGdldF90aHJlYWRfcmVncyBmYWlsZWQgZm9yIGEgbHdwCglhdCBzdW4uanZtLmhvdHNwb3QuZGVi dWdnZXIuYnNkLkJzZERlYnVnZ2VyTG9jYWwuZ2V0VGhyZWFkSW50ZWdlclJlZ2lzdGVyU2V0MChO YXRpdmUgTWV0aG9kKQoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJzZC5Cc2REZWJ1Z2dl ckxvY2FsLmFjY2VzcyQ4MDAoQnNkRGVidWdnZXJMb2NhbC5qYXZhOjY1KQoJYXQgc3VuLmp2bS5o b3RzcG90LmRlYnVnZ2VyLmJzZC5Cc2REZWJ1Z2dlckxvY2FsJDFHZXRUaHJlYWRJbnRlZ2VyUmVn aXN0ZXJTZXRUYXNrLmRvaXQoQnNkRGVidWdnZXJMb2NhbC5qYXZhOjQ5MSkKCWF0IHN1bi5qdm0u aG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2NhbCRCc2REZWJ1Z2dlckxvY2FsV29y a2VyVGhyZWFkLnJ1bihCc2REZWJ1Z2dlckxvY2FsLmphdmE6MTQ0KQpzdW4uanZtLmhvdHNwb3Qu ZGVidWdnZXIuRGVidWdnZXJFeGNlcHRpb246IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5EZWJ1 Z2dlckV4Y2VwdGlvbjogZ2V0X3RocmVhZF9yZWdzIGZhaWxlZCBmb3IgYSBsd3AKCWF0IHN1bi5q dm0uaG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2NhbCRCc2REZWJ1Z2dlckxvY2Fs V29ya2VyVGhyZWFkLmV4ZWN1dGUoQnNkRGVidWdnZXJMb2NhbC5qYXZhOjE2OSkKCWF0IHN1bi5q dm0uaG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2NhbC5nZXRUaHJlYWRJbnRlZ2Vy UmVnaXN0ZXJTZXQoQnNkRGVidWdnZXJMb2NhbC5qYXZhOjQ5NykKCWF0IHN1bi5qdm0uaG90c3Bv dC5kZWJ1Z2dlci5ic2QuQnNkVGhyZWFkLmdldENvbnRleHQoQnNkVGhyZWFkLmphdmE6NjgpCglh dCBzdW4uanZtLmhvdHNwb3QucnVudGltZS5ic2RfYW1kNjQuQnNkQU1ENjRKYXZhVGhyZWFkUERB Y2Nlc3MuZ2V0Q3VycmVudEZyYW1lR3Vlc3MoQnNkQU1ENjRKYXZhVGhyZWFkUERBY2Nlc3MuamF2 YTo5NykKCWF0IHN1bi5qdm0uaG90c3BvdC5ydW50aW1lLkphdmFUaHJlYWQuZ2V0Q3VycmVudEZy YW1lR3Vlc3MoSmF2YVRocmVhZC5qYXZhOjI1NikKCWF0IHN1bi5qdm0uaG90c3BvdC5ydW50aW1l LkphdmFUaHJlYWQuZ2V0TGFzdEphdmFWRnJhbWVEYmcoSmF2YVRocmVhZC5qYXZhOjIxOCkKCWF0 IHN1bi5qdm0uaG90c3BvdC50b29scy5QU3RhY2suaW5pdEpGcmFtZUNhY2hlKFBTdGFjay5qYXZh OjIwMykKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5QU3RhY2sucnVuKFBTdGFjay5qYXZhOjcx KQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLlBTdGFjay5ydW4oUFN0YWNrLmphdmE6NTgpCglh dCBzdW4uanZtLmhvdHNwb3QudG9vbHMuUFN0YWNrLnJ1bihQU3RhY2suamF2YTo1MykKCWF0IHN1 bi5qdm0uaG90c3BvdC50b29scy5KU3RhY2sucnVuKEpTdGFjay5qYXZhOjY2KQoJYXQgc3VuLmp2 bS5ob3RzcG90LnRvb2xzLlRvb2wuc3RhcnRJbnRlcm5hbChUb29sLmphdmE6MjYwKQoJYXQgc3Vu Lmp2bS5ob3RzcG90LnRvb2xzLlRvb2wuc3RhcnQoVG9vbC5qYXZhOjIyMykKCWF0IHN1bi5qdm0u aG90c3BvdC50b29scy5Ub29sLmV4ZWN1dGUoVG9vbC5qYXZhOjExOCkKCWF0IHN1bi5qdm0uaG90 c3BvdC50b29scy5KU3RhY2subWFpbihKU3RhY2suamF2YTo5MikKCWF0IHN1bi5yZWZsZWN0Lk5h dGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ucmVm bGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKE5hdGl2ZU1ldGhvZEFjY2Vzc29y SW1wbC5qYXZhOjYyKQoJYXQgc3VuLnJlZmxlY3QuRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1w bC5pbnZva2UoRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjQzKQoJYXQgamF2YS5s YW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZShNZXRob2QuamF2YTo0OTcpCglhdCBzdW4udG9vbHMu anN0YWNrLkpTdGFjay5ydW5KU3RhY2tUb29sKEpTdGFjay5qYXZhOjE0MCkKCWF0IHN1bi50b29s cy5qc3RhY2suSlN0YWNrLm1haW4oSlN0YWNrLmphdmE6MTA2KQpDYXVzZWQgYnk6IHN1bi5qdm0u aG90c3BvdC5kZWJ1Z2dlci5EZWJ1Z2dlckV4Y2VwdGlvbjogZ2V0X3RocmVhZF9yZWdzIGZhaWxl ZCBmb3IgYSBsd3AKCWF0IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJM b2NhbC5nZXRUaHJlYWRJbnRlZ2VyUmVnaXN0ZXJTZXQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4u anZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2VyTG9jYWwuYWNjZXNzJDgwMChCc2RE ZWJ1Z2dlckxvY2FsLmphdmE6NjUpCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJz ZERlYnVnZ2VyTG9jYWwkMUdldFRocmVhZEludGVnZXJSZWdpc3RlclNldFRhc2suZG9pdChCc2RE ZWJ1Z2dlckxvY2FsLmphdmE6NDkxKQoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJzZC5C c2REZWJ1Z2dlckxvY2FsJEJzZERlYnVnZ2VyTG9jYWxXb3JrZXJUaHJlYWQucnVuKEJzZERlYnVn Z2VyTG9jYWwuamF2YToxNDQpCnN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5EZWJ1Z2dlckV4Y2Vw dGlvbjogc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLkRlYnVnZ2VyRXhjZXB0aW9uOiBnZXRfdGhy ZWFkX3JlZ3MgZmFpbGVkIGZvciBhIGx3cAoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJz ZC5Cc2REZWJ1Z2dlckxvY2FsJEJzZERlYnVnZ2VyTG9jYWxXb3JrZXJUaHJlYWQuZXhlY3V0ZShC c2REZWJ1Z2dlckxvY2FsLmphdmE6MTY5KQoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJz ZC5Cc2REZWJ1Z2dlckxvY2FsLmdldFRocmVhZEludGVnZXJSZWdpc3RlclNldChCc2REZWJ1Z2dl ckxvY2FsLmphdmE6NDk3KQoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJzZC5Cc2RUaHJl YWQuZ2V0Q29udGV4dChCc2RUaHJlYWQuamF2YTo2OCkKCWF0IHN1bi5qdm0uaG90c3BvdC5ydW50 aW1lLmJzZF9hbWQ2NC5Cc2RBTUQ2NEphdmFUaHJlYWRQREFjY2Vzcy5nZXRDdXJyZW50RnJhbWVH dWVzcyhCc2RBTUQ2NEphdmFUaHJlYWRQREFjY2Vzcy5qYXZhOjk3KQoJYXQgc3VuLmp2bS5ob3Rz cG90LnJ1bnRpbWUuSmF2YVRocmVhZC5nZXRDdXJyZW50RnJhbWVHdWVzcyhKYXZhVGhyZWFkLmph dmE6MjU2KQoJYXQgc3VuLmp2bS5ob3RzcG90LnJ1bnRpbWUuSmF2YVRocmVhZC5nZXRMYXN0SmF2 YVZGcmFtZURiZyhKYXZhVGhyZWFkLmphdmE6MjE4KQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xz LlBTdGFjay5pbml0SkZyYW1lQ2FjaGUoUFN0YWNrLmphdmE6MjAzKQoJYXQgc3VuLmp2bS5ob3Rz cG90LnRvb2xzLlBTdGFjay5ydW4oUFN0YWNrLmphdmE6NzEpCglhdCBzdW4uanZtLmhvdHNwb3Qu dG9vbHMuUFN0YWNrLnJ1bihQU3RhY2suamF2YTo1OCkKCWF0IHN1bi5qdm0uaG90c3BvdC50b29s cy5QU3RhY2sucnVuKFBTdGFjay5qYXZhOjUzKQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLkpT dGFjay5ydW4oSlN0YWNrLmphdmE6NjYpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuVG9vbC5z dGFydEludGVybmFsKFRvb2wuamF2YToyNjApCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuVG9v bC5zdGFydChUb29sLmphdmE6MjIzKQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLlRvb2wuZXhl Y3V0ZShUb29sLmphdmE6MTE4KQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLkpTdGFjay5tYWlu KEpTdGFjay5qYXZhOjkyKQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBs Lmludm9rZTAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vz c29ySW1wbC5pbnZva2UoTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NjIpCglhdCBzdW4u cmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0 aG9kQWNjZXNzb3JJbXBsLmphdmE6NDMpCglhdCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52 b2tlKE1ldGhvZC5qYXZhOjQ5NykKCWF0IHN1bi50b29scy5qc3RhY2suSlN0YWNrLnJ1bkpTdGFj a1Rvb2woSlN0YWNrLmphdmE6MTQwKQoJYXQgc3VuLnRvb2xzLmpzdGFjay5KU3RhY2subWFpbihK U3RhY2suamF2YToxMDYpCkNhdXNlZCBieTogc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLkRlYnVn Z2VyRXhjZXB0aW9uOiBnZXRfdGhyZWFkX3JlZ3MgZmFpbGVkIGZvciBhIGx3cAoJYXQgc3VuLmp2 bS5ob3RzcG90LmRlYnVnZ2VyLmJzZC5Cc2REZWJ1Z2dlckxvY2FsLmdldFRocmVhZEludGVnZXJS ZWdpc3RlclNldDAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5i c2QuQnNkRGVidWdnZXJMb2NhbC5hY2Nlc3MkODAwKEJzZERlYnVnZ2VyTG9jYWwuamF2YTo2NSkK CWF0IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2NhbCQxR2V0VGhy ZWFkSW50ZWdlclJlZ2lzdGVyU2V0VGFzay5kb2l0KEJzZERlYnVnZ2VyTG9jYWwuamF2YTo0OTEp CglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2VyTG9jYWwkQnNkRGVi dWdnZXJMb2NhbFdvcmtlclRocmVhZC5ydW4oQnNkRGVidWdnZXJMb2NhbC5qYXZhOjE0NCkKc3Vu Lmp2bS5ob3RzcG90LmRlYnVnZ2VyLkRlYnVnZ2VyRXhjZXB0aW9uOiBzdW4uanZtLmhvdHNwb3Qu ZGVidWdnZXIuRGVidWdnZXJFeGNlcHRpb246IGdldF90aHJlYWRfcmVncyBmYWlsZWQgZm9yIGEg bHdwCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2VyTG9jYWwkQnNk RGVidWdnZXJMb2NhbFdvcmtlclRocmVhZC5leGVjdXRlKEJzZERlYnVnZ2VyTG9jYWwuamF2YTox NjkpCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2VyTG9jYWwuZ2V0 VGhyZWFkSW50ZWdlclJlZ2lzdGVyU2V0KEJzZERlYnVnZ2VyTG9jYWwuamF2YTo0OTcpCglhdCBz dW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZFRocmVhZC5nZXRDb250ZXh0KEJzZFRocmVh ZC5qYXZhOjY4KQoJYXQgc3VuLmp2bS5ob3RzcG90LnJ1bnRpbWUuYnNkX2FtZDY0LkJzZEFNRDY0 SmF2YVRocmVhZFBEQWNjZXNzLmdldEN1cnJlbnRGcmFtZUd1ZXNzKEJzZEFNRDY0SmF2YVRocmVh ZFBEQWNjZXNzLmphdmE6OTcpCglhdCBzdW4uanZtLmhvdHNwb3QucnVudGltZS5KYXZhVGhyZWFk LmdldEN1cnJlbnRGcmFtZUd1ZXNzKEphdmFUaHJlYWQuamF2YToyNTYpCglhdCBzdW4uanZtLmhv dHNwb3QucnVudGltZS5KYXZhVGhyZWFkLmdldExhc3RKYXZhVkZyYW1lRGJnKEphdmFUaHJlYWQu amF2YToyMTgpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuUFN0YWNrLmluaXRKRnJhbWVDYWNo ZShQU3RhY2suamF2YToyMDMpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuUFN0YWNrLnJ1bihQ U3RhY2suamF2YTo3MSkKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5QU3RhY2sucnVuKFBTdGFj ay5qYXZhOjU4KQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLlBTdGFjay5ydW4oUFN0YWNrLmph dmE6NTMpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuSlN0YWNrLnJ1bihKU3RhY2suamF2YTo2 NikKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5Ub29sLnN0YXJ0SW50ZXJuYWwoVG9vbC5qYXZh OjI2MCkKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5Ub29sLnN0YXJ0KFRvb2wuamF2YToyMjMp CglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuVG9vbC5leGVjdXRlKFRvb2wuamF2YToxMTgpCglh dCBzdW4uanZtLmhvdHNwb3QudG9vbHMuSlN0YWNrLm1haW4oSlN0YWNrLmphdmE6OTIpCglhdCBz dW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgTWV0aG9k KQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVN ZXRob2RBY2Nlc3NvckltcGwuamF2YTo2MikKCWF0IHN1bi5yZWZsZWN0LkRlbGVnYXRpbmdNZXRo b2RBY2Nlc3NvckltcGwuaW52b2tlKERlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuamF2YTo0 MykKCWF0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UoTWV0aG9kLmphdmE6NDk3KQoJ YXQgc3VuLnRvb2xzLmpzdGFjay5KU3RhY2sucnVuSlN0YWNrVG9vbChKU3RhY2suamF2YToxNDAp CglhdCBzdW4udG9vbHMuanN0YWNrLkpTdGFjay5tYWluKEpTdGFjay5qYXZhOjEwNikKQ2F1c2Vk IGJ5OiBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuRGVidWdnZXJFeGNlcHRpb246IGdldF90aHJl YWRfcmVncyBmYWlsZWQgZm9yIGEgbHdwCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNk LkJzZERlYnVnZ2VyTG9jYWwuZ2V0VGhyZWFkSW50ZWdlclJlZ2lzdGVyU2V0MChOYXRpdmUgTWV0 aG9kKQoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJzZC5Cc2REZWJ1Z2dlckxvY2FsLmFj Y2VzcyQ4MDAoQnNkRGVidWdnZXJMb2NhbC5qYXZhOjY1KQoJYXQgc3VuLmp2bS5ob3RzcG90LmRl YnVnZ2VyLmJzZC5Cc2REZWJ1Z2dlckxvY2FsJDFHZXRUaHJlYWRJbnRlZ2VyUmVnaXN0ZXJTZXRU YXNrLmRvaXQoQnNkRGVidWdnZXJMb2NhbC5qYXZhOjQ5MSkKCWF0IHN1bi5qdm0uaG90c3BvdC5k ZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2NhbCRCc2REZWJ1Z2dlckxvY2FsV29ya2VyVGhyZWFk LnJ1bihCc2REZWJ1Z2dlckxvY2FsLmphdmE6MTQ0KQpzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIu RGVidWdnZXJFeGNlcHRpb246IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5EZWJ1Z2dlckV4Y2Vw dGlvbjogZ2V0X3RocmVhZF9yZWdzIGZhaWxlZCBmb3IgYSBsd3AKCWF0IHN1bi5qdm0uaG90c3Bv dC5kZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2NhbCRCc2REZWJ1Z2dlckxvY2FsV29ya2VyVGhy ZWFkLmV4ZWN1dGUoQnNkRGVidWdnZXJMb2NhbC5qYXZhOjE2OSkKCWF0IHN1bi5qdm0uaG90c3Bv dC5kZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2NhbC5nZXRUaHJlYWRJbnRlZ2VyUmVnaXN0ZXJT ZXQoQnNkRGVidWdnZXJMb2NhbC5qYXZhOjQ5NykKCWF0IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dl ci5ic2QuQnNkVGhyZWFkLmdldENvbnRleHQoQnNkVGhyZWFkLmphdmE6NjgpCglhdCBzdW4uanZt LmhvdHNwb3QucnVudGltZS5ic2RfYW1kNjQuQnNkQU1ENjRKYXZhVGhyZWFkUERBY2Nlc3MuZ2V0 Q3VycmVudEZyYW1lR3Vlc3MoQnNkQU1ENjRKYXZhVGhyZWFkUERBY2Nlc3MuamF2YTo5NykKCWF0 IHN1bi5qdm0uaG90c3BvdC5ydW50aW1lLkphdmFUaHJlYWQuZ2V0Q3VycmVudEZyYW1lR3Vlc3Mo SmF2YVRocmVhZC5qYXZhOjI1NikKCWF0IHN1bi5qdm0uaG90c3BvdC5ydW50aW1lLkphdmFUaHJl YWQuZ2V0TGFzdEphdmFWRnJhbWVEYmcoSmF2YVRocmVhZC5qYXZhOjIxOCkKCWF0IHN1bi5qdm0u aG90c3BvdC50b29scy5QU3RhY2suaW5pdEpGcmFtZUNhY2hlKFBTdGFjay5qYXZhOjIwMykKCWF0 IHN1bi5qdm0uaG90c3BvdC50b29scy5QU3RhY2sucnVuKFBTdGFjay5qYXZhOjcxKQoJYXQgc3Vu Lmp2bS5ob3RzcG90LnRvb2xzLlBTdGFjay5ydW4oUFN0YWNrLmphdmE6NTgpCglhdCBzdW4uanZt LmhvdHNwb3QudG9vbHMuUFN0YWNrLnJ1bihQU3RhY2suamF2YTo1MykKCWF0IHN1bi5qdm0uaG90 c3BvdC50b29scy5KU3RhY2sucnVuKEpTdGFjay5qYXZhOjY2KQoJYXQgc3VuLmp2bS5ob3RzcG90 LnRvb2xzLlRvb2wuc3RhcnRJbnRlcm5hbChUb29sLmphdmE6MjYwKQoJYXQgc3VuLmp2bS5ob3Rz cG90LnRvb2xzLlRvb2wuc3RhcnQoVG9vbC5qYXZhOjIyMykKCWF0IHN1bi5qdm0uaG90c3BvdC50 b29scy5Ub29sLmV4ZWN1dGUoVG9vbC5qYXZhOjExOCkKCWF0IHN1bi5qdm0uaG90c3BvdC50b29s cy5KU3RhY2subWFpbihKU3RhY2suamF2YTo5MikKCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhv ZEFjY2Vzc29ySW1wbC5pbnZva2UwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ucmVmbGVjdC5OYXRp dmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKE5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5qYXZh OjYyKQoJYXQgc3VuLnJlZmxlY3QuRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2Uo RGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjQzKQoJYXQgamF2YS5sYW5nLnJlZmxl Y3QuTWV0aG9kLmludm9rZShNZXRob2QuamF2YTo0OTcpCglhdCBzdW4udG9vbHMuanN0YWNrLkpT dGFjay5ydW5KU3RhY2tUb29sKEpTdGFjay5qYXZhOjE0MCkKCWF0IHN1bi50b29scy5qc3RhY2su SlN0YWNrLm1haW4oSlN0YWNrLmphdmE6MTA2KQpDYXVzZWQgYnk6IHN1bi5qdm0uaG90c3BvdC5k ZWJ1Z2dlci5EZWJ1Z2dlckV4Y2VwdGlvbjogZ2V0X3RocmVhZF9yZWdzIGZhaWxlZCBmb3IgYSBs d3AKCWF0IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2NhbC5nZXRU aHJlYWRJbnRlZ2VyUmVnaXN0ZXJTZXQwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4uanZtLmhvdHNw b3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2VyTG9jYWwuYWNjZXNzJDgwMChCc2REZWJ1Z2dlckxv Y2FsLmphdmE6NjUpCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2Vy TG9jYWwkMUdldFRocmVhZEludGVnZXJSZWdpc3RlclNldFRhc2suZG9pdChCc2REZWJ1Z2dlckxv Y2FsLmphdmE6NDkxKQoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJzZC5Cc2REZWJ1Z2dl ckxvY2FsJEJzZERlYnVnZ2VyTG9jYWxXb3JrZXJUaHJlYWQucnVuKEJzZERlYnVnZ2VyTG9jYWwu amF2YToxNDQpCnN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5EZWJ1Z2dlckV4Y2VwdGlvbjogc3Vu Lmp2bS5ob3RzcG90LmRlYnVnZ2VyLkRlYnVnZ2VyRXhjZXB0aW9uOiBnZXRfdGhyZWFkX3JlZ3Mg ZmFpbGVkIGZvciBhIGx3cAoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJzZC5Cc2REZWJ1 Z2dlckxvY2FsJEJzZERlYnVnZ2VyTG9jYWxXb3JrZXJUaHJlYWQuZXhlY3V0ZShCc2REZWJ1Z2dl ckxvY2FsLmphdmE6MTY5KQoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJzZC5Cc2REZWJ1 Z2dlckxvY2FsLmdldFRocmVhZEludGVnZXJSZWdpc3RlclNldChCc2REZWJ1Z2dlckxvY2FsLmph dmE6NDk3KQoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJzZC5Cc2RUaHJlYWQuZ2V0Q29u dGV4dChCc2RUaHJlYWQuamF2YTo2OCkKCWF0IHN1bi5qdm0uaG90c3BvdC5ydW50aW1lLmJzZF9h bWQ2NC5Cc2RBTUQ2NEphdmFUaHJlYWRQREFjY2Vzcy5nZXRDdXJyZW50RnJhbWVHdWVzcyhCc2RB TUQ2NEphdmFUaHJlYWRQREFjY2Vzcy5qYXZhOjk3KQoJYXQgc3VuLmp2bS5ob3RzcG90LnJ1bnRp bWUuSmF2YVRocmVhZC5nZXRDdXJyZW50RnJhbWVHdWVzcyhKYXZhVGhyZWFkLmphdmE6MjU2KQoJ YXQgc3VuLmp2bS5ob3RzcG90LnJ1bnRpbWUuSmF2YVRocmVhZC5nZXRMYXN0SmF2YVZGcmFtZURi ZyhKYXZhVGhyZWFkLmphdmE6MjE4KQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLlBTdGFjay5p bml0SkZyYW1lQ2FjaGUoUFN0YWNrLmphdmE6MjAzKQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xz LlBTdGFjay5ydW4oUFN0YWNrLmphdmE6NzEpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuUFN0 YWNrLnJ1bihQU3RhY2suamF2YTo1OCkKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5QU3RhY2su cnVuKFBTdGFjay5qYXZhOjUzKQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLkpTdGFjay5ydW4o SlN0YWNrLmphdmE6NjYpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuVG9vbC5zdGFydEludGVy bmFsKFRvb2wuamF2YToyNjApCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuVG9vbC5zdGFydChU b29sLmphdmE6MjIzKQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLlRvb2wuZXhlY3V0ZShUb29s LmphdmE6MTE4KQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLkpTdGFjay5tYWluKEpTdGFjay5q YXZhOjkyKQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZTAo TmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5p bnZva2UoTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NjIpCglhdCBzdW4ucmVmbGVjdC5E ZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNz b3JJbXBsLmphdmE6NDMpCglhdCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlKE1ldGhv ZC5qYXZhOjQ5NykKCWF0IHN1bi50b29scy5qc3RhY2suSlN0YWNrLnJ1bkpTdGFja1Rvb2woSlN0 YWNrLmphdmE6MTQwKQoJYXQgc3VuLnRvb2xzLmpzdGFjay5KU3RhY2subWFpbihKU3RhY2suamF2 YToxMDYpCkNhdXNlZCBieTogc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLkRlYnVnZ2VyRXhjZXB0 aW9uOiBnZXRfdGhyZWFkX3JlZ3MgZmFpbGVkIGZvciBhIGx3cAoJYXQgc3VuLmp2bS5ob3RzcG90 LmRlYnVnZ2VyLmJzZC5Cc2REZWJ1Z2dlckxvY2FsLmdldFRocmVhZEludGVnZXJSZWdpc3RlclNl dDAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNkRGVi dWdnZXJMb2NhbC5hY2Nlc3MkODAwKEJzZERlYnVnZ2VyTG9jYWwuamF2YTo2NSkKCWF0IHN1bi5q dm0uaG90c3BvdC5kZWJ1Z2dlci5ic2QuQnNkRGVidWdnZXJMb2NhbCQxR2V0VGhyZWFkSW50ZWdl clJlZ2lzdGVyU2V0VGFzay5kb2l0KEJzZERlYnVnZ2VyTG9jYWwuamF2YTo0OTEpCglhdCBzdW4u anZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2VyTG9jYWwkQnNkRGVidWdnZXJMb2Nh bFdvcmtlclRocmVhZC5ydW4oQnNkRGVidWdnZXJMb2NhbC5qYXZhOjE0NCkKc3VuLmp2bS5ob3Rz cG90LmRlYnVnZ2VyLkRlYnVnZ2VyRXhjZXB0aW9uOiBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIu RGVidWdnZXJFeGNlcHRpb246IGdldF90aHJlYWRfcmVncyBmYWlsZWQgZm9yIGEgbHdwCglhdCBz dW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2VyTG9jYWwkQnNkRGVidWdnZXJM b2NhbFdvcmtlclRocmVhZC5leGVjdXRlKEJzZERlYnVnZ2VyTG9jYWwuamF2YToxNjkpCglhdCBz dW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVnZ2VyTG9jYWwuZ2V0VGhyZWFkSW50 ZWdlclJlZ2lzdGVyU2V0KEJzZERlYnVnZ2VyTG9jYWwuamF2YTo0OTcpCglhdCBzdW4uanZtLmhv dHNwb3QuZGVidWdnZXIuYnNkLkJzZFRocmVhZC5nZXRDb250ZXh0KEJzZFRocmVhZC5qYXZhOjY4 KQoJYXQgc3VuLmp2bS5ob3RzcG90LnJ1bnRpbWUuYnNkX2FtZDY0LkJzZEFNRDY0SmF2YVRocmVh ZFBEQWNjZXNzLmdldEN1cnJlbnRGcmFtZUd1ZXNzKEJzZEFNRDY0SmF2YVRocmVhZFBEQWNjZXNz LmphdmE6OTcpCglhdCBzdW4uanZtLmhvdHNwb3QucnVudGltZS5KYXZhVGhyZWFkLmdldEN1cnJl bnRGcmFtZUd1ZXNzKEphdmFUaHJlYWQuamF2YToyNTYpCglhdCBzdW4uanZtLmhvdHNwb3QucnVu dGltZS5KYXZhVGhyZWFkLmdldExhc3RKYXZhVkZyYW1lRGJnKEphdmFUaHJlYWQuamF2YToyMTgp CglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuUFN0YWNrLmluaXRKRnJhbWVDYWNoZShQU3RhY2su amF2YToyMDMpCglhdCBzdW4uanZtLmhvdHNwb3QudG9vbHMuUFN0YWNrLnJ1bihQU3RhY2suamF2 YTo3MSkKCWF0IHN1bi5qdm0uaG90c3BvdC50b29scy5QU3RhY2sucnVuKFBTdGFjay5qYXZhOjU4 KQoJYXQgc3VuLmp2bS5ob3RzcG90LnRvb2xzLlBTdGFjay5ydW4oUFN0YWNrLmphdmE6NTMpCglh dCBzdW4uanZtLmhvdHNwb3QudG9vbHMuSlN0YWNrLnJ1bihKU3RhY2suamF2YTo2NikKCWF0IHN1 bi5qdm0uaG90c3BvdC50b29scy5Ub29sLnN0YXJ0SW50ZXJuYWwoVG9vbC5qYXZhOjI2MCkKCWF0 IHN1bi5qdm0uaG90c3BvdC50b29scy5Ub29sLnN0YXJ0KFRvb2wuamF2YToyMjMpCglhdCBzdW4u anZtLmhvdHNwb3QudG9vbHMuVG9vbC5leGVjdXRlKFRvb2wuamF2YToxMTgpCglhdCBzdW4uanZt LmhvdHNwb3QudG9vbHMuSlN0YWNrLm1haW4oSlN0YWNrLmphdmE6OTIpCglhdCBzdW4ucmVmbGVj dC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgTWV0aG9kKQoJYXQgc3Vu LnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nl c3NvckltcGwuamF2YTo2MikKCWF0IHN1bi5yZWZsZWN0LkRlbGVnYXRpbmdNZXRob2RBY2Nlc3Nv ckltcGwuaW52b2tlKERlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuamF2YTo0MykKCWF0IGph dmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UoTWV0aG9kLmphdmE6NDk3KQoJYXQgc3VuLnRv b2xzLmpzdGFjay5KU3RhY2sucnVuSlN0YWNrVG9vbChKU3RhY2suamF2YToxNDApCglhdCBzdW4u dG9vbHMuanN0YWNrLkpTdGFjay5tYWluKEpTdGFjay5qYXZhOjEwNikKQ2F1c2VkIGJ5OiBzdW4u anZtLmhvdHNwb3QuZGVidWdnZXIuRGVidWdnZXJFeGNlcHRpb246IGdldF90aHJlYWRfcmVncyBm YWlsZWQgZm9yIGEgbHdwCglhdCBzdW4uanZtLmhvdHNwb3QuZGVidWdnZXIuYnNkLkJzZERlYnVn Z2VyTG9jYWwuZ2V0VGhyZWFkSW50ZWdlclJlZ2lzdGVyU2V0MChOYXRpdmUgTWV0aG9kKQoJYXQg c3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJzZC5Cc2REZWJ1Z2dlckxvY2FsLmFjY2VzcyQ4MDAo QnNkRGVidWdnZXJMb2NhbC5qYXZhOjY1KQoJYXQgc3VuLmp2bS5ob3RzcG90LmRlYnVnZ2VyLmJz ZC5Cc2REZWJ1Z2dlckxvY2FsJDFHZXRUaHJlYWRJbnRlZ2VyUmVnaXN0ZXJTZXRUYXNrLmRvaXQo QnNkRGVidWdnZXJMb2NhbC5qYXZhOjQ5MSkKCWF0IHN1bi5qdm0uaG90c3BvdC5kZWJ1Z2dlci5i c2QuQnNkRGVidWdnZXJMb2NhbCRCc2REZWJ1Z2dlckxvY2FsV29ya2VyVGhyZWFkLnJ1bihCc2RE ZWJ1Z2dlckxvY2FsLmphdmE6MTQ0KQpEZWFkbG9jayBEZXRlY3Rpb246CgpObyBkZWFkbG9ja3Mg Zm91bmQuCgotLS0tLS0tLS0tLS0tLS0tLSAwIC0tLS0tLS0tLS0tLS0tLS0tCjB4MDAwMDAwMDgw MGE1NWY4YwkJPz8/Pz8/Pz8KMHgwMDAwMDAwMDAwNDA3N2NkCUNvbnRpbnVlSW5OZXdUaHJlYWQw ICsgMHg2ZAoweDAwMDAwMDAwMDA0MDViOGMJQ29udGludWVJbk5ld1RocmVhZCArIDB4OWMKMHgw MDAwMDAwMDAwNDAzOTk3CUpMSV9MYXVuY2ggKyAweDE2OTcKMHgwMDAwMDAwMDAwNDA5YjdjCW1h aW4gKyAweDZjCjB4MDAwMDAwMDAwMDQwMWVmZglfc3RhcnQgKyAweDE2ZgotLS0tLS0tLS0tLS0t LS0tLSAwIC0tLS0tLS0tLS0tLS0tLS0tCjB4MDAwMDAwMDgwMGE1NWY4YwkJPz8/Pz8/Pz8KMHgw MDAwMDAwODAwYTU0NDZlCQk/Pz8/Pz8/PwoweDAwMDAwMDA4MDIzYjc0NzQJX1pONlBhcmtlcjRw YXJrRWJsICsgMHgyODQKMHgwMDAwMDAwODAyNGU4MWMxCVVuc2FmZV9QYXJrICsgMHgxMzEKMHgw MDAwMDAwODAzYzQ3ODk0CTxpbnRlcnByZXRlcj4gbWV0aG9kIGVudHJ5IHBvaW50IChraW5kID0g bmF0aXZlKQoweDAwMDAwMDA4MDNjMzlhNjYJPGludGVycHJldGVyPiBpbnZva2UgcmV0dXJuIGVu dHJ5IHBvaW50cwoweDAwMDAwMDA4MDNjMzlhNjYJPGludGVycHJldGVyPiBpbnZva2UgcmV0dXJu IGVudHJ5IHBvaW50cwoweDAwMDAwMDA4MDNjMzk0NzAJPGludGVycHJldGVyPiBpbnZva2UgcmV0 dXJuIGVudHJ5IHBvaW50cwoweDAwMDAwMDA4MDNjMzk4OTcJPGludGVycHJldGVyPiBpbnZva2Ug cmV0dXJuIGVudHJ5IHBvaW50cwoweDAwMDAwMDA4MDNjMzlhNjYJPGludGVycHJldGVyPiBpbnZv a2UgcmV0dXJuIGVudHJ5IHBvaW50cwoweDAwMDAwMDA4MDNjMzk3YjAJPGludGVycHJldGVyPiBp bnZva2UgcmV0dXJuIGVudHJ5IHBvaW50cwoweDAwMDAwMDA4MDNjMzlhNjYJPGludGVycHJldGVy PiBpbnZva2UgcmV0dXJuIGVudHJ5IHBvaW50cwoweDAwMDAwMDA4MDNjMzI0ZTcJPFN0dWJSb3V0 aW5lcz4KMHgwMDAwMDAwODAyMWExNGQyCV9aTjlKYXZhQ2FsbHMxMWNhbGxfaGVscGVyRVA5SmF2 YVZhbHVlUDEybWV0aG9kSGFuZGxlUDE3SmF2YUNhbGxBcmd1bWVudHNQNlRocmVhZCArIDB4OTQy CjB4MDAwMDAwMDgwMjFiZDZiMAlfWkwxN2puaV9pbnZva2Vfc3RhdGljUDdKTklFbnZfUDlKYXZh VmFsdWVQOF9qb2JqZWN0MTFKTklDYWxsVHlwZVAxMF9qbWV0aG9kSURQMThKTklfQXJndW1lbnRQ dXNoZXJQNlRocmVhZCArIDB4MzcwCjB4MDAwMDAwMDgwMjFjMWFmNglqbmlfQ2FsbFN0YXRpY1Zv aWRNZXRob2QgKyAweDFlNgoweDAwMDAwMDAwMDA0MDRiMGMJSmF2YU1haW4gKyAweGMwYwoweDAw MDAwMDA4MDBhNGE3MzQJCT8/Pz8/Pz8/Ci0tLS0tLS0tLS0tLS0tLS0tIDAgLS0tLS0tLS0tLS0t LS0tLS0KMHgwMDAwMDAwODAwYTU1ZjhjCQk/Pz8/Pz8/PwoweDAwMDAwMDA4MDBhNTQ0NmUJCT8/ Pz8/Pz8/CjB4MDAwMDAwMDgwMjNiNzE1YglfWk4yb3MxM1BsYXRmb3JtRXZlbnQ0cGFya0V2ICsg MHhjYgoweDAwMDAwMDA4MDIzODg1YTIJX1pON01vbml0b3I1SVdhaXRFUDZUaHJlYWRsICsgMHhk MgoweDAwMDAwMDA4MDIzODhjMTQJX1pON01vbml0b3I0d2FpdEVibGIgKyAweDc0CjB4MDAwMDAw MDgwMjEwZGMwMglfWk4xM0dDVGFza01hbmFnZXI4Z2V0X3Rhc2tFaiArIDB4NjIKMHgwMDAwMDAw ODAyMTBlZWIyCV9aTjEyR0NUYXNrVGhyZWFkM3J1bkV2ICsgMHgxMzIKMHgwMDAwMDAwODAyM2Iy MWVmCV9aTDEwamF2YV9zdGFydFA2VGhyZWFkICsgMHhmZgoweDAwMDAwMDA4MDBhNGE3MzQJCT8/ Pz8/Pz8/Ci0tLS0tLS0tLS0tLS0tLS0tIDAgLS0tLS0tLS0tLS0tLS0tLS0KMHgwMDAwMDAwODAw YTU1ZjhjCQk/Pz8/Pz8/PwoweDAwMDAwMDA4MDBhNTQ0NmUJCT8/Pz8/Pz8/CjB4MDAwMDAwMDgw MjNiNzE1YglfWk4yb3MxM1BsYXRmb3JtRXZlbnQ0cGFya0V2ICsgMHhjYgoweDAwMDAwMDA4MDIz ODg1YTIJX1pON01vbml0b3I1SVdhaXRFUDZUaHJlYWRsICsgMHhkMgoweDAwMDAwMDA4MDIzODhj MTQJX1pON01vbml0b3I0d2FpdEVibGIgKyAweDc0CjB4MDAwMDAwMDgwMjEwZGMwMglfWk4xM0dD VGFza01hbmFnZXI4Z2V0X3Rhc2tFaiArIDB4NjIKMHgwMDAwMDAwODAyMTBlZWIyCV9aTjEyR0NU YXNrVGhyZWFkM3J1bkV2ICsgMHgxMzIKMHgwMDAwMDAwODAyM2IyMWVmCV9aTDEwamF2YV9zdGFy dFA2VGhyZWFkICsgMHhmZgoweDAwMDAwMDA4MDBhNGE3MzQJCT8/Pz8/Pz8/Ci0tLS0tLS0tLS0t LS0tLS0tIDAgLS0tLS0tLS0tLS0tLS0tLS0KMHgwMDAwMDAwODAwYTU1ZjhjCQk/Pz8/Pz8/Pwow eDAwMDAwMDA4MDBhNTQ0NmUJCT8/Pz8/Pz8/CjB4MDAwMDAwMDgwMjNiNzE1YglfWk4yb3MxM1Bs YXRmb3JtRXZlbnQ0cGFya0V2ICsgMHhjYgoweDAwMDAwMDA4MDIzODg1YTIJX1pON01vbml0b3I1 SVdhaXRFUDZUaHJlYWRsICsgMHhkMgoweDAwMDAwMDA4MDIzODhjMTQJX1pON01vbml0b3I0d2Fp dEVibGIgKyAweDc0CjB4MDAwMDAwMDgwMjEwZGMwMglfWk4xM0dDVGFza01hbmFnZXI4Z2V0X3Rh c2tFaiArIDB4NjIKMHgwMDAwMDAwODAyMTBlZWIyCV9aTjEyR0NUYXNrVGhyZWFkM3J1bkV2ICsg MHgxMzIKMHgwMDAwMDAwODAyM2IyMWVmCV9aTDEwamF2YV9zdGFydFA2VGhyZWFkICsgMHhmZgow eDAwMDAwMDA4MDBhNGE3MzQJCT8/Pz8/Pz8/Ci0tLS0tLS0tLS0tLS0tLS0tIDAgLS0tLS0tLS0t LS0tLS0tLS0KMHgwMDAwMDAwODAwYTU1ZjhjCQk/Pz8/Pz8/PwoweDAwMDAwMDA4MDBhNTQ0NmUJ CT8/Pz8/Pz8/CjB4MDAwMDAwMDgwMjNiNzE1YglfWk4yb3MxM1BsYXRmb3JtRXZlbnQ0cGFya0V2 ICsgMHhjYgoweDAwMDAwMDA4MDIzODg1YTIJX1pON01vbml0b3I1SVdhaXRFUDZUaHJlYWRsICsg MHhkMgoweDAwMDAwMDA4MDIzODhjMTQJX1pON01vbml0b3I0d2FpdEVibGIgKyAweDc0CjB4MDAw MDAwMDgwMjEwZGMwMglfWk4xM0dDVGFza01hbmFnZXI4Z2V0X3Rhc2tFaiArIDB4NjIKMHgwMDAw MDAwODAyMTBlZWIyCV9aTjEyR0NUYXNrVGhyZWFkM3J1bkV2ICsgMHgxMzIKMHgwMDAwMDAwODAy M2IyMWVmCV9aTDEwamF2YV9zdGFydFA2VGhyZWFkICsgMHhmZgoweDAwMDAwMDA4MDBhNGE3MzQJ CT8/Pz8/Pz8/Ci0tLS0tLS0tLS0tLS0tLS0tIDAgLS0tLS0tLS0tLS0tLS0tLS0KMHgwMDAwMDAw ODAwYTU1ZjhjCQk/Pz8/Pz8/PwoweDAwMDAwMDA4MDBhNTQ0NmUJCT8/Pz8/Pz8/CjB4MDAwMDAw MDgwMjNiNGJmNglfWk4yb3MxM1BsYXRmb3JtRXZlbnQ0cGFya0VsICsgMHgxNzYKMHgwMDAwMDAw ODAyMzg4NWJlCV9aTjdNb25pdG9yNUlXYWl0RVA2VGhyZWFkbCArIDB4ZWUKMHgwMDAwMDAwODAy Mzg4YzE0CV9aTjdNb25pdG9yNHdhaXRFYmxiICsgMHg3NAoweDAwMDAwMDA4MDI1MjRlZjkJX1pO OFZNVGhyZWFkNGxvb3BFdiArIDB4MWE5CjB4MDAwMDAwMDgwMjUyNGM0NQlfWk44Vk1UaHJlYWQz cnVuRXYgKyAweDc1CjB4MDAwMDAwMDgwMjNiMjFlZglfWkwxMGphdmFfc3RhcnRQNlRocmVhZCAr IDB4ZmYKMHgwMDAwMDAwODAwYTRhNzM0CQk/Pz8/Pz8/PwotLS0tLS0tLS0tLS0tLS0tLSAwIC0t LS0tLS0tLS0tLS0tLS0tCjB4MDAwMDAwMDgwMGE1NWY4YwkJPz8/Pz8/Pz8KMHgwMDAwMDAwODAw YTU0NDZlCQk/Pz8/Pz8/PwoweDAwMDAwMDA4MDIzYjcxNWIJX1pOMm9zMTNQbGF0Zm9ybUV2ZW50 NHBhcmtFdiArIDB4Y2IKMHgwMDAwMDAwODAyM2E2ZmVlCV9aTjEzT2JqZWN0TW9uaXRvcjR3YWl0 RWxiUDZUaHJlYWQgKyAweDM4ZQoweDAwMDAwMDA4MDIxZjkxMTQJSlZNX01vbml0b3JXYWl0ICsg MHgxNzQKMHgwMDAwMDAwODAzYzQ3ODk0CTxpbnRlcnByZXRlcj4gbWV0aG9kIGVudHJ5IHBvaW50 IChraW5kID0gbmF0aXZlKQoweDAwMDAwMDA4MDNjMzlhNjYJPGludGVycHJldGVyPiBpbnZva2Ug cmV0dXJuIGVudHJ5IHBvaW50cwoweDAwMDAwMDA4MDNjMzlhNjYJPGludGVycHJldGVyPiBpbnZv a2UgcmV0dXJuIGVudHJ5IHBvaW50cwoweDAwMDAwMDA4MDNjMzI0ZTcJPFN0dWJSb3V0aW5lcz4K MHgwMDAwMDAwODAyMWExNGQyCV9aTjlKYXZhQ2FsbHMxMWNhbGxfaGVscGVyRVA5SmF2YVZhbHVl UDEybWV0aG9kSGFuZGxlUDE3SmF2YUNhbGxBcmd1bWVudHNQNlRocmVhZCArIDB4OTQyCjB4MDAw MDAwMDgwMjE5ZmU5ZAlfWk45SmF2YUNhbGxzMTJjYWxsX3ZpcnR1YWxFUDlKYXZhVmFsdWUxMUts YXNzSGFuZGxlUDZTeW1ib2xTNF9QMTdKYXZhQ2FsbEFyZ3VtZW50c1A2VGhyZWFkICsgMHgxZGQK MHgwMDAwMDAwODAyMWEwMGNjCV9aTjlKYXZhQ2FsbHMxMmNhbGxfdmlydHVhbEVQOUphdmFWYWx1 ZTZIYW5kbGUxMUtsYXNzSGFuZGxlUDZTeW1ib2xTNV9QNlRocmVhZCArIDB4NWMKMHgwMDAwMDAw ODAyMjBiNTVlCV9aTDEydGhyZWFkX2VudHJ5UDEwSmF2YVRocmVhZFA2VGhyZWFkICsgMHhhZQow eDAwMDAwMDA4MDI0YjljOGUJX1pOMTBKYXZhVGhyZWFkMTd0aHJlYWRfbWFpbl9pbm5lckV2ICsg MHhlZQoweDAwMDAwMDA4MDIzYjIxZWYJX1pMMTBqYXZhX3N0YXJ0UDZUaHJlYWQgKyAweGZmCjB4 MDAwMDAwMDgwMGE0YTczNAkJPz8/Pz8/Pz8KLS0tLS0tLS0tLS0tLS0tLS0gMCAtLS0tLS0tLS0t LS0tLS0tLQoweDAwMDAwMDA4MDBhNTVmOGMJCT8/Pz8/Pz8/CjB4MDAwMDAwMDgwMGE1NDQ2ZQkJ Pz8/Pz8/Pz8KMHgwMDAwMDAwODAyM2I3MTViCV9aTjJvczEzUGxhdGZvcm1FdmVudDRwYXJrRXYg KyAweGNiCjB4MDAwMDAwMDgwMjNhNmZlZQlfWk4xM09iamVjdE1vbml0b3I0d2FpdEVsYlA2VGhy ZWFkICsgMHgzOGUKMHgwMDAwMDAwODAyMWY5MTE0CUpWTV9Nb25pdG9yV2FpdCArIDB4MTc0CjB4 MDAwMDAwMDgwM2M0Nzg5NAk8aW50ZXJwcmV0ZXI+IG1ldGhvZCBlbnRyeSBwb2ludCAoa2luZCA9 IG5hdGl2ZSkKMHgwMDAwMDAwODAzYzM5YTY2CTxpbnRlcnByZXRlcj4gaW52b2tlIHJldHVybiBl bnRyeSBwb2ludHMKMHgwMDAwMDAwODAzZmM4YWY0CTxVbmtub3duIGNvbXBpbGVkIGNvZGU+CjB4 MDAwMDAwMDgwM2MzMjRlNwk8U3R1YlJvdXRpbmVzPgoweDAwMDAwMDA4MDIxYTE0ZDIJX1pOOUph dmFDYWxsczExY2FsbF9oZWxwZXJFUDlKYXZhVmFsdWVQMTJtZXRob2RIYW5kbGVQMTdKYXZhQ2Fs bEFyZ3VtZW50c1A2VGhyZWFkICsgMHg5NDIKMHgwMDAwMDAwODAyMTlmZTlkCV9aTjlKYXZhQ2Fs bHMxMmNhbGxfdmlydHVhbEVQOUphdmFWYWx1ZTExS2xhc3NIYW5kbGVQNlN5bWJvbFM0X1AxN0ph dmFDYWxsQXJndW1lbnRzUDZUaHJlYWQgKyAweDFkZAoweDAwMDAwMDA4MDIxYTAwY2MJX1pOOUph dmFDYWxsczEyY2FsbF92aXJ0dWFsRVA5SmF2YVZhbHVlNkhhbmRsZTExS2xhc3NIYW5kbGVQNlN5 bWJvbFM1X1A2VGhyZWFkICsgMHg1YwoweDAwMDAwMDA4MDIyMGI1NWUJX1pMMTJ0aHJlYWRfZW50 cnlQMTBKYXZhVGhyZWFkUDZUaHJlYWQgKyAweGFlCjB4MDAwMDAwMDgwMjRiOWM4ZQlfWk4xMEph dmFUaHJlYWQxN3RocmVhZF9tYWluX2lubmVyRXYgKyAweGVlCjB4MDAwMDAwMDgwMjNiMjFlZglf WkwxMGphdmFfc3RhcnRQNlRocmVhZCArIDB4ZmYKMHgwMDAwMDAwODAwYTRhNzM0CQk/Pz8/Pz8/ PwotLS0tLS0tLS0tLS0tLS0tLSAwIC0tLS0tLS0tLS0tLS0tLS0tCjB4MDAwMDAwMDgwMGNkOTU4 YQlfX3VtdHhfb3AgKyAweGEKMHgwMDAwMDAwODAyM2IzYjIwCV9aTjJvczExc2lnbmFsX3dhaXRF diArIDB4MTYwCjB4MDAwMDAwMDgwMjNhZThjOQlfWkwxOXNpZ25hbF90aHJlYWRfZW50cnlQMTBK YXZhVGhyZWFkUDZUaHJlYWQgKyAweDM5CjB4MDAwMDAwMDgwMjRiOWM4ZQlfWk4xMEphdmFUaHJl YWQxN3RocmVhZF9tYWluX2lubmVyRXYgKyAweGVlCjB4MDAwMDAwMDgwMjNiMjFlZglfWkwxMGph dmFfc3RhcnRQNlRocmVhZCArIDB4ZmYKMHgwMDAwMDAwODAwYTRhNzM0CQk/Pz8/Pz8/PwotLS0t LS0tLS0tLS0tLS0tLSAwIC0tLS0tLS0tLS0tLS0tLS0tCjB4MDAwMDAwMDgwMGE1NWY4YwkJPz8/ Pz8/Pz8KMHgwMDAwMDAwODAwYTU0NDZlCQk/Pz8/Pz8/PwoweDAwMDAwMDA4MDIzYjRiZjYJX1pO Mm9zMTNQbGF0Zm9ybUV2ZW50NHBhcmtFbCArIDB4MTc2CjB4MDAwMDAwMDgwMjM4ODViZQlfWk43 TW9uaXRvcjVJV2FpdEVQNlRocmVhZGwgKyAweGVlCjB4MDAwMDAwMDgwMjM4OGQ3NQlfWk43TW9u aXRvcjR3YWl0RWJsYiArIDB4MWQ1CjB4MDAwMDAwMDgwMjAyYWM0MwlfWk4xMkNvbXBpbGVRdWV1 ZTNnZXRFdiArIDB4OTMKMHgwMDAwMDAwODAyMDJkY2Q0CV9aTjEzQ29tcGlsZUJyb2tlcjIwY29t cGlsZXJfdGhyZWFkX2xvb3BFdiArIDB4MTc0CjB4MDAwMDAwMDgwMjRiOWM4ZQlfWk4xMEphdmFU aHJlYWQxN3RocmVhZF9tYWluX2lubmVyRXYgKyAweGVlCjB4MDAwMDAwMDgwMjNiMjFlZglfWkwx MGphdmFfc3RhcnRQNlRocmVhZCArIDB4ZmYKMHgwMDAwMDAwODAwYTRhNzM0CQk/Pz8/Pz8/Pwot LS0tLS0tLS0tLS0tLS0tLSAwIC0tLS0tLS0tLS0tLS0tLS0tCjB4MDAwMDAwMDgwMGE1NWY4YwkJ Pz8/Pz8/Pz8KMHgwMDAwMDAwODAwYTU0NDZlCQk/Pz8/Pz8/PwoweDAwMDAwMDA4MDIzYjRiZjYJ X1pOMm9zMTNQbGF0Zm9ybUV2ZW50NHBhcmtFbCArIDB4MTc2CjB4MDAwMDAwMDgwMjM4ODViZQlf Wk43TW9uaXRvcjVJV2FpdEVQNlRocmVhZGwgKyAweGVlCjB4MDAwMDAwMDgwMjM4OGQ3NQlfWk43 TW9uaXRvcjR3YWl0RWJsYiArIDB4MWQ1CjB4MDAwMDAwMDgwMjAyYWM0MwlfWk4xMkNvbXBpbGVR dWV1ZTNnZXRFdiArIDB4OTMKMHgwMDAwMDAwODAyMDJkY2Q0CV9aTjEzQ29tcGlsZUJyb2tlcjIw Y29tcGlsZXJfdGhyZWFkX2xvb3BFdiArIDB4MTc0CjB4MDAwMDAwMDgwMjRiOWM4ZQlfWk4xMEph dmFUaHJlYWQxN3RocmVhZF9tYWluX2lubmVyRXYgKyAweGVlCjB4MDAwMDAwMDgwMjNiMjFlZglf WkwxMGphdmFfc3RhcnRQNlRocmVhZCArIDB4ZmYKMHgwMDAwMDAwODAwYTRhNzM0CQk/Pz8/Pz8/ PwotLS0tLS0tLS0tLS0tLS0tLSAwIC0tLS0tLS0tLS0tLS0tLS0tCjB4MDAwMDAwMDgwMGE1NWY4 YwkJPz8/Pz8/Pz8KMHgwMDAwMDAwODAwYTU0NDZlCQk/Pz8/Pz8/PwoweDAwMDAwMDA4MDIzYjRi ZjYJX1pOMm9zMTNQbGF0Zm9ybUV2ZW50NHBhcmtFbCArIDB4MTc2CjB4MDAwMDAwMDgwMjM4ODVi ZQlfWk43TW9uaXRvcjVJV2FpdEVQNlRocmVhZGwgKyAweGVlCjB4MDAwMDAwMDgwMjM4OGQ3NQlf Wk43TW9uaXRvcjR3YWl0RWJsYiArIDB4MWQ1CjB4MDAwMDAwMDgwMjAyYWM0MwlfWk4xMkNvbXBp bGVRdWV1ZTNnZXRFdiArIDB4OTMKMHgwMDAwMDAwODAyMDJkY2Q0CV9aTjEzQ29tcGlsZUJyb2tl cjIwY29tcGlsZXJfdGhyZWFkX2xvb3BFdiArIDB4MTc0CjB4MDAwMDAwMDgwMjRiOWM4ZQlfWk4x MEphdmFUaHJlYWQxN3RocmVhZF9tYWluX2lubmVyRXYgKyAweGVlCjB4MDAwMDAwMDgwMjNiMjFl ZglfWkwxMGphdmFfc3RhcnRQNlRocmVhZCArIDB4ZmYKMHgwMDAwMDAwODAwYTRhNzM0CQk/Pz8/ Pz8/PwotLS0tLS0tLS0tLS0tLS0tLSAwIC0tLS0tLS0tLS0tLS0tLS0tCjB4MDAwMDAwMDgwMGE1 NWY4YwkJPz8/Pz8/Pz8KMHgwMDAwMDAwODAwYTU0NDZlCQk/Pz8/Pz8/PwoweDAwMDAwMDA4MDIz YjcxNWIJX1pOMm9zMTNQbGF0Zm9ybUV2ZW50NHBhcmtFdiArIDB4Y2IKMHgwMDAwMDAwODAyMzg4 NWEyCV9aTjdNb25pdG9yNUlXYWl0RVA2VGhyZWFkbCArIDB4ZDIKMHgwMDAwMDAwODAyMzg4YzE0 CV9aTjdNb25pdG9yNHdhaXRFYmxiICsgMHg3NAoweDAwMDAwMDA4MDI0MmMzYjUJX1pOMTNTZXJ2 aWNlVGhyZWFkMjBzZXJ2aWNlX3RocmVhZF9lbnRyeUVQMTBKYXZhVGhyZWFkUDZUaHJlYWQgKyAw eDEyNQoweDAwMDAwMDA4MDI0YjljOGUJX1pOMTBKYXZhVGhyZWFkMTd0aHJlYWRfbWFpbl9pbm5l ckV2ICsgMHhlZQoweDAwMDAwMDA4MDIzYjIxZWYJX1pMMTBqYXZhX3N0YXJ0UDZUaHJlYWQgKyAw eGZmCjB4MDAwMDAwMDgwMGE0YTczNAkJPz8/Pz8/Pz8KLS0tLS0tLS0tLS0tLS0tLS0gMCAtLS0t LS0tLS0tLS0tLS0tLQoweDAwMDAwMDA4MDBhNTVmOGMJCT8/Pz8/Pz8/CjB4MDAwMDAwMDgwMGE1 NDQ2ZQkJPz8/Pz8/Pz8KMHgwMDAwMDAwODAyM2I0YmY2CV9aTjJvczEzUGxhdGZvcm1FdmVudDRw YXJrRWwgKyAweDE3NgoweDAwMDAwMDA4MDIzODg1YmUJX1pON01vbml0b3I1SVdhaXRFUDZUaHJl YWRsICsgMHhlZQoweDAwMDAwMDA4MDIzODhjMTQJX1pON01vbml0b3I0d2FpdEVibGIgKyAweDc0 CjB4MDAwMDAwMDgwMjRiOGUwZglfWk5LMTNXYXRjaGVyVGhyZWFkNXNsZWVwRXYgKyAweDdmCjB4 MDAwMDAwMDgwMjRiOGVlZAlfWk4xM1dhdGNoZXJUaHJlYWQzcnVuRXYgKyAweDRkCjB4MDAwMDAw MDgwMjNiMjFlZglfWkwxMGphdmFfc3RhcnRQNlRocmVhZCArIDB4ZmYKMHgwMDAwMDAwODAwYTRh NzM0CQk/Pz8/Pz8/PwotLS0tLS0tLS0tLS0tLS0tLSAwIC0tLS0tLS0tLS0tLS0tLS0tCjB4MDAw MDAwMDgwMGRiYjI2YQlfd3JpdGUgKyAweGEKMHgwMDAwMDAwODAzODE2YjVlCWhhbmRsZVdyaXRl ICsgMHgyZQoweDAwMDAwMDA4MDM4MTY2OWQJd3JpdGVCeXRlcyArIDB4MTVkCjB4MDAwMDAwMDgw MzgwZTBmYglKYXZhX2phdmFfaW9fRmlsZU91dHB1dFN0cmVhbV93cml0ZUJ5dGVzICsgMHgxYgow eDAwMDAwMDA4MDNkYzNiOWUJPFVua25vd24gY29tcGlsZWQgY29kZT4KMHgwMDAwMDAwODAzZWI4 NzY4CTxVbmtub3duIGNvbXBpbGVkIGNvZGU+Ci0tLS0tLS0tLS0tLS0tLS0tIDAgLS0tLS0tLS0t LS0tLS0tLS0KMHgwMDAwMDAwODAwYTU1ZjhjCQk/Pz8/Pz8/PwoweDAwMDAwMDA4MDBhNTQ0NmUJ CT8/Pz8/Pz8/CjB4MDAwMDAwMDgwMjNiNGJmNglfWk4yb3MxM1BsYXRmb3JtRXZlbnQ0cGFya0Vs ICsgMHgxNzYKMHgwMDAwMDAwODAyM2E1NzYyCV9aTjEzT2JqZWN0TW9uaXRvcjZFbnRlcklFUDZU aHJlYWQgKyAweDIyMgoweDAwMDAwMDA4MDIzYTRjZjgJX1pOMTNPYmplY3RNb25pdG9yNWVudGVy RVA2VGhyZWFkICsgMHgyMDgKMHgwMDAwMDAwODAxZjhjNDZhCV9aTjhSdW50aW1lMTEybW9uaXRv cmVudGVyRVAxMEphdmFUaHJlYWRQN29vcERlc2NQMTVCYXNpY09iamVjdExvY2sgKyAweGNhCjB4 MDAwMDAwMDgwM2QyZTJjOAk8UnVudGltZVN0dWI+CjB4MDAwMDAwMDgwNDE2ZjZjMgk8VW5rbm93 biBjb21waWxlZCBjb2RlPgoweDAwMDAwMDA4MDQyMjRmYWMJPFVua25vd24gY29tcGlsZWQgY29k ZT4KMHgwMDAwMDAwODAzYzM5YTY2CTxpbnRlcnByZXRlcj4gaW52b2tlIHJldHVybiBlbnRyeSBw b2ludHMKMHgwMDAwMDAwODAzYzM5YWFiCTxpbnRlcnByZXRlcj4gaW52b2tlIHJldHVybiBlbnRy eSBwb2ludHMKMHgwMDAwMDAwODAzYzMyNGU3CTxTdHViUm91dGluZXM+CjB4MDAwMDAwMDgwMjFh MTRkMglfWk45SmF2YUNhbGxzMTFjYWxsX2hlbHBlckVQOUphdmFWYWx1ZVAxMm1ldGhvZEhhbmRs ZVAxN0phdmFDYWxsQXJndW1lbnRzUDZUaHJlYWQgKyAweDk0MgoweDAwMDAwMDA4MDIxOWZlOWQJ X1pOOUphdmFDYWxsczEyY2FsbF92aXJ0dWFsRVA5SmF2YVZhbHVlMTFLbGFzc0hhbmRsZVA2U3lt Ym9sUzRfUDE3SmF2YUNhbGxBcmd1bWVudHNQNlRocmVhZCArIDB4MWRkCjB4MDAwMDAwMDgwMjFh MDBjYwlfWk45SmF2YUNhbGxzMTJjYWxsX3ZpcnR1YWxFUDlKYXZhVmFsdWU2SGFuZGxlMTFLbGFz c0hhbmRsZVA2U3ltYm9sUzVfUDZUaHJlYWQgKyAweDVjCjB4MDAwMDAwMDgwMjIwYjU1ZQlfWkwx MnRocmVhZF9lbnRyeVAxMEphdmFUaHJlYWRQNlRocmVhZCArIDB4YWUKMHgwMDAwMDAwODAyNGI5 YzhlCV9aTjEwSmF2YVRocmVhZDE3dGhyZWFkX21haW5faW5uZXJFdiArIDB4ZWUKMHgwMDAwMDAw ODAyM2IyMWVmCV9aTDEwamF2YV9zdGFydFA2VGhyZWFkICsgMHhmZgoweDAwMDAwMDA4MDBhNGE3 MzQJCT8/Pz8/Pz8/Cg== --089e0115f60223f8eb05130d9ce1-- From owner-freebsd-java@FreeBSD.ORG Mon Apr 6 19:34:43 2015 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 36BBE126 for ; Mon, 6 Apr 2015 19:34:43 +0000 (UTC) Received: from mail-ob0-x22c.google.com (mail-ob0-x22c.google.com [IPv6:2607:f8b0:4003:c01::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F07189A2 for ; Mon, 6 Apr 2015 19:34:42 +0000 (UTC) Received: by obbec2 with SMTP id ec2so55977237obb.3 for ; Mon, 06 Apr 2015 12:34:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=Zq13m3MBlrAW8l2XIoVf8uMDIRtqTm0pfHDnaMUlbyY=; b=S0EdIl6O6ze6E2g8l/eMjwyjlxt7PDFDCGE9KT3TQkDqivuYF4UBA8LL95I2gCJhai CirDsuDUqYAvXn1gSsN2rTxTOqy0kXzv8gLovCTWAbFq4taqsid7PuHu3mVg5phWAy1v ZRwbykD/DXu77cTvD/7al3XAuHMHkE4d954tWetrnmY4DNLqRp0UVT6s78c29jMwx3pm sM0EBpuxuAQ0+ZuPTY7Us5E2ohSdm0vP/PuKx4EJXSGnuoQsz7d6rZJKhmVx8MhCT8Ai XeOigU3CD0ms7XT1Z+YKSWbX7kBA8fB6tLWz+ogw+ZLZe7iFcptq7kPErMtPu0Iz2Vip q48A== MIME-Version: 1.0 X-Received: by 10.60.155.135 with SMTP id vw7mr20546025oeb.62.1428348882387; Mon, 06 Apr 2015 12:34:42 -0700 (PDT) Received: by 10.60.20.198 with HTTP; Mon, 6 Apr 2015 12:34:42 -0700 (PDT) Date: Mon, 6 Apr 2015 15:34:42 -0400 Message-ID: Subject: strange error from building java/openjdk6 From: Aryeh Friedman To: freebsd-java@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2015 19:34:43 -0000 /usr/local/bootstrap-openjdk/bin/java -Xmx896m -Xms128m -XX:PermSize=32m -XX:MaxPermSize=160m -jar /usr/ports/java/openjdk6/work/build/bsd-amd64/btjars/generatecurrencydata.jar -o /usr/ports/java/openjdk6/work/build/bsd-amd64/lib/currency.data.temp \ < ../../../src/share/classes/java/util/CurrencyData.properties Error: time is more than 10 years from present: 1104530400000 java.lang.RuntimeException: time is more than 10 years from present: 1104530400000 at build.tools.generatecurrencydata.GenerateCurrencyData.makeSpecialCaseEntry(GenerateCurrencyData.java:285) at build.tools.generatecurrencydata.GenerateCurrencyData.buildMainAndSpecialCaseTables(GenerateCurrencyData.java:225) at build.tools.generatecurrencydata.GenerateCurrencyData.main(GenerateCurrencyData.java:154) Makefile:323: recipe for target '/usr/ports/java/openjdk6/work/build/bsd-amd64/lib/currency.data' failed gmake[6]: *** [/usr/ports/java/openjdk6/work/build/bsd-amd64/lib/currency.data] Error 1 gmake[6]: Leaving directory '/usr/ports/java/openjdk6/work/jdk/make/java/java' Makefile:57: recipe for target 'all' failed gmake[5]: *** [all] Error 1 gmake[5]: Leaving directory '/usr/ports/java/openjdk6/work/jdk/make/java' Makefile:251: recipe for target 'all' failed gmake[4]: *** [all] Error 1 gmake[4]: Leaving directory '/usr/ports/java/openjdk6/work/jdk/make' make/jdk-rules.gmk:107: recipe for target 'jdk-build' failed gmake[3]: *** [jdk-build] Error 2 gmake[3]: Leaving directory '/usr/ports/java/openjdk6/work' Makefile:198: recipe for target 'build_product_image' failed gmake[2]: *** [build_product_image] Error 2 gmake[2]: Leaving directory '/usr/ports/java/openjdk6/work' *** Error code 1 Stop. make[1]: stopped in /usr/ports/java/openjdk6 *** Error code 1 Stop. make: stopped in /usr/ports/java/openjdk6 ===>>> make build failed for java/openjdk6 ===>>> Aborting update ===>>> You can restart from the point of failure with this command line: portmaster java/openjdk6 root@retard:/usr/ports # date Mon Apr 6 15:32:03 EDT 2015 -- Aryeh M. Friedman, Lead Developer, http://www.PetiteCloud.org From owner-freebsd-java@FreeBSD.ORG Mon Apr 6 20:33:27 2015 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from mx2.freebsd.org (mx2.freebsd.org [IPv6:2001:1900:2254:206a::19:2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 865EF782 for ; Mon, 6 Apr 2015 20:33:27 +0000 (UTC) Received: from hammer.pct.niksun.com (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx2.freebsd.org (Postfix) with ESMTP id 46ECBE20; Mon, 6 Apr 2015 20:33:27 +0000 (UTC) Message-ID: <5522ED96.9000401@FreeBSD.org> Date: Mon, 06 Apr 2015 16:33:26 -0400 From: Jung-uk Kim User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Johannes Dieterich , freebsd-java@freebsd.org Subject: Re: dtrace, jstack and lang/openjdk7 or 8 References: <55146F51.3030404@FreeBSD.org> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2015 20:33:27 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 04/06/2015 08:40, Johannes Dieterich wrote: > I did a bit of research and found this in the hotspot sources: > http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/src/os/bsd/dtrace/jhelper.d > > . Do I interpret this (and the entire directory) correctly that there > are at least the stubs available in openJDK8? Is so, what is > missing for dtrace to work? ... DTrace support is not connected to build except for Mac OS. Please see hotspot/make/bsd/makefiles/dtrace.make. http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/make/bsd/makefiles/dtrace.make Jung-uk Kim -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJVIu2QAAoJEHyflib82/FGqWEH/j6TStI89iOxQdM5BTJTqoIC UP9MoqkyV/r/32A7le+wBm3vTBfuuMmzIL2oFB3TnCAlZ3n7Kstw85AoR/gYsSRf vD98hee9QR8CIyrIQx4sCVtYb0dDlUkEPV3QUD6oQ/75KC/gq49pDvzg+2wk8DEq DFaRBfV6fx1iblKb7k5Bdb0G+aA9fgnm+G5/c6rtPiN2rQaVoG1HvMbgYe5BnSSX YDdChG5tx7Zlo0UZ7q5teFhW9rb95Nmb55/eBcZOAr6yYGxCcD5C8FO/XXNstByb pWnytIt70lHxdEkuWSfu7ordsihP5rZvCP/Czcij1L0TtY7KmV5T26GPtyFw8i4= =PAj3 -----END PGP SIGNATURE----- From owner-freebsd-java@FreeBSD.ORG Mon Apr 6 21:13:48 2015 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from mx2.freebsd.org (mx2.freebsd.org [IPv6:2001:1900:2254:206a::19:2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7A89F6D2 for ; Mon, 6 Apr 2015 21:13:48 +0000 (UTC) Received: from hammer.pct.niksun.com (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx2.freebsd.org (Postfix) with ESMTP id 03D1729A9; Mon, 6 Apr 2015 21:13:47 +0000 (UTC) Message-ID: <5522F70B.5010308@FreeBSD.org> Date: Mon, 06 Apr 2015 17:13:47 -0400 From: Jung-uk Kim User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Aryeh Friedman , freebsd-java@freebsd.org Subject: Re: strange error from building java/openjdk6 References: In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2015 21:13:48 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 04/06/2015 15:34, Aryeh Friedman wrote: > /usr/local/bootstrap-openjdk/bin/java -Xmx896m -Xms128m > -XX:PermSize=32m -XX:MaxPermSize=160m -jar > /usr/ports/java/openjdk6/work/build/bsd-amd64/btjars/generatecurrencydata.jar > > - -o /usr/ports/java/openjdk6/work/build/bsd-amd64/lib/currency.data.temp > \ < ../../../src/share/classes/java/util/CurrencyData.properties > Error: time is more than 10 years from present: 1104530400000 > java.lang.RuntimeException: time is more than 10 years from > present: 1104530400000 ... It was fixed in b34 and later. Please update your ports tree and try again. Jung-uk Kim -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJVIvcHAAoJEHyflib82/FG02QIAI4b8i2MQaSD9fDaUnn96iBO KBv6SdU3/IGSWnAXkSgfhocKbofupts5Y2a5VTCm+On6TnzxuQzINR0NVDMUO8Yr hh3Ld9ZbBZjQxoFDwHoGdE9iKNKlk9xHsr5YV+Xo3VWaoRTvUwr9984TpVyTKk4u Q38AjtY0fNChAC2etHorbJSr8ysbbWf2RdrVg+JUfMOMvvj2ONML/IGJ9qAuELEP RtFzpkxRJ0+I5OeIju3lxL5+tTFZAKfGzgRduva3yFuej47kyP699PtLJZLu6RBY DVKKkGFrRxzw5x38aLD0NaVMjC+169DiJ89P5e/qm1cVFkCN5fCXutTlU2lAudg= =X77R -----END PGP SIGNATURE----- From owner-freebsd-java@FreeBSD.ORG Tue Apr 7 16:50:36 2015 Return-Path: Delivered-To: java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 443642F9 for ; Tue, 7 Apr 2015 16:50:36 +0000 (UTC) Received: from smtp-out.neti.ee (smtp-out.neti.ee [194.126.126.41]) by mx1.freebsd.org (Postfix) with ESMTP id EDBE014E for ; Tue, 7 Apr 2015 16:50:35 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by vm-relay6.estpak.ee (Postfix) with ESMTP id 50550391 for ; Tue, 7 Apr 2015 19:50:35 +0300 (EEST) X-Virus-Scanned: Debian amavisd-new at vm-relay6.estpak.ee Received: from smtp-out.neti.ee ([127.0.0.1]) by localhost (vm-relay6.estpak.ee [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id B8jFZmlY40yC for ; Tue, 7 Apr 2015 19:50:33 +0300 (EEST) Received: from mail.neti.ee (neti-relayhost2.estpak.ee [88.196.174.199]) by vm-relay6.estpak.ee (Postfix) with ESMTP id 17448204 for ; Tue, 7 Apr 2015 19:50:33 +0300 (EEST) Received-SPF: None (no SPF record) identity=mailfrom; client-ip=195.50.212.46; helo=46.212.50.195.sta.estpak.ee; envelope-from=job@netsearch.com; receiver=java@freebsd.org X-SMTP-Auth-NETI-Businessmail: no Received: from 46.212.50.195.sta.estpak.ee (46.212.50.195.sta.estpak.ee [195.50.212.46]) by NETI-Relayhost2.estpak.ee (Postfix) with ESMTPS id C01981CA for ; Tue, 7 Apr 2015 19:50:32 +0300 (EEST) MIME-Version: 1.0 From: =?windows-1257?Q?T=F6=F6pakkuja_?= Reply-To: job@netsearch.com To: joboffers@searchgoogle.com Subject: =?windows-1257?Q?Parimad_t=F6=F6pakkumised_Tallinnas!?= X-Mailer: Smart_Send_2_0_132 Date: Tue, 7 Apr 2015 19:50:27 +0300 Message-ID: <1588344523568504421206@M-PC> Content-Type: text/plain; charset="windows-1257" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.18-1 X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2015 16:50:36 -0000 Soovime Teile ilusat kevadet!