NetBSD Problem Report #40954

From dholland@eecs.harvard.edu  Wed Mar  4 06:10:33 2009
Return-Path: <dholland@eecs.harvard.edu>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id 14F0763BAB8
	for <gnats-bugs@gnats.NetBSD.org>; Wed,  4 Mar 2009 06:10:33 +0000 (UTC)
Message-Id: <20090304060817.A779CF897@tanaqui.eecs.harvard.edu>
Date: Wed,  4 Mar 2009 01:08:17 -0500 (EST)
From: dholland@eecs.harvard.edu
Reply-To: dholland@eecs.harvard.edu
To: gnats-bugs@gnats.NetBSD.org
Subject: lang/smlnj broken with 64-bit time_t
X-Send-Pr-Version: 3.95

>Number:         40954
>Category:       pkg
>Synopsis:       lang/smlnj broken with 64-bit time_t
>Confidential:   no
>Severity:       critical
>Priority:       low
>Responsible:    pkg-manager
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 04 06:15:00 +0000 2009
>Closed-Date:    Thu Apr 14 22:21:58 +0000 2016
>Last-Modified:  Thu Apr 14 22:21:58 +0000 2016
>Originator:     David A. Holland
>Release:        NetBSD 5.99.7 (20090209) pkgsrc 20090213
>Organization:
>Environment:
System: NetBSD tanaqui 5.99.7 NetBSD 5.99.7 (TANAQUI) #24: Mon Feb 9 11:19:51 EST 2009 root@tanaqui:/usr/src/sys/arch/i386/compile/TANAQUI i386
Architecture: i386
Machine: i386
>Description:

smlnj blows up during the build with uncaught time exceptions.
Needless to say, the build then doesn't actually stop on error but
keeps sputtering along for a while. smlnj seems to have a really
particularly Special build system.

At least part of the problem is that they apparently saw fit to make
up their own private time structure and pass it to gettimeofday().

>How-To-Repeat:

make

>Fix:

Find someone who cares enough to wade into it?

The following might be taken as a starting point, but doesn't by any
means fully fix the problem, or fix all the problems, or something
like that.


--- src/runtime/gc/gc-stats.h.orig	2009-03-03 18:23:38.000000000 -0500
+++ src/runtime/gc/gc-stats.h	2009-03-03 18:25:04.000000000 -0500
@@ -16,6 +16,7 @@ extern void ReportVM (ml_state_t *msp, i

 #define START_GC_PAUSE(HEAP)	{					\
 	if (StatsOn) {							\
+	    struct timeval tv;						\
 	    heap_t	    *__heap = (HEAP);				\
 	    stat_rec_t	    *__p = &(StatsBuf[NStatsRecs]);		\
 	    Unsigned32_t    __n = (Addr_t)(msp->ml_allocPtr) - 		\
@@ -23,7 +24,10 @@ extern void ReportVM (ml_state_t *msp, i
 	    CNTR_INCR(&(__heap->numAlloc), __n);			\
 	    __p->allocCnt = __heap->numAlloc;				\
 	    __p->numGens = 0;						\
-	    gettimeofday(&(__p->startTime), NIL(struct timezone *));	\
+	    gettimeofday(&tv, NIL(struct timezone *));			\
+	    /* XXX breaks in 2038 */					\
+	    __p->startTime.seconds = tv.tv_sec;				\
+	    __p->startTime.uSeconds = tv.tv_usec;			\
 	}								\
     }

@@ -34,8 +38,11 @@ extern void ReportVM (ml_state_t *msp, i

 #define STOP_GC_PAUSE()			{				\
 	if (StatsOn) {							\
-	    gettimeofday(&(StatsBuf[NStatsRecs].stopTime),		\
-		NIL(struct timezone *));				\
+	    struct timeval tv;						\
+	    gettimeofday(&tv, NIL(struct timezone *));			\
+	    /* XXX breaks in 2038 */					\
+	    StatsBuf[NStatsRecs].stopTime.seconds = tv.tv_sec;		\
+	    StatsBuf[NStatsRecs].stopTime.uSeconds = tv.tv_usec;	\
 	    STATS_FINISH();						\
 	}								\
     }


--- src/runtime/gc/init-gc.c.orig	2009-03-03 18:15:36.000000000 -0500
+++ src/runtime/gc/init-gc.c	2009-03-03 18:17:03.000000000 -0500
@@ -218,12 +218,16 @@ void InitHeap (ml_state_t *msp, bool_t i
 #if defined(COLLECT_STATS)
     if (StatsFD > 0) {
 	stat_hdr_t	hdr;
+	struct timeval	tv;
 	CNTR_ZERO(&(heap->numAlloc));
 	hdr.mask = STATMASK_ALLOC|STATMASK_NGENS|STATMASK_START|STATMASK_STOP;
 	hdr.isNewRuntime = 1;
 	hdr.allocSzB = params->allocSz;
 	hdr.numGens = params->numGens;
-	gettimeofday (&(hdr.startTime), NIL(struct timezone *));
+	gettimeofday (&tv, NIL(struct timezone *));
+	/* XXX breaks in 2038 */
+	hdr.startTime.seconds = tv.tv_sec;
+	hdr.startTime.uSeconds = tv.tv_usec;
 	write (StatsFD, (char *)&hdr, sizeof(stat_hdr_t));
     }
 #endif

>Release-Note:

>Audit-Trail:
From: Christopher Richards <richards@CS.Princeton.EDU>
To: gnats-bugs@netbsd.org
Cc: "Jeremy C. Reed" <reed@reedmedia.net>
Subject: Re: pkg/40954
Date: Wed, 11 Mar 2009 18:34:00 -0400

 --000e0cd22960d1938a0464df7606
 Content-Type: text/plain; charset=ISO-8859-1
 Content-Transfer-Encoding: 7bit

 The attached patch solves the lang/smlnj build failure under 64-bit
 time_t, by way of updating the package from version 110.42 (vintage
 2002) to 110.69, the most recent "working" version. In SML/NJ
 parlance, the "working" version is the stable release, and the
 "stable" version is the haunted-mansion, nobody-goes-there release. I
 could not begin to summarize the six years of changes this update
 entails.

 This new version survives the build and appears to function correctly
 (as tested on NetBSD/xen, -current as of 2009-03-06), but the runtime
 still assumes a 32-bit time_t, and will still lose beginning in 2038.

 The patch is relative to ${PKGSRCDIR}, and should be applied with
 "patch -E ...".

 Best,
 Chris

 --000e0cd22960d1938a0464df7606
 Content-Type: application/octet-stream; name="lang-smlnj.diff"
 Content-Disposition: attachment; filename="lang-smlnj.diff"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_fs6l4gi70

 ZGlmZiAteCBDVlMgLXVyTiBsYW5nL3NtbG5qLm9yaWcvTWFrZWZpbGUgbGFuZy9zbWxuai9NYWtl
 ZmlsZQotLS0gbGFuZy9zbWxuai5vcmlnL01ha2VmaWxlCTIwMDgtMDUtMjUgMjI6MTM6MjEuMDAw
 MDAwMDAwIC0wNDAwCisrKyBsYW5nL3NtbG5qL01ha2VmaWxlCTIwMDktMDMtMTEgMTY6NTc6MzQu
 MDAwMDAwMDAwIC0wNDAwCkBAIC0zLDExICszLDggQEAKIAogRElTVE5BTUU9CWJvb3QuJHtCT1h9
 LXVuaXgKIFBLR05BTUU9CXNtbG5qLSR7U01MX1ZFUlNJT059Ci1QS0dSRVZJU0lPTj0JMwogQ0FU
 RUdPUklFUz0JbGFuZwotTUFTVEVSX1NJVEVTPQlmdHA6Ly9mbGludC5jcy55YWxlLmVkdS9wdWIv
 c21sbmovd29ya2luZy8ke1NNTF9WRVJTSU9OfS8gXAotCQlodHRwOi8vc21sbmouY3MudWNoaWNh
 Z28uZWR1L2Rpc3Qvd29ya2luZy8ke1NNTF9WRVJTSU9OfS8gXAotCQlmdHA6Ly9mbGludC5jcy55
 YWxlLmVkdS9wdWIvc21sbmovd29ya2luZy8ke1NNTF9WRVJTSU9OfS8KK01BU1RFUl9TSVRFUz0J
 aHR0cDovL3NtbG5qLmNzLnVjaGljYWdvLmVkdS9kaXN0L3dvcmtpbmcvJHtTTUxfVkVSU0lPTn0v
 CiBESVNURklMRVM9CU1MUklTQy50Z3oJCQlcCiAJCWJvb3QuJHtCT1h9LXVuaXgudGd6CQlcCiAJ
 CWNraXQudGd6CQkJXApAQCAtMTYsMjggKzEzLDI3IEBACiAJCWNvbXBpbGVyLnRnegkJCVwKIAkJ
 Y29uZmlnLnRnegkJCVwKIAkJZVhlbmUudGd6CQkJXAorCQloZWFwMmFzbS50Z3oJCQlcCiAJCW1s
 LWJ1cmcudGd6CQkJXAogCQltbC1sZXgudGd6CQkJXAotCQltbC1ubGZmaS1saWIudGd6CQlcCi0J
 CW1sLW5sZmZpZ2VuLnRnegkJCVwKKwkJbWwtbHB0LnRnegkJCVwKIAkJbWwteWFjYy50Z3oJCQlc
 CisJCW5sZmZpLnRnegkJCVwKKwkJcGdyYXBoLnRnegkJCVwKIAkJcnVudGltZS50Z3oJCQlcCisJ
 CXNtbG5qLWMudGd6CQkJXAogCQlzbWxuai1saWIudGd6CQkJXAotCQlzeXN0ZW0udGd6CisJCXN5
 c3RlbS50Z3oJCQlcCisJCXRyYWNlLWRlYnVnLXByb2ZpbGUudGd6CiAKIE1BSU5UQUlORVI9CXJp
 Y2hhcmRzK25ldGJzZEBDUy5QcmluY2V0b24uRURVCiBIT01FUEFHRT0JaHR0cDovL3d3dy5zbWxu
 ai5vcmcvaW5kZXguaHRtbAogQ09NTUVOVD0JUG9wdWxhciBmdW5jdGlvbmFsIGxhbmd1YWdlIGZy
 b20gQmVsbCBMYWJzCiAKLVNNTF9WRVJTSU9OPQkxMTAuNDIKK1NNTF9WRVJTSU9OPQkxMTAuNjkK
 IAogUEtHX0RFU1RESVJfU1VQUE9SVD0JdXNlci1kZXN0ZGlyCiAKLSMgT3RoZXIgbWlycm9yIHNp
 dGVzIHRoYXQgZ2VuZXJhbGx5IGNhcnJ5IG9ubHkgcmVsZWFzZWQgdmVyc2lvbnMgb2YgU01MCi0j
 IAlmdHA6Ly9yb2Rpbi5zdGFuZm9yZC5lZHUvcHViL3NtbG5qL3JlbGVhc2UvCi0jIAlmdHA6Ly9m
 dHAuY2wuY2FtLmFjLnVrL01JUlJPUkVEL3NtbG5qL3JlbGVhc2UvCi0jIAlmdHA6Ly9mdHAubnR1
 YS5nci9wdWIvbGFuZy9zbWxuai9yZWxlYXNlLwotCiBXUktTUkM9CQkke1dSS0RJUn0KIERJU1Rf
 U1VCRElSPQlzbWxuai0ke1NNTF9WRVJTSU9OfQogVVNFX1RPT0xTKz0JZ21ha2UgcGF4CkBAIC00
 Niw5ICs0Miw3IEBACiBDT05GTElDVFM9CXNtbC1uai1bMC05XSoKIAogU01MX0JBU0U9CSR7UFJF
 RklYfS9saWIvc21sbmoKLVNNTF9MSUJESVI9CSR7U01MX0JBU0V9L2xpYgotU01MX0JJTkRJUj0J
 JHtTTUxfQkFTRX0vYmluCi1TTUxfU0NSSVBUUz0JX2xpbmstc21sIF9ydW4tc21sIF9tbC1idWls
 ZCBfbWwtbWFrZWRlcGVuZAorU01MX1NDUklQVFM9CV9oZWFwMmV4ZWMgX2xpbmstc21sIF9tbC1i
 dWlsZCBfbWwtbWFrZWRlcGVuZCBfcnVuLXNtbAogCiAuaW5jbHVkZSAiLi4vLi4vbGFuZy9zbWxu
 ai9NYWtlZmlsZS5jb21tb24iCiAKQEAgLTU2LDcgKzUwLDcgQEAKIAogIyBjcmVhdGUgcGFyZW50
 IGRpcmVjdG9yeSBmb3IgdGhlIHJ1bnRpbWUgc3lzdGVtCiBwcmUtZXh0cmFjdDoKLQkke01LRElS
 fSAke1dSS0RJUn0vc3JjIHx8ICR7VFJVRX0KKwkke01LRElSfSAke1dSS0RJUn0vYmFzZSB8fCAk
 e1RSVUV9CiAKICMgbWFrZSBpdCBlYXNpZXIgdG8gcGF0Y2ggdGhlIHJ1bnRpbWUgc3lzdGVtCiBk
 by1leHRyYWN0OgpAQCAtNjUsNyArNTksNyBAQAogCQljZCAke1dSS0RJUn07ICR7RVhUUkFDVF9D
 TUR9CiAJJHtfUEtHX1NJTEVOVH0ke19QS0dfREVCVUd9CQkJCQlcCiAJZXh0cmFjdF9maWxlPSIk
 e19ESVNURElSfS9ydW50aW1lLnRneiI7IGV4cG9ydCBleHRyYWN0X2ZpbGU7CVwKLQkJY2QgJHtX
 UktESVJ9L3NyYzsgJHtFWFRSQUNUX0NNRH0KKwkJY2QgJHtXUktESVJ9L2Jhc2U7ICR7RVhUUkFD
 VF9DTUR9CiAKICMgbWFrZSBzeW1saW5rcyB0byB0aGUgZGlzdCBmaWxlcwogcG9zdC1leHRyYWN0
 OgpAQCAtODAsNyArNzQsNyBAQAogCQkke1NFRH0gLWUgJ3N8QFNNTF9CQVNFQHwke1NNTF9CQVNF
 fXxnJwlcCiAJCQk8ICIkJHtmfS50bXAiID4gIiQke2Z9IjsJXAogCWRvbmU7CQkJCQkJXAotCWNk
 ICR7V1JLRElSfS9zcmMvcnVudGltZS9vYmpzOwkJCVwKKwljZCAke1dSS0RJUn0vYmFzZS9ydW50
 aW1lL29ianM7CQkJXAogCWZvciBmIGluICo7IGRvCQkJCQlcCiAJCSR7Q1B9ICIkJHtmfSIgIiQk
 e2Z9LnRtcCI7CQlcCiAJCSR7U0VEfSAtZSAnc3xAQ0ZMQUdTQHwke0NGTEFHU318ZycJXApkaWZm
 IC14IENWUyAtdXJOIGxhbmcvc21sbmoub3JpZy9NYWtlZmlsZS5jb21tb24gbGFuZy9zbWxuai9N
 YWtlZmlsZS5jb21tb24KLS0tIGxhbmcvc21sbmoub3JpZy9NYWtlZmlsZS5jb21tb24JMjAwOC0w
 NC0xMiAxODo0MzowMi4wMDAwMDAwMDAgLTA0MDAKKysrIGxhbmcvc21sbmovTWFrZWZpbGUuY29t
 bW9uCTIwMDktMDMtMTEgMTY6NTY6NDQuMDAwMDAwMDAwIC0wNDAwCkBAIC0xLDQgKzEsNSBAQAog
 IyAkTmV0QlNEOiBNYWtlZmlsZS5jb21tb24sdiAxLjggMjAwOC8wNC8xMiAyMjo0MzowMiBqbGFt
 IEV4cCAkCisjIHVzZWQgYnkgbGFuZy9zbWxuai9NYWtlZmlsZQogCiAjIHNtbG5qIGFsc28gc3Vw
 cG9ydHMgaHBwYSwgc3BhcmMsIHBwYywgbWxyaXNjICYgYWxwaGEKICMgcGtnIHN1cHBvcnQgZm9y
 IHRob3NlIHBsYXRmb3JtcywgYW5kIHNheSwgc29sYXJpcy14ODYKZGlmZiAteCBDVlMgLXVyTiBs
 YW5nL3NtbG5qLm9yaWcvUExJU1QgbGFuZy9zbWxuai9QTElTVAotLS0gbGFuZy9zbWxuai5vcmln
 L1BMSVNUCTIwMDgtMDQtMTIgMTg6NDM6MDMuMDAwMDAwMDAwIC0wNDAwCisrKyBsYW5nL3NtbG5q
 L1BMSVNUCTIwMDktMDMtMTEgMTc6MjI6MTAuMDAwMDAwMDAwIC0wNDAwCkBAIC0xLDI2MiArMSwz
 MzMgQEAKLUBjb21tZW50ICROZXRCU0Q6IFBMSVNULHYgMS41IDIwMDgvMDQvMTIgMjI6NDM6MDMg
 amxhbSBFeHAgJAorQGNvbW1lbnQgJE5ldEJTRCQKK2Jpbi9oZWFwMmFzbQorYmluL2hlYXAyZXhl
 YworYmluL21sLWFudGxyCiBiaW4vbWwtYnVpbGQKIGJpbi9tbC1idXJnCiBiaW4vbWwtbGV4CiBi
 aW4vbWwtbWFrZWRlcGVuZAogJHtQTElTVC5ubGZmaX1iaW4vbWwtbmxmZmlnZW4KK2Jpbi9tbC11
 bGV4CiBiaW4vbWwteWFjYwogYmluL25vd2hlcmUKIGJpbi9zbWwKIGxpYi9zbWxuai9iaW4vLmFy
 Y2gtbi1vcHN5cworbGliL3NtbG5qL2Jpbi8uaGVhcC9oZWFwMmFzbS4ke0JPWH0tJHtPU30KK2xp
 Yi9zbWxuai9iaW4vLmhlYXAvbWwtYW50bHIuJHtCT1h9LSR7T1N9CiBsaWIvc21sbmovYmluLy5o
 ZWFwL21sLWJ1cmcuJHtCT1h9LSR7T1N9CiBsaWIvc21sbmovYmluLy5oZWFwL21sLWxleC4ke0JP
 WH0tJHtPU30KICR7UExJU1QubmxmZml9bGliL3NtbG5qL2Jpbi8uaGVhcC9tbC1ubGZmaWdlbi4k
 e0JPWH0tJHtPU30KK2xpYi9zbWxuai9iaW4vLmhlYXAvbWwtdWxleC4ke0JPWH0tJHtPU30KIGxp
 Yi9zbWxuai9iaW4vLmhlYXAvbWwteWFjYy4ke0JPWH0tJHtPU30KIGxpYi9zbWxuai9iaW4vLmhl
 YXAvbm93aGVyZS4ke0JPWH0tJHtPU30KIGxpYi9zbWxuai9iaW4vLmhlYXAvc21sLiR7Qk9YfS0k
 e09TfQogbGliL3NtbG5qL2Jpbi8ubGluay1zbWwKIGxpYi9zbWxuai9iaW4vLnJ1bi1zbWwKIGxp
 Yi9zbWxuai9iaW4vLnJ1bi9ydW4uJHtCT1h9LSR7TE9XRVJfT1BTWVN9CitsaWIvc21sbmovYmlu
 L2hlYXAyYXNtCitsaWIvc21sbmovYmluL2hlYXAyZXhlYworbGliL3NtbG5qL2Jpbi9tbC1hbnRs
 cgogbGliL3NtbG5qL2Jpbi9tbC1idWlsZAogbGliL3NtbG5qL2Jpbi9tbC1idXJnCiBsaWIvc21s
 bmovYmluL21sLWxleAogbGliL3NtbG5qL2Jpbi9tbC1tYWtlZGVwZW5kCiAke1BMSVNULm5sZmZp
 fWxpYi9zbWxuai9iaW4vbWwtbmxmZmlnZW4KK2xpYi9zbWxuai9iaW4vbWwtdWxleAogbGliL3Nt
 bG5qL2Jpbi9tbC15YWNjCiBsaWIvc21sbmovYmluL25vd2hlcmUKIGxpYi9zbWxuai9iaW4vc21s
 Ci1saWIvc21sbmovbGliL1NNTE5KLU1MUklTQy9DTS8ke0JPWH0tdW5peC9BTFBIQS5jbQotbGli
 L3NtbG5qL2xpYi9TTUxOSi1NTFJJU0MvQ00vJHtCT1h9LXVuaXgvQ29udHJvbC5jbQotbGliL3Nt
 bG5qL2xpYi9TTUxOSi1NTFJJU0MvQ00vJHtCT1h9LXVuaXgvR3JhcGhzLmNtCi1saWIvc21sbmov
 bGliL1NNTE5KLU1MUklTQy9DTS8ke0JPWH0tdW5peC9IUFBBLmNtCi1saWIvc21sbmovbGliL1NN
 TE5KLU1MUklTQy9DTS8ke0JPWH0tdW5peC9JQTMyLmNtCi1saWIvc21sbmovbGliL1NNTE5KLU1M
 UklTQy9DTS8ke0JPWH0tdW5peC9MaWIuY20KLWxpYi9zbWxuai9saWIvU01MTkotTUxSSVNDL0NN
 LyR7Qk9YfS11bml4L01MUklTQy5jbQotbGliL3NtbG5qL2xpYi9TTUxOSi1NTFJJU0MvQ00vJHtC
 T1h9LXVuaXgvTUxUUkVFLmNtCi1saWIvc21sbmovbGliL1NNTE5KLU1MUklTQy9DTS8ke0JPWH0t
 dW5peC9QUEMuY20KLWxpYi9zbWxuai9saWIvU01MTkotTUxSSVNDL0NNLyR7Qk9YfS11bml4L1NQ
 QVJDLmNtCi1saWIvc21sbmovbGliL1NNTE5KLU1MUklTQy9DTS8ke0JPWH0tdW5peC9WaXN1YWwu
 Y20KLWxpYi9zbWxuai9saWIvYmFzaXMuY20vQ00vJHtCT1h9LXVuaXgvYmFzaXMuY20KLWxpYi9z
 bWxuai9saWIvYnVyZy1leHQuY20vQ00vJHtCT1h9LXVuaXgvYnVyZy1leHQuY20KLSR7UExJU1Qu
 bmxmZml9bGliL3NtbG5qL2xpYi9jL0NNLyR7Qk9YfS11bml4L2MuY20KLSR7UExJU1QubmxmZml9
 bGliL3NtbG5qL2xpYi9jL2ludGVybmFscy9DTS8ke0JPWH0tdW5peC9jLWludC5jbQotJHtQTElT
 VC5ubGZmaX1saWIvc21sbmovbGliL2MvbWVtb3J5L0NNLyR7Qk9YfS11bml4L21lbW9yeS5jbQot
 bGliL3NtbG5qL2xpYi9ja2l0LWxpYi5jbS9DTS8ke0JPWH0tdW5peC9ja2l0LWxpYi5jbQotbGli
 L3NtbG5qL2xpYi9jbWwtbGliL0NNLyR7Qk9YfS11bml4L3NtbG5qLWxpYi5jbQotbGliL3NtbG5q
 L2xpYi9jbWwtbGliL0NNLyR7Qk9YfS11bml4L3RyYWNlLWNtbC5jbQotbGliL3NtbG5qL2xpYi9j
 bWwvQ00vJHtCT1h9LXVuaXgvYmFzaXMuY20KLWxpYi9zbWxuai9saWIvY21sL0NNLyR7Qk9YfS11
 bml4L2NtbC1pbnRlcm5hbC5jbQotbGliL3NtbG5qL2xpYi9jbWwvQ00vJHtCT1h9LXVuaXgvY21s
 LmNtCi1saWIvc21sbmovbGliL2NtbC9DTS8ke0JPWH0tdW5peC9jb3JlLWNtbC5jbQotbGliL3Nt
 bG5qL2xpYi9jb250cm9scy1saWIuY20vQ00vJHtCT1h9LXVuaXgvY29udHJvbHMtbGliLmNtCi1s
 aWIvc21sbmovbGliL2Rpci10b29sLmNtL0NNLyR7Qk9YfS11bml4L2Rpci10b29sLmNtCi1saWIv
 c21sbmovbGliL2VYZW5lLmNtL0NNLyR7Qk9YfS11bml4L2VYZW5lLmNtCi1saWIvc21sbmovbGli
 L2dybS1leHQuY20vQ00vJHtCT1h9LXVuaXgvZ3JtLWV4dC5jbQotbGliL3NtbG5qL2xpYi9oYXNo
 LWNvbnMtbGliLmNtL0NNLyR7Qk9YfS11bml4L2hhc2gtY29ucy1saWIuY20KLWxpYi9zbWxuai9s
 aWIvaHRtbC1saWIuY20vQ00vJHtCT1h9LXVuaXgvaHRtbC1saWIuY20KLWxpYi9zbWxuai9saWIv
 aW5ldC1saWIuY20vQ00vJHtCT1h9LXVuaXgvaW5ldC1saWIuY20KLWxpYi9zbWxuai9saWIvbGV4
 LWV4dC5jbS9DTS8ke0JPWH0tdW5peC9sZXgtZXh0LmNtCi1saWIvc21sbmovbGliL21ha2UtdG9v
 bC5jbS9DTS8ke0JPWH0tdW5peC9tYWtlLXRvb2wuY20KLWxpYi9zbWxuai9saWIvbWwteWFjYy1s
 aWIuY20vQ00vJHtCT1h9LXVuaXgvbWwteWFjYy1saWIuY20KLWxpYi9zbWxuai9saWIvbWxidXJn
 LXRvb2wuY20vQ00vJHtCT1h9LXVuaXgvbWxidXJnLXRvb2wuY20KLWxpYi9zbWxuai9saWIvbWxs
 ZXgtdG9vbC5jbS9DTS8ke0JPWH0tdW5peC9tbGxleC10b29sLmNtCi1saWIvc21sbmovbGliL21s
 cmlzYy10b29scy9DTS8ke0JPWH0tdW5peC9tYXRjaC1jb21waWxlci5jbQotbGliL3NtbG5qL2xp
 Yi9tbHJpc2MtdG9vbHMvQ00vJHtCT1h9LXVuaXgvcGFyc2VyLmNtCi1saWIvc21sbmovbGliL21s
 cmlzYy10b29scy9DTS8ke0JPWH0tdW5peC9wcC5jbQotbGliL3NtbG5qL2xpYi9tbHJpc2MtdG9v
 bHMvQ00vJHtCT1h9LXVuaXgvcHJlYy1wYXJzZXIuY20KLWxpYi9zbWxuai9saWIvbWxyaXNjLXRv
 b2xzL0NNLyR7Qk9YfS11bml4L3NtbC1hc3QuY20KLWxpYi9zbWxuai9saWIvbWxyaXNjLXRvb2xz
 L0NNLyR7Qk9YfS11bml4L3NvdXJjZS1tYXAuY20KLWxpYi9zbWxuai9saWIvbWx5YWNjLXRvb2wu
 Y20vQ00vJHtCT1h9LXVuaXgvbWx5YWNjLXRvb2wuY20KLWxpYi9zbWxuai9saWIvbm93ZWItdG9v
 bC5jbS9DTS8ke0JPWH0tdW5peC9ub3dlYi10b29sLmNtCi1saWIvc21sbmovbGliL253LWV4dC5j
 bS9DTS8ke0JPWH0tdW5peC9udy1leHQuY20KK2xpYi9zbWxuai9saWIvU01MTkotQkFTSVMvLmNt
 LyR7Qk9YfS11bml4L2Jhc2lzLmNtCitsaWIvc21sbmovbGliL1NNTE5KLUxJQi9Db250cm9scy8u
 Y20vJHtCT1h9LXVuaXgvY29udHJvbHMtbGliLmNtCitsaWIvc21sbmovbGliL1NNTE5KLUxJQi9I
 VE1MLy5jbS8ke0JPWH0tdW5peC9odG1sLWxpYi5jbQorbGliL3NtbG5qL2xpYi9TTUxOSi1MSUIv
 UFAvLmNtLyR7Qk9YfS11bml4L3BwLWxpYi5jbQorbGliL3NtbG5qL2xpYi9TTUxOSi1MSUIvVXRp
 bC8uY20vJHtCT1h9LXVuaXgvc21sbmotbGliLmNtCitsaWIvc21sbmovbGliL1NNTE5KLU1MLVlB
 Q0MtTElCLy5jbS8ke0JPWH0tdW5peC9tbC15YWNjLWxpYi5jbQorbGliL3NtbG5qL2xpYi9TTUxO
 Si1NTFJJU0MvLmNtLyR7Qk9YfS11bml4L0FMUEhBLmNtCitsaWIvc21sbmovbGliL1NNTE5KLU1M
 UklTQy8uY20vJHtCT1h9LXVuaXgvQU1ENjQtUGVlcGhvbGUuY20KK2xpYi9zbWxuai9saWIvU01M
 TkotTUxSSVNDLy5jbS8ke0JPWH0tdW5peC9BTUQ2NC5jbQorbGliL3NtbG5qL2xpYi9TTUxOSi1N
 TFJJU0MvLmNtLyR7Qk9YfS11bml4L0NDYWxsLVZhcmFyZy5jbQorbGliL3NtbG5qL2xpYi9TTUxO
 Si1NTFJJU0MvLmNtLyR7Qk9YfS11bml4L0NDYWxsLXNwYXJjLmNtCitsaWIvc21sbmovbGliL1NN
 TE5KLU1MUklTQy8uY20vJHtCT1h9LXVuaXgvQ0NhbGwteDg2LTY0LmNtCitsaWIvc21sbmovbGli
 L1NNTE5KLU1MUklTQy8uY20vJHtCT1h9LXVuaXgvQ0NhbGwteDg2LmNtCitsaWIvc21sbmovbGli
 L1NNTE5KLU1MUklTQy8uY20vJHtCT1h9LXVuaXgvQ0NhbGwuY20KK2xpYi9zbWxuai9saWIvU01M
 TkotTUxSSVNDLy5jbS8ke0JPWH0tdW5peC9Db250cm9sLmNtCitsaWIvc21sbmovbGliL1NNTE5K
 LU1MUklTQy8uY20vJHtCT1h9LXVuaXgvR3JhcGhzLmNtCitsaWIvc21sbmovbGliL1NNTE5KLU1M
 UklTQy8uY20vJHtCT1h9LXVuaXgvSFBQQS5jbQorbGliL3NtbG5qL2xpYi9TTUxOSi1NTFJJU0Mv
 LmNtLyR7Qk9YfS11bml4L0lBMzItUGVlcGhvbGUuY20KK2xpYi9zbWxuai9saWIvU01MTkotTUxS
 SVNDLy5jbS8ke0JPWH0tdW5peC9JQTMyLmNtCitsaWIvc21sbmovbGliL1NNTE5KLU1MUklTQy8u
 Y20vJHtCT1h9LXVuaXgvTGliLmNtCitsaWIvc21sbmovbGliL1NNTE5KLU1MUklTQy8uY20vJHtC
 T1h9LXVuaXgvTUxSSVNDLmNtCitsaWIvc21sbmovbGliL1NNTE5KLU1MUklTQy8uY20vJHtCT1h9
 LXVuaXgvTUxUUkVFLmNtCitsaWIvc21sbmovbGliL1NNTE5KLU1MUklTQy8uY20vJHtCT1h9LXVu
 aXgvUFBDLmNtCitsaWIvc21sbmovbGliL1NNTE5KLU1MUklTQy8uY20vJHtCT1h9LXVuaXgvUGVl
 cGhvbGUuY20KK2xpYi9zbWxuai9saWIvU01MTkotTUxSSVNDLy5jbS8ke0JPWH0tdW5peC9SQS5j
 bQorbGliL3NtbG5qL2xpYi9TTUxOSi1NTFJJU0MvLmNtLyR7Qk9YfS11bml4L1NQQVJDLmNtCits
 aWIvc21sbmovbGliL1NNTE5KLU1MUklTQy8uY20vJHtCT1h9LXVuaXgvU3RhZ2VkQWxsb2MuY20K
 K2xpYi9zbWxuai9saWIvU01MTkotTUxSSVNDLy5jbS8ke0JPWH0tdW5peC9WaXN1YWwuY20KK2xp
 Yi9zbWxuai9saWIvYnVyZy1leHQuY20vLmNtLyR7Qk9YfS11bml4L2J1cmctZXh0LmNtCiske1BM
 SVNULm5sZmZpfWxpYi9zbWxuai9saWIvYy8uY20vJHtCT1h9LXVuaXgvYy5jbQorJHtQTElTVC5u
 bGZmaX1saWIvc21sbmovbGliL2MvaW50ZXJuYWxzLy5jbS8ke0JPWH0tdW5peC9jLWludC5jbQor
 JHtQTElTVC5ubGZmaX1saWIvc21sbmovbGliL2MvbWVtb3J5Ly5jbS8ke0JPWH0tdW5peC9tZW1v
 cnkuY20KK2xpYi9zbWxuai9saWIvY2tpdC1saWIuY20vLmNtLyR7Qk9YfS11bml4L2NraXQtbGli
 LmNtCitsaWIvc21sbmovbGliL2NtbC1saWIvLmNtLyR7Qk9YfS11bml4L3NtbG5qLWxpYi5jbQor
 bGliL3NtbG5qL2xpYi9jbWwtbGliLy5jbS8ke0JPWH0tdW5peC90cmFjZS1jbWwuY20KK2xpYi9z
 bWxuai9saWIvY21sLy5jbS8ke0JPWH0tdW5peC9iYXNpcy5jbQorbGliL3NtbG5qL2xpYi9jbWwv
 LmNtLyR7Qk9YfS11bml4L2NtbC1pbnRlcm5hbC5jbQorbGliL3NtbG5qL2xpYi9jbWwvLmNtLyR7
 Qk9YfS11bml4L2NtbC5jbQorbGliL3NtbG5qL2xpYi9jbWwvLmNtLyR7Qk9YfS11bml4L2NvcmUt
 Y21sLmNtCitsaWIvc21sbmovbGliL2Rpci10b29sLmNtLy5jbS8ke0JPWH0tdW5peC9kaXItdG9v
 bC5jbQorbGliL3NtbG5qL2xpYi9lWGVuZS5jbS8uY20vJHtCT1h9LXVuaXgvZVhlbmUuY20KK2xp
 Yi9zbWxuai9saWIvZ3JtLWV4dC5jbS8uY20vJHtCT1h9LXVuaXgvZ3JtLWV4dC5jbQorbGliL3Nt
 bG5qL2xpYi9oYXNoLWNvbnMtbGliLmNtLy5jbS8ke0JPWH0tdW5peC9oYXNoLWNvbnMtbGliLmNt
 CitsaWIvc21sbmovbGliL2luZXQtbGliLmNtLy5jbS8ke0JPWH0tdW5peC9pbmV0LWxpYi5jbQor
 bGliL3NtbG5qL2xpYi9qc29uLWxpYi5jbS8uY20vJHtCT1h9LXVuaXgvanNvbi1saWIuY20KK2xp
 Yi9zbWxuai9saWIvbGV4LWV4dC5jbS8uY20vJHtCT1h9LXVuaXgvbGV4LWV4dC5jbQorbGliL3Nt
 bG5qL2xpYi9tYWtlLXRvb2wuY20vLmNtLyR7Qk9YfS11bml4L21ha2UtdG9vbC5jbQorbGliL3Nt
 bG5qL2xpYi9tbC1hbnRsci10b29sLmNtLy5jbS8ke0JPWH0tdW5peC9tbC1hbnRsci10b29sLmNt
 CitsaWIvc21sbmovbGliL21sLWxwdC1saWIuY20vLmNtLyR7Qk9YfS11bml4L21sLWxwdC1saWIu
 Y20KK2xpYi9zbWxuai9saWIvbWwtdWxleC10b29sLmNtLy5jbS8ke0JPWH0tdW5peC9tbC11bGV4
 LXRvb2wuY20KK2xpYi9zbWxuai9saWIvbWxidXJnLXRvb2wuY20vLmNtLyR7Qk9YfS11bml4L21s
 YnVyZy10b29sLmNtCitsaWIvc21sbmovbGliL21sbGV4LXRvb2wuY20vLmNtLyR7Qk9YfS11bml4
 L21sbGV4LXRvb2wuY20KK2xpYi9zbWxuai9saWIvbWxyaXNjLXRvb2xzLy5jbS8ke0JPWH0tdW5p
 eC9tYXRjaC1jb21waWxlci5jbQorbGliL3NtbG5qL2xpYi9tbHJpc2MtdG9vbHMvLmNtLyR7Qk9Y
 fS11bml4L3BhcnNlci5jbQorbGliL3NtbG5qL2xpYi9tbHJpc2MtdG9vbHMvLmNtLyR7Qk9YfS11
 bml4L3BwLmNtCitsaWIvc21sbmovbGliL21scmlzYy10b29scy8uY20vJHtCT1h9LXVuaXgvcHJl
 Yy1wYXJzZXIuY20KK2xpYi9zbWxuai9saWIvbWxyaXNjLXRvb2xzLy5jbS8ke0JPWH0tdW5peC9z
 bWwtYXN0LmNtCitsaWIvc21sbmovbGliL21scmlzYy10b29scy8uY20vJHtCT1h9LXVuaXgvc291
 cmNlLW1hcC5jbQorbGliL3NtbG5qL2xpYi9tbHlhY2MtdG9vbC5jbS8uY20vJHtCT1h9LXVuaXgv
 bWx5YWNjLXRvb2wuY20KK2xpYi9zbWxuai9saWIvbm93ZWItdG9vbC5jbS8uY20vJHtCT1h9LXVu
 aXgvbm93ZWItdG9vbC5jbQorbGliL3NtbG5qL2xpYi9udy1leHQuY20vLmNtLyR7Qk9YfS11bml4
 L253LWV4dC5jbQogbGliL3NtbG5qL2xpYi9wYXRoY29uZmlnCi1saWIvc21sbmovbGliL3BncmFw
 aC11dGlsLmNtL0NNLyR7Qk9YfS11bml4L3BncmFwaC11dGlsLmNtCi1saWIvc21sbmovbGliL3Bn
 cmFwaC5jbS9DTS8ke0JPWH0tdW5peC9wZ3JhcGguY20KLWxpYi9zbWxuai9saWIvcGlja2xlLWxp
 Yi5jbS9DTS8ke0JPWH0tdW5peC9waWNrbGUtbGliLmNtCi1saWIvc21sbmovbGliL3BwLWxpYi5j
 bS9DTS8ke0JPWH0tdW5peC9wcC1saWIuY20KLWxpYi9zbWxuai9saWIvcmVhY3RpdmUtbGliLmNt
 L0NNLyR7Qk9YfS11bml4L3JlYWN0aXZlLWxpYi5jbQotbGliL3NtbG5qL2xpYi9yZWdleHAtbGli
 LmNtL0NNLyR7Qk9YfS11bml4L3JlZ2V4cC1saWIuY20KLWxpYi9zbWxuai9saWIvc2hlbGwtdG9v
 bC5jbS9DTS8ke0JPWH0tdW5peC9zaGVsbC10b29sLmNtCi1saWIvc21sbmovbGliL3NtbG5qLWxp
 Yi5jbS9DTS8ke0JPWH0tdW5peC9zbWxuai1saWIuY20KLWxpYi9zbWxuai9saWIvc21sbmovQ00v
 JHtCT1h9LXVuaXgvY20uY20KLWxpYi9zbWxuai9saWIvc21sbmovQ00vJHtCT1h9LXVuaXgvY21i
 LmNtCi1saWIvc21sbmovbGliL3NtbG5qL0NNLyR7Qk9YfS11bml4L2NvbXBpbGVyLmNtCi1saWIv
 c21sbmovbGliL3NtbG5qL01MUklTQy9DTS8ke0JPWH0tdW5peC9BTFBIQS5jbQotbGliL3NtbG5q
 L2xpYi9zbWxuai9NTFJJU0MvQ00vJHtCT1h9LXVuaXgvQ29udHJvbC5jbQotbGliL3NtbG5qL2xp
 Yi9zbWxuai9NTFJJU0MvQ00vJHtCT1h9LXVuaXgvR3JhcGhzLmNtCi1saWIvc21sbmovbGliL3Nt
 bG5qL01MUklTQy9DTS8ke0JPWH0tdW5peC9IUFBBLmNtCi1saWIvc21sbmovbGliL3NtbG5qL01M
 UklTQy9DTS8ke0JPWH0tdW5peC9JQTMyLmNtCi1saWIvc21sbmovbGliL3NtbG5qL01MUklTQy9D
 TS8ke0JPWH0tdW5peC9MaWIuY20KLWxpYi9zbWxuai9saWIvc21sbmovTUxSSVNDL0NNLyR7Qk9Y
 fS11bml4L01MUklTQy5jbQotbGliL3NtbG5qL2xpYi9zbWxuai9NTFJJU0MvQ00vJHtCT1h9LXVu
 aXgvTUxUUkVFLmNtCi1saWIvc21sbmovbGliL3NtbG5qL01MUklTQy9DTS8ke0JPWH0tdW5peC9Q
 UEMuY20KLWxpYi9zbWxuai9saWIvc21sbmovTUxSSVNDL0NNLyR7Qk9YfS11bml4L1NQQVJDLmNt
 Ci1saWIvc21sbmovbGliL3NtbG5qL01MUklTQy9DTS8ke0JPWH0tdW5peC9WaXN1YWwuY20KLWxp
 Yi9zbWxuai9saWIvc21sbmovY20vQ00vJHtCT1h9LXVuaXgvY20uY20KLWxpYi9zbWxuai9saWIv
 c21sbmovY20vQ00vJHtCT1h9LXVuaXgvdG9vbHMuY20KLWxpYi9zbWxuai9saWIvc21sbmovY21i
 L0NNLyR7Qk9YfS11bml4L2FscGhhMzItdW5peC5jbQotbGliL3NtbG5qL2xpYi9zbWxuai9jbWIv
 Q00vJHtCT1h9LXVuaXgvY3VycmVudC5jbQotbGliL3NtbG5qL2xpYi9zbWxuai9jbWIvQ00vJHtC
 T1h9LXVuaXgvaHBwYS11bml4LmNtCi1saWIvc21sbmovbGliL3NtbG5qL2NtYi9DTS8ke0JPWH0t
 dW5peC9wcGMtbWFjb3MuY20KLWxpYi9zbWxuai9saWIvc21sbmovY21iL0NNLyR7Qk9YfS11bml4
 L3BwYy11bml4LmNtCi1saWIvc21sbmovbGliL3NtbG5qL2NtYi9DTS8ke0JPWH0tdW5peC9zcGFy
 Yy11bml4LmNtCi1saWIvc21sbmovbGliL3NtbG5qL2NtYi9DTS8ke0JPWH0tdW5peC94ODYtdW5p
 eC5jbQotbGliL3NtbG5qL2xpYi9zbWxuai9jbWIvQ00vJHtCT1h9LXVuaXgveDg2LXdpbjMyLmNt
 Ci1saWIvc21sbmovbGliL3NtbG5qL2NvbXBpbGVyL0NNLyR7Qk9YfS11bml4L2FsbC5jbQotbGli
 L3NtbG5qL2xpYi9zbWxuai9jb21waWxlci9DTS8ke0JPWH0tdW5peC9hbHBoYTMyLmNtCi1saWIv
 c21sbmovbGliL3NtbG5qL2NvbXBpbGVyL0NNLyR7Qk9YfS11bml4L2NvbXBpbGVyLmNtCi1saWIv
 c21sbmovbGliL3NtbG5qL2NvbXBpbGVyL0NNLyR7Qk9YfS11bml4L2N1cnJlbnQuY20KLWxpYi9z
 bWxuai9saWIvc21sbmovY29tcGlsZXIvQ00vJHtCT1h9LXVuaXgvaHBwYS5jbQotbGliL3NtbG5q
 L2xpYi9zbWxuai9jb21waWxlci9DTS8ke0JPWH0tdW5peC9taW5pbWFsLW9ubHkuY20KLWxpYi9z
 bWxuai9saWIvc21sbmovY29tcGlsZXIvQ00vJHtCT1h9LXVuaXgvbWluaW1hbC5jbQotbGliL3Nt
 bG5qL2xpYi9zbWxuai9jb21waWxlci9DTS8ke0JPWH0tdW5peC9wcGMuY20KLWxpYi9zbWxuai9s
 aWIvc21sbmovY29tcGlsZXIvQ00vJHtCT1h9LXVuaXgvc3BhcmMuY20KLWxpYi9zbWxuai9saWIv
 c21sbmovY29tcGlsZXIvQ00vJHtCT1h9LXVuaXgveDg2LmNtCi1saWIvc21sbmovbGliL3NtbG5q
 L2luaXQvQ00vJHtCT1h9LXVuaXgvaW5pdC5jbWkKLWxpYi9zbWxuai9saWIvc21sbmovaW50ZXJu
 YWwvQ00vJHtCT1h9LXVuaXgvY20tbGliLmNtCi1saWIvc21sbmovbGliL3NtbG5qL2ludGVybmFs
 L0NNLyR7Qk9YfS11bml4L2NtLXNpZy1saWIuY20KLWxpYi9zbWxuai9saWIvc21sbmovaW50ZXJu
 YWwvQ00vJHtCT1h9LXVuaXgvY20wLmNtCi1saWIvc21sbmovbGliL3NtbG5qL2ludGVybmFsL0NN
 LyR7Qk9YfS11bml4L2ludHN5cy5jbQotbGliL3NtbG5qL2xpYi9zbWxuai9pbnRlcm5hbC9DTS8k
 e0JPWH0tdW5peC9zcmNwYXRoLWxpYi5jbQotbGliL3NtbG5qL2xpYi9zbWxuai92aXNjb21wL0NN
 LyR7Qk9YfS11bml4L2FscGhhMzIuY20KLWxpYi9zbWxuai9saWIvc21sbmovdmlzY29tcC9DTS8k
 e0JPWH0tdW5peC9iYXNpY3MuY20KLWxpYi9zbWxuai9saWIvc21sbmovdmlzY29tcC9DTS8ke0JP
 WH0tdW5peC9jb3JlLmNtCi1saWIvc21sbmovbGliL3NtbG5qL3Zpc2NvbXAvQ00vJHtCT1h9LXVu
 aXgvZGVidWdwcm9mLmNtCi1saWIvc21sbmovbGliL3NtbG5qL3Zpc2NvbXAvQ00vJHtCT1h9LXVu
 aXgvZWxhYmRhdGEuY20KLWxpYi9zbWxuai9saWIvc21sbmovdmlzY29tcC9DTS8ke0JPWH0tdW5p
 eC9lbGFib3JhdGUuY20KLWxpYi9zbWxuai9saWIvc21sbmovdmlzY29tcC9DTS8ke0JPWH0tdW5p
 eC9leGVjdXRlLmNtCi1saWIvc21sbmovbGliL3NtbG5qL3Zpc2NvbXAvQ00vJHtCT1h9LXVuaXgv
 aHBwYS5jbQotbGliL3NtbG5qL2xpYi9zbWxuai92aXNjb21wL0NNLyR7Qk9YfS11bml4L3BhcnNl
 ci5jbQotbGliL3NtbG5qL2xpYi9zbWxuai92aXNjb21wL0NNLyR7Qk9YfS11bml4L3BwYy5jbQot
 bGliL3NtbG5qL2xpYi9zbWxuai92aXNjb21wL0NNLyR7Qk9YfS11bml4L3NwYXJjLmNtCi1saWIv
 c21sbmovbGliL3NtbG5qL3Zpc2NvbXAvQ00vJHtCT1h9LXVuaXgveDg2LmNtCi1saWIvc21sbmov
 bGliL3VuaXgtbGliLmNtL0NNLyR7Qk9YfS11bml4L3VuaXgtbGliLmNtCi1AZGlycm0gbGliL3Nt
 bG5qL2xpYi91bml4LWxpYi5jbS9DTS8ke0JPWH0tdW5peAotQGRpcnJtIGxpYi9zbWxuai9saWIv
 dW5peC1saWIuY20vQ00KK2xpYi9zbWxuai9saWIvcGdyYXBoLXV0aWwuY20vLmNtLyR7Qk9YfS11
 bml4L3BncmFwaC11dGlsLmNtCitsaWIvc21sbmovbGliL3BncmFwaC5jbS8uY20vJHtCT1h9LXVu
 aXgvcGdyYXBoLmNtCitsaWIvc21sbmovbGliL3BpY2tsZS1saWIuY20vLmNtLyR7Qk9YfS11bml4
 L3BpY2tsZS1saWIuY20KK2xpYi9zbWxuai9saWIvcmVhY3RpdmUtbGliLmNtLy5jbS8ke0JPWH0t
 dW5peC9yZWFjdGl2ZS1saWIuY20KK2xpYi9zbWxuai9saWIvcmVnZXhwLWxpYi5jbS8uY20vJHtC
 T1h9LXVuaXgvcmVnZXhwLWxpYi5jbQorbGliL3NtbG5qL2xpYi9zaGVsbC10b29sLmNtLy5jbS8k
 e0JPWH0tdW5peC9zaGVsbC10b29sLmNtCitsaWIvc21sbmovbGliL3NtbG5qLXRkcC8uY20vJHtC
 T1h9LXVuaXgvYmFjay10cmFjZS5jbQorbGliL3NtbG5qL2xpYi9zbWxuai10ZHAvLmNtLyR7Qk9Y
 fS11bml4L2NvdmVyYWdlLmNtCitsaWIvc21sbmovbGliL3NtbG5qLXRkcC8uY20vJHtCT1h9LXVu
 aXgvcGx1Z2lucy5jbQorbGliL3NtbG5qL2xpYi9zbWxuai8uY20vJHtCT1h9LXVuaXgvY20uY20K
 K2xpYi9zbWxuai9saWIvc21sbmovLmNtLyR7Qk9YfS11bml4L2NtYi5jbQorbGliL3NtbG5qL2xp
 Yi9zbWxuai8uY20vJHtCT1h9LXVuaXgvY29tcGlsZXIuY20KK2xpYi9zbWxuai9saWIvc21sbmov
 LmNtLyR7Qk9YfS11bml4L2luc3RhbGxlci5jbQorbGliL3NtbG5qL2xpYi9zbWxuai8uY20vJHtC
 T1h9LXVuaXgvbGlicmFyeS1pbnN0YWxsLmNtCitsaWIvc21sbmovbGliL3NtbG5qL01MUklTQy8u
 Y20vJHtCT1h9LXVuaXgvQUxQSEEuY20KK2xpYi9zbWxuai9saWIvc21sbmovTUxSSVNDLy5jbS8k
 e0JPWH0tdW5peC9BTUQ2NC5jbQorbGliL3NtbG5qL2xpYi9zbWxuai9NTFJJU0MvLmNtLyR7Qk9Y
 fS11bml4L0NvbnRyb2wuY20KK2xpYi9zbWxuai9saWIvc21sbmovTUxSSVNDLy5jbS8ke0JPWH0t
 dW5peC9HcmFwaHMuY20KK2xpYi9zbWxuai9saWIvc21sbmovTUxSSVNDLy5jbS8ke0JPWH0tdW5p
 eC9IUFBBLmNtCitsaWIvc21sbmovbGliL3NtbG5qL01MUklTQy8uY20vJHtCT1h9LXVuaXgvSUEz
 Mi5jbQorbGliL3NtbG5qL2xpYi9zbWxuai9NTFJJU0MvLmNtLyR7Qk9YfS11bml4L0xpYi5jbQor
 bGliL3NtbG5qL2xpYi9zbWxuai9NTFJJU0MvLmNtLyR7Qk9YfS11bml4L01MUklTQy5jbQorbGli
 L3NtbG5qL2xpYi9zbWxuai9NTFJJU0MvLmNtLyR7Qk9YfS11bml4L01MVFJFRS5jbQorbGliL3Nt
 bG5qL2xpYi9zbWxuai9NTFJJU0MvLmNtLyR7Qk9YfS11bml4L1BQQy5jbQorbGliL3NtbG5qL2xp
 Yi9zbWxuai9NTFJJU0MvLmNtLyR7Qk9YfS11bml4L1NQQVJDLmNtCitsaWIvc21sbmovbGliL3Nt
 bG5qL01MUklTQy8uY20vJHtCT1h9LXVuaXgvVmlzdWFsLmNtCitsaWIvc21sbmovbGliL3NtbG5q
 L2Jhc2lzLy5jbS8ke0JPWH0tdW5peC9iYXNpcy5jbQorbGliL3NtbG5qL2xpYi9zbWxuai9jbS8u
 Y20vJHtCT1h9LXVuaXgvY20uY20KK2xpYi9zbWxuai9saWIvc21sbmovY20vLmNtLyR7Qk9YfS11
 bml4L3Rvb2xzLmNtCitsaWIvc21sbmovbGliL3NtbG5qL2NtYi8uY20vJHtCT1h9LXVuaXgvYWxw
 aGEzMi11bml4LmNtCitsaWIvc21sbmovbGliL3NtbG5qL2NtYi8uY20vJHtCT1h9LXVuaXgvYW1k
 NjQtdW5peC5jbQorbGliL3NtbG5qL2xpYi9zbWxuai9jbWIvLmNtLyR7Qk9YfS11bml4L2N1cnJl
 bnQuY20KK2xpYi9zbWxuai9saWIvc21sbmovY21iLy5jbS8ke0JPWH0tdW5peC9ocHBhLXVuaXgu
 Y20KK2xpYi9zbWxuai9saWIvc21sbmovY21iLy5jbS8ke0JPWH0tdW5peC9wcGMtbWFjb3MuY20K
 K2xpYi9zbWxuai9saWIvc21sbmovY21iLy5jbS8ke0JPWH0tdW5peC9wcGMtdW5peC5jbQorbGli
 L3NtbG5qL2xpYi9zbWxuai9jbWIvLmNtLyR7Qk9YfS11bml4L3NwYXJjLXVuaXguY20KK2xpYi9z
 bWxuai9saWIvc21sbmovY21iLy5jbS8ke0JPWH0tdW5peC94ODYtdW5peC5jbQorbGliL3NtbG5q
 L2xpYi9zbWxuai9jbWIvLmNtLyR7Qk9YfS11bml4L3g4Ni13aW4zMi5jbQorbGliL3NtbG5qL2xp
 Yi9zbWxuai9jb21waWxlci8uY20vJHtCT1h9LXVuaXgvYWxsLmNtCitsaWIvc21sbmovbGliL3Nt
 bG5qL2NvbXBpbGVyLy5jbS8ke0JPWH0tdW5peC9hbHBoYTMyLmNtCitsaWIvc21sbmovbGliL3Nt
 bG5qL2NvbXBpbGVyLy5jbS8ke0JPWH0tdW5peC9hbWQ2NC5jbQorbGliL3NtbG5qL2xpYi9zbWxu
 ai9jb21waWxlci8uY20vJHtCT1h9LXVuaXgvY29tcGlsZXIuY20KK2xpYi9zbWxuai9saWIvc21s
 bmovY29tcGlsZXIvLmNtLyR7Qk9YfS11bml4L2N1cnJlbnQuY20KK2xpYi9zbWxuai9saWIvc21s
 bmovY29tcGlsZXIvLmNtLyR7Qk9YfS11bml4L2hwcGEuY20KK2xpYi9zbWxuai9saWIvc21sbmov
 Y29tcGlsZXIvLmNtLyR7Qk9YfS11bml4L21pbmltYWwtb25seS5jbQorbGliL3NtbG5qL2xpYi9z
 bWxuai9jb21waWxlci8uY20vJHtCT1h9LXVuaXgvbWluaW1hbC5jbQorbGliL3NtbG5qL2xpYi9z
 bWxuai9jb21waWxlci8uY20vJHtCT1h9LXVuaXgvcHBjLmNtCitsaWIvc21sbmovbGliL3NtbG5q
 L2NvbXBpbGVyLy5jbS8ke0JPWH0tdW5peC9zcGFyYy5jbQorbGliL3NtbG5qL2xpYi9zbWxuai9j
 b21waWxlci8uY20vJHtCT1h9LXVuaXgveDg2LmNtCitsaWIvc21sbmovbGliL3NtbG5qL2luaXQv
 LmNtLyR7Qk9YfS11bml4L2luaXQuY21pCitsaWIvc21sbmovbGliL3NtbG5qL2luc3RhbGxlci8u
 Y20vJHtCT1h9LXVuaXgvdXRpbC5jbQorbGliL3NtbG5qL2xpYi9zbWxuai9pbnRlcm5hbC8uY20v
 JHtCT1h9LXVuaXgvY20tbGliLmNtCitsaWIvc21sbmovbGliL3NtbG5qL2ludGVybmFsLy5jbS8k
 e0JPWH0tdW5peC9jbS1zaWctbGliLmNtCitsaWIvc21sbmovbGliL3NtbG5qL2ludGVybmFsLy5j
 bS8ke0JPWH0tdW5peC9jbTAuY20KK2xpYi9zbWxuai9saWIvc21sbmovaW50ZXJuYWwvLmNtLyR7
 Qk9YfS11bml4L2ludHN5cy5jbQorbGliL3NtbG5qL2xpYi9zbWxuai9pbnRlcm5hbC8uY20vJHtC
 T1h9LXVuaXgvc21sbmotdmVyc2lvbi5jbQorbGliL3NtbG5qL2xpYi9zbWxuai9pbnRlcm5hbC8u
 Y20vJHtCT1h9LXVuaXgvc3JjcGF0aC1saWIuY20KK2xpYi9zbWxuai9saWIvc21sbmovbWwteWFj
 Yy8uY20vJHtCT1h9LXVuaXgvbWwteWFjYy1saWIuY20KK2xpYi9zbWxuai9saWIvc21sbmovc21s
 bmotbGliLy5jbS8ke0JPWH0tdW5peC9jb250cm9scy1saWIuY20KK2xpYi9zbWxuai9saWIvc21s
 bmovc21sbmotbGliLy5jbS8ke0JPWH0tdW5peC9odG1sLWxpYi5jbQorbGliL3NtbG5qL2xpYi9z
 bWxuai9zbWxuai1saWIvLmNtLyR7Qk9YfS11bml4L3BwLWxpYi5jbQorbGliL3NtbG5qL2xpYi9z
 bWxuai9zbWxuai1saWIvLmNtLyR7Qk9YfS11bml4L3NtbG5qLWxpYi5jbQorbGliL3NtbG5qL2xp
 Yi9zbWxuai92aXNjb21wLy5jbS8ke0JPWH0tdW5peC9hbHBoYTMyLmNtCitsaWIvc21sbmovbGli
 L3NtbG5qL3Zpc2NvbXAvLmNtLyR7Qk9YfS11bml4L2FtZDY0LmNtCitsaWIvc21sbmovbGliL3Nt
 bG5qL3Zpc2NvbXAvLmNtLyR7Qk9YfS11bml4L2Jhc2ljcy5jbQorbGliL3NtbG5qL2xpYi9zbWxu
 ai92aXNjb21wLy5jbS8ke0JPWH0tdW5peC9jb3JlLmNtCitsaWIvc21sbmovbGliL3NtbG5qL3Zp
 c2NvbXAvLmNtLyR7Qk9YfS11bml4L2RlYnVncHJvZi5jbQorbGliL3NtbG5qL2xpYi9zbWxuai92
 aXNjb21wLy5jbS8ke0JPWH0tdW5peC9lbGFiZGF0YS5jbQorbGliL3NtbG5qL2xpYi9zbWxuai92
 aXNjb21wLy5jbS8ke0JPWH0tdW5peC9lbGFib3JhdGUuY20KK2xpYi9zbWxuai9saWIvc21sbmov
 dmlzY29tcC8uY20vJHtCT1h9LXVuaXgvZXhlY3V0ZS5jbQorbGliL3NtbG5qL2xpYi9zbWxuai92
 aXNjb21wLy5jbS8ke0JPWH0tdW5peC9ocHBhLmNtCitsaWIvc21sbmovbGliL3NtbG5qL3Zpc2Nv
 bXAvLmNtLyR7Qk9YfS11bml4L3BhcnNlci5jbQorbGliL3NtbG5qL2xpYi9zbWxuai92aXNjb21w
 Ly5jbS8ke0JPWH0tdW5peC9wcGMuY20KK2xpYi9zbWxuai9saWIvc21sbmovdmlzY29tcC8uY20v
 JHtCT1h9LXVuaXgvc3BhcmMuY20KK2xpYi9zbWxuai9saWIvc21sbmovdmlzY29tcC8uY20vJHtC
 T1h9LXVuaXgveDg2LmNtCitsaWIvc21sbmovbGliL3VuaXgtbGliLmNtLy5jbS8ke0JPWH0tdW5p
 eC91bml4LWxpYi5jbQorQGRpcnJtIGxpYi9zbWxuai9saWIvdW5peC1saWIuY20vLmNtLyR7Qk9Y
 fS11bml4CitAZGlycm0gbGliL3NtbG5qL2xpYi91bml4LWxpYi5jbS8uY20KIEBkaXJybSBsaWIv
 c21sbmovbGliL3VuaXgtbGliLmNtCi1AZGlycm0gbGliL3NtbG5qL2xpYi9zbWxuai92aXNjb21w
 L0NNLyR7Qk9YfS11bml4Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9zbWxuai92aXNjb21wL0NNCitA
 ZGlycm0gbGliL3NtbG5qL2xpYi9zbWxuai92aXNjb21wLy5jbS8ke0JPWH0tdW5peAorQGRpcnJt
 IGxpYi9zbWxuai9saWIvc21sbmovdmlzY29tcC8uY20KIEBkaXJybSBsaWIvc21sbmovbGliL3Nt
 bG5qL3Zpc2NvbXAKLUBkaXJybSBsaWIvc21sbmovbGliL3NtbG5qL2ludGVybmFsL0NNLyR7Qk9Y
 fS11bml4Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9zbWxuai9pbnRlcm5hbC9DTQorQGRpcnJtIGxp
 Yi9zbWxuai9saWIvc21sbmovc21sbmotbGliLy5jbS8ke0JPWH0tdW5peAorQGRpcnJtIGxpYi9z
 bWxuai9saWIvc21sbmovc21sbmotbGliLy5jbQorQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmov
 c21sbmotbGliCitAZGlycm0gbGliL3NtbG5qL2xpYi9zbWxuai9tbC15YWNjLy5jbS8ke0JPWH0t
 dW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmovbWwteWFjYy8uY20KK0BkaXJybSBsaWIv
 c21sbmovbGliL3NtbG5qL21sLXlhY2MKK0BkaXJybSBsaWIvc21sbmovbGliL3NtbG5qL2ludGVy
 bmFsLy5jbS8ke0JPWH0tdW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmovaW50ZXJuYWwv
 LmNtCiBAZGlycm0gbGliL3NtbG5qL2xpYi9zbWxuai9pbnRlcm5hbAotQGRpcnJtIGxpYi9zbWxu
 ai9saWIvc21sbmovaW5pdC9DTS8ke0JPWH0tdW5peAotQGRpcnJtIGxpYi9zbWxuai9saWIvc21s
 bmovaW5pdC9DTQorQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmovaW5zdGFsbGVyLy5jbS8ke0JP
 WH0tdW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmovaW5zdGFsbGVyLy5jbQorQGRpcnJt
 IGxpYi9zbWxuai9saWIvc21sbmovaW5zdGFsbGVyCitAZGlycm0gbGliL3NtbG5qL2xpYi9zbWxu
 ai9pbml0Ly5jbS8ke0JPWH0tdW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmovaW5pdC8u
 Y20KIEBkaXJybSBsaWIvc21sbmovbGliL3NtbG5qL2luaXQKLUBkaXJybSBsaWIvc21sbmovbGli
 L3NtbG5qL2NvbXBpbGVyL0NNLyR7Qk9YfS11bml4Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9zbWxu
 ai9jb21waWxlci9DTQorQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmovY29tcGlsZXIvLmNtLyR7
 Qk9YfS11bml4CitAZGlycm0gbGliL3NtbG5qL2xpYi9zbWxuai9jb21waWxlci8uY20KIEBkaXJy
 bSBsaWIvc21sbmovbGliL3NtbG5qL2NvbXBpbGVyCi1AZGlycm0gbGliL3NtbG5qL2xpYi9zbWxu
 ai9jbWIvQ00vJHtCT1h9LXVuaXgKLUBkaXJybSBsaWIvc21sbmovbGliL3NtbG5qL2NtYi9DTQor
 QGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmovY21iLy5jbS8ke0JPWH0tdW5peAorQGRpcnJtIGxp
 Yi9zbWxuai9saWIvc21sbmovY21iLy5jbQogQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmovY21i
 Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9zbWxuai9jbS9DTS8ke0JPWH0tdW5peAotQGRpcnJtIGxp
 Yi9zbWxuai9saWIvc21sbmovY20vQ00KK0BkaXJybSBsaWIvc21sbmovbGliL3NtbG5qL2NtLy5j
 bS8ke0JPWH0tdW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmovY20vLmNtCiBAZGlycm0g
 bGliL3NtbG5qL2xpYi9zbWxuai9jbQotQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmovTUxSSVND
 L0NNLyR7Qk9YfS11bml4Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9zbWxuai9NTFJJU0MvQ00KK0Bk
 aXJybSBsaWIvc21sbmovbGliL3NtbG5qL2Jhc2lzLy5jbS8ke0JPWH0tdW5peAorQGRpcnJtIGxp
 Yi9zbWxuai9saWIvc21sbmovYmFzaXMvLmNtCitAZGlycm0gbGliL3NtbG5qL2xpYi9zbWxuai9i
 YXNpcworQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmovTUxSSVNDLy5jbS8ke0JPWH0tdW5peAor
 QGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmovTUxSSVNDLy5jbQogQGRpcnJtIGxpYi9zbWxuai9s
 aWIvc21sbmovTUxSSVNDCi1AZGlycm0gbGliL3NtbG5qL2xpYi9zbWxuai9DTS8ke0JPWH0tdW5p
 eAotQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmovQ00KLUBkaXJybSBsaWIvc21sbmovbGliL3Nt
 bG5qLWxpYi5jbS9DTS8ke0JPWH0tdW5peAotQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmotbGli
 LmNtL0NNCi1AZGlycm0gbGliL3NtbG5qL2xpYi9zbWxuai1saWIuY20KK0BkaXJybSBsaWIvc21s
 bmovbGliL3NtbG5qLy5jbS8ke0JPWH0tdW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvc21sbmov
 LmNtCitAZGlycm0gbGliL3NtbG5qL2xpYi9zbWxuai10ZHAvLmNtLyR7Qk9YfS11bml4CitAZGly
 cm0gbGliL3NtbG5qL2xpYi9zbWxuai10ZHAvLmNtCitAZGlycm0gbGliL3NtbG5qL2xpYi9zbWxu
 ai10ZHAKIEBkaXJybSBsaWIvc21sbmovbGliL3NtbG5qCi1AZGlycm0gbGliL3NtbG5qL2xpYi9z
 aGVsbC10b29sLmNtL0NNLyR7Qk9YfS11bml4Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9zaGVsbC10
 b29sLmNtL0NNCitAZGlycm0gbGliL3NtbG5qL2xpYi9zaGVsbC10b29sLmNtLy5jbS8ke0JPWH0t
 dW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvc2hlbGwtdG9vbC5jbS8uY20KIEBkaXJybSBsaWIv
 c21sbmovbGliL3NoZWxsLXRvb2wuY20KLUBkaXJybSBsaWIvc21sbmovbGliL3JlZ2V4cC1saWIu
 Y20vQ00vJHtCT1h9LXVuaXgKLUBkaXJybSBsaWIvc21sbmovbGliL3JlZ2V4cC1saWIuY20vQ00K
 K0BkaXJybSBsaWIvc21sbmovbGliL3JlZ2V4cC1saWIuY20vLmNtLyR7Qk9YfS11bml4CitAZGly
 cm0gbGliL3NtbG5qL2xpYi9yZWdleHAtbGliLmNtLy5jbQogQGRpcnJtIGxpYi9zbWxuai9saWIv
 cmVnZXhwLWxpYi5jbQotQGRpcnJtIGxpYi9zbWxuai9saWIvcmVhY3RpdmUtbGliLmNtL0NNLyR7
 Qk9YfS11bml4Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9yZWFjdGl2ZS1saWIuY20vQ00KK0BkaXJy
 bSBsaWIvc21sbmovbGliL3JlYWN0aXZlLWxpYi5jbS8uY20vJHtCT1h9LXVuaXgKK0BkaXJybSBs
 aWIvc21sbmovbGliL3JlYWN0aXZlLWxpYi5jbS8uY20KIEBkaXJybSBsaWIvc21sbmovbGliL3Jl
 YWN0aXZlLWxpYi5jbQotQGRpcnJtIGxpYi9zbWxuai9saWIvcHAtbGliLmNtL0NNLyR7Qk9YfS11
 bml4Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9wcC1saWIuY20vQ00KLUBkaXJybSBsaWIvc21sbmov
 bGliL3BwLWxpYi5jbQotQGRpcnJtIGxpYi9zbWxuai9saWIvcGlja2xlLWxpYi5jbS9DTS8ke0JP
 WH0tdW5peAotQGRpcnJtIGxpYi9zbWxuai9saWIvcGlja2xlLWxpYi5jbS9DTQorQGRpcnJtIGxp
 Yi9zbWxuai9saWIvcGlja2xlLWxpYi5jbS8uY20vJHtCT1h9LXVuaXgKK0BkaXJybSBsaWIvc21s
 bmovbGliL3BpY2tsZS1saWIuY20vLmNtCiBAZGlycm0gbGliL3NtbG5qL2xpYi9waWNrbGUtbGli
 LmNtCi1AZGlycm0gbGliL3NtbG5qL2xpYi9wZ3JhcGguY20vQ00vJHtCT1h9LXVuaXgKLUBkaXJy
 bSBsaWIvc21sbmovbGliL3BncmFwaC5jbS9DTQorQGRpcnJtIGxpYi9zbWxuai9saWIvcGdyYXBo
 LmNtLy5jbS8ke0JPWH0tdW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvcGdyYXBoLmNtLy5jbQog
 QGRpcnJtIGxpYi9zbWxuai9saWIvcGdyYXBoLmNtCi1AZGlycm0gbGliL3NtbG5qL2xpYi9wZ3Jh
 cGgtdXRpbC5jbS9DTS8ke0JPWH0tdW5peAotQGRpcnJtIGxpYi9zbWxuai9saWIvcGdyYXBoLXV0
 aWwuY20vQ00KK0BkaXJybSBsaWIvc21sbmovbGliL3BncmFwaC11dGlsLmNtLy5jbS8ke0JPWH0t
 dW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvcGdyYXBoLXV0aWwuY20vLmNtCiBAZGlycm0gbGli
 L3NtbG5qL2xpYi9wZ3JhcGgtdXRpbC5jbQotQGRpcnJtIGxpYi9zbWxuai9saWIvbnctZXh0LmNt
 L0NNLyR7Qk9YfS11bml4Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9udy1leHQuY20vQ00KK0BkaXJy
 bSBsaWIvc21sbmovbGliL253LWV4dC5jbS8uY20vJHtCT1h9LXVuaXgKK0BkaXJybSBsaWIvc21s
 bmovbGliL253LWV4dC5jbS8uY20KIEBkaXJybSBsaWIvc21sbmovbGliL253LWV4dC5jbQotQGRp
 cnJtIGxpYi9zbWxuai9saWIvbm93ZWItdG9vbC5jbS9DTS8ke0JPWH0tdW5peAotQGRpcnJtIGxp
 Yi9zbWxuai9saWIvbm93ZWItdG9vbC5jbS9DTQorQGRpcnJtIGxpYi9zbWxuai9saWIvbm93ZWIt
 dG9vbC5jbS8uY20vJHtCT1h9LXVuaXgKK0BkaXJybSBsaWIvc21sbmovbGliL25vd2ViLXRvb2wu
 Y20vLmNtCiBAZGlycm0gbGliL3NtbG5qL2xpYi9ub3dlYi10b29sLmNtCi1AZGlycm0gbGliL3Nt
 bG5qL2xpYi9tbHlhY2MtdG9vbC5jbS9DTS8ke0JPWH0tdW5peAotQGRpcnJtIGxpYi9zbWxuai9s
 aWIvbWx5YWNjLXRvb2wuY20vQ00KK0BkaXJybSBsaWIvc21sbmovbGliL21seWFjYy10b29sLmNt
 Ly5jbS8ke0JPWH0tdW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvbWx5YWNjLXRvb2wuY20vLmNt
 CiBAZGlycm0gbGliL3NtbG5qL2xpYi9tbHlhY2MtdG9vbC5jbQotQGRpcnJtIGxpYi9zbWxuai9s
 aWIvbWxyaXNjLXRvb2xzL0NNLyR7Qk9YfS11bml4Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9tbHJp
 c2MtdG9vbHMvQ00KK0BkaXJybSBsaWIvc21sbmovbGliL21scmlzYy10b29scy8uY20vJHtCT1h9
 LXVuaXgKK0BkaXJybSBsaWIvc21sbmovbGliL21scmlzYy10b29scy8uY20KIEBkaXJybSBsaWIv
 c21sbmovbGliL21scmlzYy10b29scwotQGRpcnJtIGxpYi9zbWxuai9saWIvbWxsZXgtdG9vbC5j
 bS9DTS8ke0JPWH0tdW5peAotQGRpcnJtIGxpYi9zbWxuai9saWIvbWxsZXgtdG9vbC5jbS9DTQor
 QGRpcnJtIGxpYi9zbWxuai9saWIvbWxsZXgtdG9vbC5jbS8uY20vJHtCT1h9LXVuaXgKK0BkaXJy
 bSBsaWIvc21sbmovbGliL21sbGV4LXRvb2wuY20vLmNtCiBAZGlycm0gbGliL3NtbG5qL2xpYi9t
 bGxleC10b29sLmNtCi1AZGlycm0gbGliL3NtbG5qL2xpYi9tbGJ1cmctdG9vbC5jbS9DTS8ke0JP
 WH0tdW5peAotQGRpcnJtIGxpYi9zbWxuai9saWIvbWxidXJnLXRvb2wuY20vQ00KK0BkaXJybSBs
 aWIvc21sbmovbGliL21sYnVyZy10b29sLmNtLy5jbS8ke0JPWH0tdW5peAorQGRpcnJtIGxpYi9z
 bWxuai9saWIvbWxidXJnLXRvb2wuY20vLmNtCiBAZGlycm0gbGliL3NtbG5qL2xpYi9tbGJ1cmct
 dG9vbC5jbQotQGRpcnJtIGxpYi9zbWxuai9saWIvbWwteWFjYy1saWIuY20vQ00vJHtCT1h9LXVu
 aXgKLUBkaXJybSBsaWIvc21sbmovbGliL21sLXlhY2MtbGliLmNtL0NNCi1AZGlycm0gbGliL3Nt
 bG5qL2xpYi9tbC15YWNjLWxpYi5jbQotQGRpcnJtIGxpYi9zbWxuai9saWIvbWFrZS10b29sLmNt
 L0NNLyR7Qk9YfS11bml4Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9tYWtlLXRvb2wuY20vQ00KK0Bk
 aXJybSBsaWIvc21sbmovbGliL21sLXVsZXgtdG9vbC5jbS8uY20vJHtCT1h9LXVuaXgKK0BkaXJy
 bSBsaWIvc21sbmovbGliL21sLXVsZXgtdG9vbC5jbS8uY20KK0BkaXJybSBsaWIvc21sbmovbGli
 L21sLXVsZXgtdG9vbC5jbQorQGRpcnJtIGxpYi9zbWxuai9saWIvbWwtbHB0LWxpYi5jbS8uY20v
 JHtCT1h9LXVuaXgKK0BkaXJybSBsaWIvc21sbmovbGliL21sLWxwdC1saWIuY20vLmNtCitAZGly
 cm0gbGliL3NtbG5qL2xpYi9tbC1scHQtbGliLmNtCitAZGlycm0gbGliL3NtbG5qL2xpYi9tbC1h
 bnRsci10b29sLmNtLy5jbS8ke0JPWH0tdW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvbWwtYW50
 bHItdG9vbC5jbS8uY20KK0BkaXJybSBsaWIvc21sbmovbGliL21sLWFudGxyLXRvb2wuY20KK0Bk
 aXJybSBsaWIvc21sbmovbGliL21ha2UtdG9vbC5jbS8uY20vJHtCT1h9LXVuaXgKK0BkaXJybSBs
 aWIvc21sbmovbGliL21ha2UtdG9vbC5jbS8uY20KIEBkaXJybSBsaWIvc21sbmovbGliL21ha2Ut
 dG9vbC5jbQotQGRpcnJtIGxpYi9zbWxuai9saWIvbGV4LWV4dC5jbS9DTS8ke0JPWH0tdW5peAot
 QGRpcnJtIGxpYi9zbWxuai9saWIvbGV4LWV4dC5jbS9DTQorQGRpcnJtIGxpYi9zbWxuai9saWIv
 bGV4LWV4dC5jbS8uY20vJHtCT1h9LXVuaXgKK0BkaXJybSBsaWIvc21sbmovbGliL2xleC1leHQu
 Y20vLmNtCiBAZGlycm0gbGliL3NtbG5qL2xpYi9sZXgtZXh0LmNtCi1AZGlycm0gbGliL3NtbG5q
 L2xpYi9pbmV0LWxpYi5jbS9DTS8ke0JPWH0tdW5peAotQGRpcnJtIGxpYi9zbWxuai9saWIvaW5l
 dC1saWIuY20vQ00KK0BkaXJybSBsaWIvc21sbmovbGliL2pzb24tbGliLmNtLy5jbS8ke0JPWH0t
 dW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvanNvbi1saWIuY20vLmNtCitAZGlycm0gbGliL3Nt
 bG5qL2xpYi9qc29uLWxpYi5jbQorQGRpcnJtIGxpYi9zbWxuai9saWIvaW5ldC1saWIuY20vLmNt
 LyR7Qk9YfS11bml4CitAZGlycm0gbGliL3NtbG5qL2xpYi9pbmV0LWxpYi5jbS8uY20KIEBkaXJy
 bSBsaWIvc21sbmovbGliL2luZXQtbGliLmNtCi1AZGlycm0gbGliL3NtbG5qL2xpYi9odG1sLWxp
 Yi5jbS9DTS8ke0JPWH0tdW5peAotQGRpcnJtIGxpYi9zbWxuai9saWIvaHRtbC1saWIuY20vQ00K
 LUBkaXJybSBsaWIvc21sbmovbGliL2h0bWwtbGliLmNtCi1AZGlycm0gbGliL3NtbG5qL2xpYi9o
 YXNoLWNvbnMtbGliLmNtL0NNLyR7Qk9YfS11bml4Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9oYXNo
 LWNvbnMtbGliLmNtL0NNCitAZGlycm0gbGliL3NtbG5qL2xpYi9oYXNoLWNvbnMtbGliLmNtLy5j
 bS8ke0JPWH0tdW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvaGFzaC1jb25zLWxpYi5jbS8uY20K
 IEBkaXJybSBsaWIvc21sbmovbGliL2hhc2gtY29ucy1saWIuY20KLUBkaXJybSBsaWIvc21sbmov
 bGliL2dybS1leHQuY20vQ00vJHtCT1h9LXVuaXgKLUBkaXJybSBsaWIvc21sbmovbGliL2dybS1l
 eHQuY20vQ00KK0BkaXJybSBsaWIvc21sbmovbGliL2dybS1leHQuY20vLmNtLyR7Qk9YfS11bml4
 CitAZGlycm0gbGliL3NtbG5qL2xpYi9ncm0tZXh0LmNtLy5jbQogQGRpcnJtIGxpYi9zbWxuai9s
 aWIvZ3JtLWV4dC5jbQotQGRpcnJtIGxpYi9zbWxuai9saWIvZVhlbmUuY20vQ00vJHtCT1h9LXVu
 aXgKLUBkaXJybSBsaWIvc21sbmovbGliL2VYZW5lLmNtL0NNCitAZGlycm0gbGliL3NtbG5qL2xp
 Yi9lWGVuZS5jbS8uY20vJHtCT1h9LXVuaXgKK0BkaXJybSBsaWIvc21sbmovbGliL2VYZW5lLmNt
 Ly5jbQogQGRpcnJtIGxpYi9zbWxuai9saWIvZVhlbmUuY20KLUBkaXJybSBsaWIvc21sbmovbGli
 L2Rpci10b29sLmNtL0NNLyR7Qk9YfS11bml4Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9kaXItdG9v
 bC5jbS9DTQorQGRpcnJtIGxpYi9zbWxuai9saWIvZGlyLXRvb2wuY20vLmNtLyR7Qk9YfS11bml4
 CitAZGlycm0gbGliL3NtbG5qL2xpYi9kaXItdG9vbC5jbS8uY20KIEBkaXJybSBsaWIvc21sbmov
 bGliL2Rpci10b29sLmNtCi1AZGlycm0gbGliL3NtbG5qL2xpYi9jb250cm9scy1saWIuY20vQ00v
 JHtCT1h9LXVuaXgKLUBkaXJybSBsaWIvc21sbmovbGliL2NvbnRyb2xzLWxpYi5jbS9DTQotQGRp
 cnJtIGxpYi9zbWxuai9saWIvY29udHJvbHMtbGliLmNtCi1AZGlycm0gbGliL3NtbG5qL2xpYi9j
 bWwvQ00vJHtCT1h9LXVuaXgKLUBkaXJybSBsaWIvc21sbmovbGliL2NtbC9DTQotQGRpcnJtIGxp
 Yi9zbWxuai9saWIvY21sLWxpYi9DTS8ke0JPWH0tdW5peAotQGRpcnJtIGxpYi9zbWxuai9saWIv
 Y21sLWxpYi9DTQorQGRpcnJtIGxpYi9zbWxuai9saWIvY21sLy5jbS8ke0JPWH0tdW5peAorQGRp
 cnJtIGxpYi9zbWxuai9saWIvY21sLy5jbQorQGRpcnJtIGxpYi9zbWxuai9saWIvY21sLWxpYi8u
 Y20vJHtCT1h9LXVuaXgKK0BkaXJybSBsaWIvc21sbmovbGliL2NtbC1saWIvLmNtCiBAZGlycm0g
 bGliL3NtbG5qL2xpYi9jbWwtbGliCiBAZGlycm0gbGliL3NtbG5qL2xpYi9jbWwKLUBkaXJybSBs
 aWIvc21sbmovbGliL2NraXQtbGliLmNtL0NNLyR7Qk9YfS11bml4Ci1AZGlycm0gbGliL3NtbG5q
 L2xpYi9ja2l0LWxpYi5jbS9DTQorQGRpcnJtIGxpYi9zbWxuai9saWIvY2tpdC1saWIuY20vLmNt
 LyR7Qk9YfS11bml4CitAZGlycm0gbGliL3NtbG5qL2xpYi9ja2l0LWxpYi5jbS8uY20KIEBkaXJy
 bSBsaWIvc21sbmovbGliL2NraXQtbGliLmNtCi0ke1BMSVNULm5sZmZpfUBkaXJybSBsaWIvc21s
 bmovbGliL2MvbWVtb3J5L0NNLyR7Qk9YfS11bml4Ci0ke1BMSVNULm5sZmZpfUBkaXJybSBsaWIv
 c21sbmovbGliL2MvbWVtb3J5L0NNCiske1BMSVNULm5sZmZpfUBkaXJybSBsaWIvc21sbmovbGli
 L2MvbWVtb3J5Ly5jbS8ke0JPWH0tdW5peAorJHtQTElTVC5ubGZmaX1AZGlycm0gbGliL3NtbG5q
 L2xpYi9jL21lbW9yeS8uY20KICR7UExJU1QubmxmZml9QGRpcnJtIGxpYi9zbWxuai9saWIvYy9t
 ZW1vcnkKLSR7UExJU1QubmxmZml9QGRpcnJtIGxpYi9zbWxuai9saWIvYy9pbnRlcm5hbHMvQ00v
 JHtCT1h9LXVuaXgKLSR7UExJU1QubmxmZml9QGRpcnJtIGxpYi9zbWxuai9saWIvYy9pbnRlcm5h
 bHMvQ00KKyR7UExJU1QubmxmZml9QGRpcnJtIGxpYi9zbWxuai9saWIvYy9pbnRlcm5hbHMvLmNt
 LyR7Qk9YfS11bml4Ciske1BMSVNULm5sZmZpfUBkaXJybSBsaWIvc21sbmovbGliL2MvaW50ZXJu
 YWxzLy5jbQogJHtQTElTVC5ubGZmaX1AZGlycm0gbGliL3NtbG5qL2xpYi9jL2ludGVybmFscwot
 JHtQTElTVC5ubGZmaX1AZGlycm0gbGliL3NtbG5qL2xpYi9jL0NNLyR7Qk9YfS11bml4Ci0ke1BM
 SVNULm5sZmZpfUBkaXJybSBsaWIvc21sbmovbGliL2MvQ00KKyR7UExJU1QubmxmZml9QGRpcnJt
 IGxpYi9zbWxuai9saWIvYy8uY20vJHtCT1h9LXVuaXgKKyR7UExJU1QubmxmZml9QGRpcnJtIGxp
 Yi9zbWxuai9saWIvYy8uY20KICR7UExJU1QubmxmZml9QGRpcnJtIGxpYi9zbWxuai9saWIvYwot
 QGRpcnJtIGxpYi9zbWxuai9saWIvYnVyZy1leHQuY20vQ00vJHtCT1h9LXVuaXgKLUBkaXJybSBs
 aWIvc21sbmovbGliL2J1cmctZXh0LmNtL0NNCitAZGlycm0gbGliL3NtbG5qL2xpYi9idXJnLWV4
 dC5jbS8uY20vJHtCT1h9LXVuaXgKK0BkaXJybSBsaWIvc21sbmovbGliL2J1cmctZXh0LmNtLy5j
 bQogQGRpcnJtIGxpYi9zbWxuai9saWIvYnVyZy1leHQuY20KLUBkaXJybSBsaWIvc21sbmovbGli
 L2Jhc2lzLmNtL0NNLyR7Qk9YfS11bml4Ci1AZGlycm0gbGliL3NtbG5qL2xpYi9iYXNpcy5jbS9D
 TQotQGRpcnJtIGxpYi9zbWxuai9saWIvYmFzaXMuY20KLUBkaXJybSBsaWIvc21sbmovbGliL1NN
 TE5KLU1MUklTQy9DTS8ke0JPWH0tdW5peAotQGRpcnJtIGxpYi9zbWxuai9saWIvU01MTkotTUxS
 SVNDL0NNCitAZGlycm0gbGliL3NtbG5qL2xpYi9TTUxOSi1NTFJJU0MvLmNtLyR7Qk9YfS11bml4
 CitAZGlycm0gbGliL3NtbG5qL2xpYi9TTUxOSi1NTFJJU0MvLmNtCiBAZGlycm0gbGliL3NtbG5q
 L2xpYi9TTUxOSi1NTFJJU0MKK0BkaXJybSBsaWIvc21sbmovbGliL1NNTE5KLU1MLVlBQ0MtTElC
 Ly5jbS8ke0JPWH0tdW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvU01MTkotTUwtWUFDQy1MSUIv
 LmNtCitAZGlycm0gbGliL3NtbG5qL2xpYi9TTUxOSi1NTC1ZQUNDLUxJQgorQGRpcnJtIGxpYi9z
 bWxuai9saWIvU01MTkotTElCL1V0aWwvLmNtLyR7Qk9YfS11bml4CitAZGlycm0gbGliL3NtbG5q
 L2xpYi9TTUxOSi1MSUIvVXRpbC8uY20KK0BkaXJybSBsaWIvc21sbmovbGliL1NNTE5KLUxJQi9V
 dGlsCitAZGlycm0gbGliL3NtbG5qL2xpYi9TTUxOSi1MSUIvUFAvLmNtLyR7Qk9YfS11bml4CitA
 ZGlycm0gbGliL3NtbG5qL2xpYi9TTUxOSi1MSUIvUFAvLmNtCitAZGlycm0gbGliL3NtbG5qL2xp
 Yi9TTUxOSi1MSUIvUFAKK0BkaXJybSBsaWIvc21sbmovbGliL1NNTE5KLUxJQi9IVE1MLy5jbS8k
 e0JPWH0tdW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvU01MTkotTElCL0hUTUwvLmNtCitAZGly
 cm0gbGliL3NtbG5qL2xpYi9TTUxOSi1MSUIvSFRNTAorQGRpcnJtIGxpYi9zbWxuai9saWIvU01M
 TkotTElCL0NvbnRyb2xzLy5jbS8ke0JPWH0tdW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvU01M
 TkotTElCL0NvbnRyb2xzLy5jbQorQGRpcnJtIGxpYi9zbWxuai9saWIvU01MTkotTElCL0NvbnRy
 b2xzCitAZGlycm0gbGliL3NtbG5qL2xpYi9TTUxOSi1MSUIKK0BkaXJybSBsaWIvc21sbmovbGli
 L1NNTE5KLUJBU0lTLy5jbS8ke0JPWH0tdW5peAorQGRpcnJtIGxpYi9zbWxuai9saWIvU01MTkot
 QkFTSVMvLmNtCitAZGlycm0gbGliL3NtbG5qL2xpYi9TTUxOSi1CQVNJUwogQGRpcnJtIGxpYi9z
 bWxuai9saWIKIEBkaXJybSBsaWIvc21sbmovYmluLy5ydW4KIEBkaXJybSBsaWIvc21sbmovYmlu
 Ly5oZWFwCmRpZmYgLXggQ1ZTIC11ck4gbGFuZy9zbWxuai5vcmlnL2Rpc3RpbmZvIGxhbmcvc21s
 bmovZGlzdGluZm8KLS0tIGxhbmcvc21sbmoub3JpZy9kaXN0aW5mbwkyMDA3LTAxLTE5IDA4OjA5
 OjI1LjAwMDAwMDAwMCAtMDUwMAorKysgbGFuZy9zbWxuai9kaXN0aW5mbwkyMDA5LTAzLTExIDE0
 OjUzOjI2LjAwMDAwMDAwMCAtMDQwMApAQCAtMSw3NCArMSw4MCBAQAogJE5ldEJTRDogZGlzdGlu
 Zm8sdiAxLjExIDIwMDcvMDEvMTkgMTM6MDk6MjUgZG1jbWFoaWxsIEV4cCAkCiAKLVNIQTEgKHNt
 bG5qLTExMC40Mi9NTFJJU0MudGd6KSA9IDU1MDU1ZWQwNmY3ZGQyZWYxNzhlZjM2NWMwMThmMGYz
 OGY3NDA1MjgKLVJNRDE2MCAoc21sbmotMTEwLjQyL01MUklTQy50Z3opID0gNDBhZWJlMWNiZjk3
 NWUwOThiZGY1MTE1ZmQxM2I0MjhlODQ1MTk1YQotU2l6ZSAoc21sbmotMTEwLjQyL01MUklTQy50
 Z3opID0gMTE3MzE4NyBieXRlcwotU0hBMSAoc21sbmotMTEwLjQyL2Jvb3QucHBjLXVuaXgudGd6
 KSA9IDUwYzEyZDEyM2NiYjk1MzI4M2NjMDEzMDhiZGE5NGJhNmEwMDRmMTAKLVJNRDE2MCAoc21s
 bmotMTEwLjQyL2Jvb3QucHBjLXVuaXgudGd6KSA9IGI0YzJiODY4MzAyNGYyZTM3N2RjMTMxZWIz
 NzcxOTBjNDk4MDgxMjIKLVNpemUgKHNtbG5qLTExMC40Mi9ib290LnBwYy11bml4LnRneikgPSA1
 MDYzOTQ1IGJ5dGVzCi1TSEExIChzbWxuai0xMTAuNDIvYm9vdC5zcGFyYy11bml4LnRneikgPSBk
 OTAzNjFlOGRlNjgzYmRlOWYyY2U3NmQ1YTNmZGMwYjliY2Y3YjFmCi1STUQxNjAgKHNtbG5qLTEx
 MC40Mi9ib290LnNwYXJjLXVuaXgudGd6KSA9IDliMmM0NGU2OWVlNDZlMjRiNTEzNTg5MzlhM2U4
 YjQ5NGU2YmNlNTMKLVNpemUgKHNtbG5qLTExMC40Mi9ib290LnNwYXJjLXVuaXgudGd6KSA9IDUy
 MTY4MTMgYnl0ZXMKLVNIQTEgKHNtbG5qLTExMC40Mi9ib290Lng4Ni11bml4LnRneikgPSA3ZTg1
 YjI1NDU5ODg2MTc5YmUwYmNiOTQ5Y2Q0ODlmNjJjMGE1NDI0Ci1STUQxNjAgKHNtbG5qLTExMC40
 Mi9ib290Lng4Ni11bml4LnRneikgPSAyYWY2MmU4MTk2ZGU2ZTdkYTAzY2ZkYTEwZDQ3OTliZjdh
 NTYxODhlCi1TaXplIChzbWxuai0xMTAuNDIvYm9vdC54ODYtdW5peC50Z3opID0gNTE0NzAyNSBi
 eXRlcwotU0hBMSAoc21sbmotMTEwLjQyL2NraXQudGd6KSA9IGY0NzU5OWRmMDE0YzljNmRjZDAy
 YzBiZmNjMGZhZDVkMTQwOTQ1MWIKLVJNRDE2MCAoc21sbmotMTEwLjQyL2NraXQudGd6KSA9IDg3
 YzczN2NmMDMyZjE4YzQzODEyOTdlZTg5NWYwN2M4MWY0YmQ1ZDMKLVNpemUgKHNtbG5qLTExMC40
 Mi9ja2l0LnRneikgPSAxNjgwMDAgYnl0ZXMKLVNIQTEgKHNtbG5qLTExMC40Mi9jbS50Z3opID0g
 YzEwMjEzMWU5NzRlOTE0MjZiYWIxY2MzMDAwNWY4ZTAyZjc2MjJiNgotUk1EMTYwIChzbWxuai0x
 MTAuNDIvY20udGd6KSA9IGU4MGY2ODgwNWMzM2ZmOThkMjEzOWNkZWYwNGRmMTc5NjcwMTE0YzAK
 LVNpemUgKHNtbG5qLTExMC40Mi9jbS50Z3opID0gMjAyNjMzIGJ5dGVzCi1TSEExIChzbWxuai0x
 MTAuNDIvY21sLnRneikgPSA2MWYyMDExNjAzMmQyODRhMGQyZWVjZDVmMTRkZTUzNzhmZjRlYTZk
 Ci1STUQxNjAgKHNtbG5qLTExMC40Mi9jbWwudGd6KSA9IGYzNzIxNDVjMTQ0NDgxNGRlMjE4NWQ1
 MmNmNDIyYTVkYzdkOWNlNzAKLVNpemUgKHNtbG5qLTExMC40Mi9jbWwudGd6KSA9IDEyODQ4NSBi
 eXRlcwotU0hBMSAoc21sbmotMTEwLjQyL2NvbXBpbGVyLnRneikgPSBmYmRlMjk1OWUwNWMwNDMz
 MzEzMTQ1MGQxNTJhNmFjNTg5MGIyODY3Ci1STUQxNjAgKHNtbG5qLTExMC40Mi9jb21waWxlci50
 Z3opID0gMDBhZjRhZDUzODJjOTNlNTlhMWE2NmQzYzljY2U1ZDEzYThjMTAyYwotU2l6ZSAoc21s
 bmotMTEwLjQyL2NvbXBpbGVyLnRneikgPSA3MDQ2NjkgYnl0ZXMKLVNIQTEgKHNtbG5qLTExMC40
 Mi9jb25maWcudGd6KSA9IGY3YzFiNzUwMTljMjc0ODcyZDU5OWI5ZjVhNDJjZTBlZTE5MjZjMjQK
 LVJNRDE2MCAoc21sbmotMTEwLjQyL2NvbmZpZy50Z3opID0gMGNjZDgyNGRlYmI5NmRiMjdmNDE5
 ODIwZjk4MTM1MjQyNDAxZjZhZgotU2l6ZSAoc21sbmotMTEwLjQyL2NvbmZpZy50Z3opID0gMTM2
 NjAgYnl0ZXMKLVNIQTEgKHNtbG5qLTExMC40Mi9lWGVuZS50Z3opID0gZTIxMzUzOTMwODA0NzYz
 NmRhMzRhODJmYmNjN2Q1OWE4ZjAzZWE3YQotUk1EMTYwIChzbWxuai0xMTAuNDIvZVhlbmUudGd6
 KSA9IDVlYjFhMjUyNzEyNjU4N2Y0Yzg5NGFlN2U5YzIzZDhjNDIwOTUzOWMKLVNpemUgKHNtbG5q
 LTExMC40Mi9lWGVuZS50Z3opID0gNjk1NDMxIGJ5dGVzCi1TSEExIChzbWxuai0xMTAuNDIvbWwt
 YnVyZy50Z3opID0gOGM2OWZkNTFmN2ViODZiOTQxODgzZmE3YzMwOWI3ZTU0YmFmMjhlYQotUk1E
 MTYwIChzbWxuai0xMTAuNDIvbWwtYnVyZy50Z3opID0gZDA1ZWVlMTRkZTU0NDNkOWEzYjQzNGVh
 MGUzNWQ5MWM2MWFlYTc0MAotU2l6ZSAoc21sbmotMTEwLjQyL21sLWJ1cmcudGd6KSA9IDMxNjk2
 IGJ5dGVzCi1TSEExIChzbWxuai0xMTAuNDIvbWwtbGV4LnRneikgPSA1MjQ3MTRmOTVjZDAxNGU1
 NTYyNGU5ZDFiMjcwYTc3MTAwZjI4Y2QxCi1STUQxNjAgKHNtbG5qLTExMC40Mi9tbC1sZXgudGd6
 KSA9IDZlODMwYTFiNTA1MDNlYmZlOGY3NDI5Y2I2ZTY2NzRmZTNhMTc4MDUKLVNpemUgKHNtbG5q
 LTExMC40Mi9tbC1sZXgudGd6KSA9IDMyMTA4IGJ5dGVzCi1TSEExIChzbWxuai0xMTAuNDIvbWwt
 bmxmZmktbGliLnRneikgPSA1MjIyY2NkYzFkOTczNzM2MGEwY2U2MGIwNTEzN2I0NzYyODJlOWYz
 Ci1STUQxNjAgKHNtbG5qLTExMC40Mi9tbC1ubGZmaS1saWIudGd6KSA9IDgyMWM0NDE2NDI5YTcx
 MzM3Yzc2NzYwOTNiZjM2MjVlMjZkYjE3NjEKLVNpemUgKHNtbG5qLTExMC40Mi9tbC1ubGZmaS1s
 aWIudGd6KSA9IDMzNjQ1IGJ5dGVzCi1TSEExIChzbWxuai0xMTAuNDIvbWwtbmxmZmlnZW4udGd6
 KSA9IGQzZTBlMDY0ZGZkMGZkM2MxMmJkYTcyZTA5ODIyNGViZWExODBhNmEKLVJNRDE2MCAoc21s
 bmotMTEwLjQyL21sLW5sZmZpZ2VuLnRneikgPSBlNWU3YTNmYmUwM2FhZTE0MTc2NWRlOWI4ZTQ0
 OTVlNzk2ZTMyZWM3Ci1TaXplIChzbWxuai0xMTAuNDIvbWwtbmxmZmlnZW4udGd6KSA9IDI4ODM2
 IGJ5dGVzCi1TSEExIChzbWxuai0xMTAuNDIvbWwteWFjYy50Z3opID0gZmY0YTA3NzA5OWE2Zjhk
 MmJiOGIzMmE2NGM5ZWY0NWU4OTM1ODM0NgotUk1EMTYwIChzbWxuai0xMTAuNDIvbWwteWFjYy50
 Z3opID0gNWQ5NzY3ZTUzZjYyYTJmYmNiMjcyOTY5NzkwMzRmNTg1Mjc0YTQzMAotU2l6ZSAoc21s
 bmotMTEwLjQyL21sLXlhY2MudGd6KSA9IDk1NjA4IGJ5dGVzCi1TSEExIChzbWxuai0xMTAuNDIv
 cnVudGltZS50Z3opID0gOTEzYjJjNGNhM2VkZWEyZmQ3ZmNjMDljNDgyNjY1ZmI5MmU1ZjU0MAot
 Uk1EMTYwIChzbWxuai0xMTAuNDIvcnVudGltZS50Z3opID0gOGNlMDQ3OTI0NWIxNzY3ODk3MWU2
 YWYxYTU3OThlMzU4NTU5ZDE3YwotU2l6ZSAoc21sbmotMTEwLjQyL3J1bnRpbWUudGd6KSA9IDMx
 MzA1NyBieXRlcwotU0hBMSAoc21sbmotMTEwLjQyL3NtbG5qLWxpYi50Z3opID0gYzQ4YThlMTlk
 NGExNDc5OWQ3NTk2Y2U4OTZmNGEyMDQwZmUxYzJiZgotUk1EMTYwIChzbWxuai0xMTAuNDIvc21s
 bmotbGliLnRneikgPSBjNDAzZTkyMDZlYjkzOWUwNGU4OGU5YTM3Y2E3OTdiYmQzNDFlZjI3Ci1T
 aXplIChzbWxuai0xMTAuNDIvc21sbmotbGliLnRneikgPSAyNTEyMzAgYnl0ZXMKLVNIQTEgKHNt
 bG5qLTExMC40Mi9zeXN0ZW0udGd6KSA9IDBiOWY2MTA1MmE2NDEzYWMxZDM5MWE2YjdkZGY5MDM4
 NzVkMTkyZmYKLVJNRDE2MCAoc21sbmotMTEwLjQyL3N5c3RlbS50Z3opID0gNWY5Y2JkZDUwZTQ3
 MTYwZjMxOTBkMDgxODlmN2IxZjM1YmY2NDZjOQotU2l6ZSAoc21sbmotMTEwLjQyL3N5c3RlbS50
 Z3opID0gMTc3NTQ4IGJ5dGVzCi1TSEExIChwYXRjaC1hYSkgPSAzNzBmYzk0NDYyZjYwZmNmMWIy
 OGRkYWQyMjY2MzExYjE5ZDkyZWNhCi1TSEExIChwYXRjaC1hYikgPSAzZDU5NDZiMmQ3MmRlZTI1
 NTE1OWFmZTZmYjI1MjQwZjhmYTdlMzA2Ci1TSEExIChwYXRjaC1hYykgPSA3YjNlYTgzN2RiMjYw
 NTQyZDE0NzdjY2JlMGRiYTI0YzZhZmJjMWUyCi1TSEExIChwYXRjaC1hZCkgPSBhNDA2YmRlMmY2
 ZjdlMmQ5M2Q2NTIxMzViOTRhZWZkNGI3YWNhNDk0Ci1TSEExIChwYXRjaC1hZSkgPSA1Nzk2NDAx
 NDE4ZmQ5MWE3OTVmZGZlNzUwNjBjZjY1NGRkMzE1YWMxCi1TSEExIChwYXRjaC1hZikgPSBhMmI3
 NWE3MzA5Mzk4YjY4Njk5OTVjYjQ2YWVlZGMxNDE2NzAwZGE0Ci1TSEExIChwYXRjaC1hZykgPSBk
 YWU5Yzg5Y2NjN2FkYTk2YmQzYWM0YjJiYWUxZGE2NDI3OTAyZmI0Ci1TSEExIChwYXRjaC1haCkg
 PSA0ZDFmODYxY2YxODQyNGRiMThmYmNkMTlmZDJlMTIzYjlhMGE1MjQ3Ci1TSEExIChwYXRjaC1h
 aSkgPSBkZmI0NWIyYzdkNTliY2Q5MjMwZWRiMzBkNWRmZmZkNGRhYjU3ODJlCi1TSEExIChwYXRj
 aC1haikgPSAyNGJiYjY1YjAyZTk3YmVjNzY3M2RjY2JmMDdmY2U5ODUzYzk0OTg0Ci1TSEExIChw
 YXRjaC1haykgPSA1NTczOGMxMGU1YWRjNmI5OWQ5MDlhNzg0ZjI1NmIyNGUyNTA5OTBlCi1TSEEx
 IChwYXRjaC1hbCkgPSA4Mjg0MmU4NjYyNjcwMzM2ZTEzNGYxMmUwODUxZDVmNjE0MTMyMTFkCi1T
 SEExIChwYXRjaC1hbSkgPSAwNmQ4Y2IxNDUyMTdjNDZhZGE0NDBlMGQzZTc0MjBlYTk5NjUxMDY0
 Ci1TSEExIChwYXRjaC1hbikgPSBkNmUxYTc1ZDVmYjY4NDIzY2UzMTgxNjIyZGU5MTljMjMzN2Ri
 MmU3Ci1TSEExIChwYXRjaC1hbykgPSAxYzY2MDI0YzU5NDkyNjkyOTFjYmY2ZjgxNWJhZjYxNjJk
 YjQ3ZDMxCi1TSEExIChwYXRjaC1hcCkgPSA4ZTllMjg1NDhiNGU1OGRlNjhhMTE5ODJhMzU1YTAx
 MGVhOTZhYTI5Ci1TSEExIChwYXRjaC1hcSkgPSA3ZDA3MzRiNzZkNzc4ZDdmNTg0ZDJlNzBkMzI1
 ZmQ3MmU2NTU0YjAxCi1TSEExIChwYXRjaC1hcikgPSA3ZTBiY2FkNjFlY2RjMzliYjBmYzAzOGVh
 MDI5MjFkNjgzYmE4NjQ4CitTSEExIChzbWxuai0xMTAuNjkvTUxSSVNDLnRneikgPSA3NzA5MWEx
 ZDEzMzZjMjJjNjU2ZTg1YTJkZWQ0MjQwZDk2ZmIxYWVjCitSTUQxNjAgKHNtbG5qLTExMC42OS9N
 TFJJU0MudGd6KSA9IDE0YzFiNWFjNmQ1MDkzNjJhYTZkNWRhOTUxZjc5NGMzZDc4M2ViNjAKK1Np
 emUgKHNtbG5qLTExMC42OS9NTFJJU0MudGd6KSA9IDE0MzUwMDEgYnl0ZXMKK1NIQTEgKHNtbG5q
 LTExMC42OS9ib290Lng4Ni11bml4LnRneikgPSBmNjE2N2RiYmFkM2I5ZDVjMzZjOGMwNDYyMWI1
 Y2E5NjZjODgzNmFlCitSTUQxNjAgKHNtbG5qLTExMC42OS9ib290Lng4Ni11bml4LnRneikgPSBm
 ZDNlNGMzM2EwNjg2NWY4MjVlYTk4OTQyODExZDNmYzIzMTJhYTI3CitTaXplIChzbWxuai0xMTAu
 NjkvYm9vdC54ODYtdW5peC50Z3opID0gNTg0NzAyNyBieXRlcworU0hBMSAoc21sbmotMTEwLjY5
 L2NraXQudGd6KSA9IGQwNGM5NTMwODk5NmQ0NDIwNWM5ZjBkMmNmZDRmNWMwMjg4ZTQ2NTgKK1JN
 RDE2MCAoc21sbmotMTEwLjY5L2NraXQudGd6KSA9IGU4OTk3ZThkMDZlYmI3OTYzNTVlMWMxZGU1
 NTgwMWZkODFjOTFiODYKK1NpemUgKHNtbG5qLTExMC42OS9ja2l0LnRneikgPSAxOTk0MDYgYnl0
 ZXMKK1NIQTEgKHNtbG5qLTExMC42OS9jbS50Z3opID0gYzEzM2EzMTZlODNjMTI4MTg0ZmY5NzZl
 MTUzMTY0NDJlZDQxMTcyNgorUk1EMTYwIChzbWxuai0xMTAuNjkvY20udGd6KSA9IDlmNTE2MDhi
 ZjZmMzE1NDEzMTk1NGRkMTU1YjBlMjEyYmE1NjhiMmYKK1NpemUgKHNtbG5qLTExMC42OS9jbS50
 Z3opID0gMjAyMjkyIGJ5dGVzCitTSEExIChzbWxuai0xMTAuNjkvY21sLnRneikgPSA0MDc4ZWI2
 ZDEzMDczMjNiMGQ2N2I1MWIxYTg2NDgxMzE0MTkzN2M5CitSTUQxNjAgKHNtbG5qLTExMC42OS9j
 bWwudGd6KSA9IDc2YWY0OGI3ZmU0NmFkM2JiYzdlNjUxNDQyZDAzZjlmMDE3OWFjNWUKK1NpemUg
 KHNtbG5qLTExMC42OS9jbWwudGd6KSA9IDEwNDcwOSBieXRlcworU0hBMSAoc21sbmotMTEwLjY5
 L2NvbXBpbGVyLnRneikgPSBlMTllMjA4ODc0NDkwMTQ5MDM1ZWY3YmUzNTIxMzEwZDg4NzcxNWQz
 CitSTUQxNjAgKHNtbG5qLTExMC42OS9jb21waWxlci50Z3opID0gNTdiMTQ5YjhhZWE4MjkwZmYy
 YWNhYTg5YmQ5MDAwMTI4NDJmNjlkZgorU2l6ZSAoc21sbmotMTEwLjY5L2NvbXBpbGVyLnRneikg
 PSA4MjQ4NzQgYnl0ZXMKK1NIQTEgKHNtbG5qLTExMC42OS9jb25maWcudGd6KSA9IDYyMzIzZmM1
 MTVmMjJhNTY4MmJiMjZjY2U0ZTZmYWZiODFmZDhkZjgKK1JNRDE2MCAoc21sbmotMTEwLjY5L2Nv
 bmZpZy50Z3opID0gMGE3MGQ3N2FiZDNiOTc0MzM3NWJjYTg2Y2MwMWEwMDcyNmFjNDY5OAorU2l6
 ZSAoc21sbmotMTEwLjY5L2NvbmZpZy50Z3opID0gNTA0MTY5IGJ5dGVzCitTSEExIChzbWxuai0x
 MTAuNjkvZVhlbmUudGd6KSA9IDU1ZjFjZDc5NDRiNzMyZmI1ZmFlNzY5NDFmZDc3ZjQ0N2E4MDc1
 NWMKK1JNRDE2MCAoc21sbmotMTEwLjY5L2VYZW5lLnRneikgPSBlYWQyN2MzZTUyNTk1NWIxYmE2
 NDk3OWRkYWNjYjhhYTMzNmNjM2M2CitTaXplIChzbWxuai0xMTAuNjkvZVhlbmUudGd6KSA9IDcx
 NDU4NyBieXRlcworU0hBMSAoc21sbmotMTEwLjY5L2hlYXAyYXNtLnRneikgPSA5YTI1MDc3ZGFk
 N2Y2NWU3ODU1MTVlYzg1MDg4MGE1MmMyZWUyZTQxCitSTUQxNjAgKHNtbG5qLTExMC42OS9oZWFw
 MmFzbS50Z3opID0gMjNlN2JhZDc4ZjExZTI4NGQ1YWVkYWY2ZDM5OTIzNGNkOGRmNzMxYgorU2l6
 ZSAoc21sbmotMTEwLjY5L2hlYXAyYXNtLnRneikgPSAxMzI3IGJ5dGVzCitTSEExIChzbWxuai0x
 MTAuNjkvbWwtYnVyZy50Z3opID0gZjNhMjUyMGNkMTY2NGY0NzI4YjAzYjM5Y2Y2MGEyNjU4M2Vl
 NzNlZAorUk1EMTYwIChzbWxuai0xMTAuNjkvbWwtYnVyZy50Z3opID0gNTM4OTJhMWU2MmQzMGQx
 NjYzNzRjZWQxM2Q0OGJlNDliNDRkZWJjMgorU2l6ZSAoc21sbmotMTEwLjY5L21sLWJ1cmcudGd6
 KSA9IDM2NjcwIGJ5dGVzCitTSEExIChzbWxuai0xMTAuNjkvbWwtbGV4LnRneikgPSA4ZTdkMzM4
 ZDNjYzAzYzMwMDllZmVlMjRhZTEwYWY2ZDQ0ODgzYWFlCitSTUQxNjAgKHNtbG5qLTExMC42OS9t
 bC1sZXgudGd6KSA9IDFhMjMwMjE2Yjk0NTgyNzgxODJhMjhkMzQxMmQwZmI3YzhlY2Y4MWEKK1Np
 emUgKHNtbG5qLTExMC42OS9tbC1sZXgudGd6KSA9IDMzMDYxIGJ5dGVzCitTSEExIChzbWxuai0x
 MTAuNjkvbWwtbHB0LnRneikgPSBhNTQzMGUzOTAwZjcwMTE3NzU5YWRkZTg0ODFjZDIyYjczYjFj
 NjFiCitSTUQxNjAgKHNtbG5qLTExMC42OS9tbC1scHQudGd6KSA9IGE2NzUzMGE5MjMwYTRkOTZh
 ZTY3YjY0MmZkMDRhMjhmOWY2Y2E3YjcKK1NpemUgKHNtbG5qLTExMC42OS9tbC1scHQudGd6KSA9
 IDI1NzQxNyBieXRlcworU0hBMSAoc21sbmotMTEwLjY5L21sLXlhY2MudGd6KSA9IGQ4Y2Y0NGQ0
 ZTgxMzE3NGNhOTM5OGI3OTI2N2RmYzUzOTcwNTI5ZDAKK1JNRDE2MCAoc21sbmotMTEwLjY5L21s
 LXlhY2MudGd6KSA9IDUzYjcxZDNkNmEwZGEyN2VmZDU4NGMwNDNlZGQyMjNkYTMyYmVjM2MKK1Np
 emUgKHNtbG5qLTExMC42OS9tbC15YWNjLnRneikgPSAxMDIwMjUgYnl0ZXMKK1NIQTEgKHNtbG5q
 LTExMC42OS9ubGZmaS50Z3opID0gNDg0NzI3YTFkZjg5OWU2Mjg5ZjQyMWRjYTYwNzY0NmZjMjc3
 ZDdhOQorUk1EMTYwIChzbWxuai0xMTAuNjkvbmxmZmkudGd6KSA9IDFkMmIyY2Q0NjY3ZGRkNjYy
 MGFjNjVkMTQ4N2E3MjE4NzNkYjI4ZWEKK1NpemUgKHNtbG5qLTExMC42OS9ubGZmaS50Z3opID0g
 NzUxNzYgYnl0ZXMKK1NIQTEgKHNtbG5qLTExMC42OS9wZ3JhcGgudGd6KSA9IDcxN2Y1Yjg1YzFm
 OWIzMzFkZjg0OTVhNTNiNmE2MzVmYWY1NWMzODYKK1JNRDE2MCAoc21sbmotMTEwLjY5L3BncmFw
 aC50Z3opID0gZjZlYjYxZmUzNDA5M2Q0MjcwMjk1M2E1NDZhM2VlN2VlMmZlNTY0NAorU2l6ZSAo
 c21sbmotMTEwLjY5L3BncmFwaC50Z3opID0gNTQ1MyBieXRlcworU0hBMSAoc21sbmotMTEwLjY5
 L3J1bnRpbWUudGd6KSA9IGMwMGUwODkyNTgwYjg1YTFkYjZlZTI4NWM0MjgxZjdmNWNiNzQwZGEK
 K1JNRDE2MCAoc21sbmotMTEwLjY5L3J1bnRpbWUudGd6KSA9IDUyYTZiODEyZjU2ZDNmOTdlZTEx
 ZTUzM2E3ZDY1MDAzZGRlYTk3Y2MKK1NpemUgKHNtbG5qLTExMC42OS9ydW50aW1lLnRneikgPSAz
 MzM4ODcgYnl0ZXMKK1NIQTEgKHNtbG5qLTExMC42OS9zbWxuai1jLnRneikgPSBhMGMzMmYyNWZk
 N2EzZjFiZjIzYjU4NGZjYmFiZjk5YzViNDZmNWNhCitSTUQxNjAgKHNtbG5qLTExMC42OS9zbWxu
 ai1jLnRneikgPSBkZGY3NGZjZGRhYzNkMzJhMmRhNGMwNDFjYjVlMjllY2MyYmM2ZTUxCitTaXpl
 IChzbWxuai0xMTAuNjkvc21sbmotYy50Z3opID0gMTA2MjcgYnl0ZXMKK1NIQTEgKHNtbG5qLTEx
 MC42OS9zbWxuai1saWIudGd6KSA9IDAwNGQ3MDgyYjFiZWEzNmNlOGFjNDEyZjcwYmM3Zjc2NGYz
 NjI2MjgKK1JNRDE2MCAoc21sbmotMTEwLjY5L3NtbG5qLWxpYi50Z3opID0gNjBiNGZmYmM2MWJh
 MTM5ZWFjOWRkZjBkYWZkMWEyN2VmYTQ0MjQzZAorU2l6ZSAoc21sbmotMTEwLjY5L3NtbG5qLWxp
 Yi50Z3opID0gMjU3NTE5IGJ5dGVzCitTSEExIChzbWxuai0xMTAuNjkvc3lzdGVtLnRneikgPSAz
 Njk5OTg1ODY0NmRhM2Q5MThmNjI2MzBlYTQxMjZlNTJjYmQ5NjkzCitSTUQxNjAgKHNtbG5qLTEx
 MC42OS9zeXN0ZW0udGd6KSA9IGFhZDY1ZDQyODg4ZTZjNTk0MDEwMTNiYzBmMTIyMWNlYTA3YTUy
 ZGQKK1NpemUgKHNtbG5qLTExMC42OS9zeXN0ZW0udGd6KSA9IDIzOTk1MyBieXRlcworU0hBMSAo
 c21sbmotMTEwLjY5L3RyYWNlLWRlYnVnLXByb2ZpbGUudGd6KSA9IDkyNTc0MGZhZGUzZGZkZTQy
 MDY4YjY1ZDNmM2ZiMWFmYTNiNDcxNTkKK1JNRDE2MCAoc21sbmotMTEwLjY5L3RyYWNlLWRlYnVn
 LXByb2ZpbGUudGd6KSA9IGM3MGMxNGIzYjljMDY0NmViMDBkY2M4MmZmNWNhYjU4N2M1Y2E3ZDYK
 K1NpemUgKHNtbG5qLTExMC42OS90cmFjZS1kZWJ1Zy1wcm9maWxlLnRneikgPSAzOTM3IGJ5dGVz
 CitTSEExIChwYXRjaC1hYikgPSAxNzhiODgwODcwMmIyZmE1NTdlZWRmZjM4NzkwMmZjZTA4MTkz
 ZDkwCitTSEExIChwYXRjaC1hYykgPSBmMGNhYTAzZTMwZTE2NTI4MzM4NjkxNGMyODA1OTg5Njdj
 YTBjMDBkCitTSEExIChwYXRjaC1hZCkgPSBkNjhiY2U0NmZlOTVhMWZjZDBkYTk0M2I2YTFlYmEx
 YzlmMDU5MDYxCitTSEExIChwYXRjaC1hZSkgPSBmNzM2M2RhMWYxNzgxMGE4ZGJlZmIyODhlN2Ri
 OTc0NWEyYjBjZDU4CitTSEExIChwYXRjaC1hZikgPSBhMmUzNDNiMTJlMzdkOTRjZmI0OTFiMTYx
 YjNiMWJhMmQ5ZjQ5MjkxCitTSEExIChwYXRjaC1hZykgPSA1MTlmNDQ0OTc3YjkyNjgyNTlmZWE4
 NjExMWUzYmUwYzA0MWU1ZDAwCitTSEExIChwYXRjaC1haCkgPSA4ZmZjMWUzYWEzZjI0OTU2ZGNm
 ZmUzMWUyZTVlNjU4MTVmYzFjMDg1CitTSEExIChwYXRjaC1haSkgPSBhNTkxNmQ2ZGE0YWUzMWRh
 NDkxMmMzYTRmOWRmNjAxYWJkNDJkZGNlCitTSEExIChwYXRjaC1haikgPSA4OWM4YmQ1MTBhNGJi
 NThiOWM5ZDIzYjNiNGI5OTUxZjRmZmI1NGNkCitTSEExIChwYXRjaC1haykgPSA1NzFhNTA5OGQ3
 MTVhMGFiODc4OTcyZjk3NDhlYzA1MTlmOWU5MmVmCitTSEExIChwYXRjaC1hbCkgPSBmNDdhNmU1
 NjdhNTUzZDZlNjYyOTIxZWI3YzJkNWQ3ZDM0ZjU2YjJkCitTSEExIChwYXRjaC1hbSkgPSBhNjg3
 ZDE3NjRkN2MxYWExYmU5ZGQ5ZGIyOThhMjgwNzIzODQ2NTE0CitTSEExIChwYXRjaC1hbikgPSA4
 MzY4MTM0NjUzYmYxNzQ4NThjOGYxZWE2Nzg4ZDI4YTZjYWFhMTA1CitTSEExIChwYXRjaC1hbykg
 PSBkNDU5MDJmOTc2NmUwYTgyM2Q4YjEyZDkwOWY3ODJiNGJiNjUxY2I0CitTSEExIChwYXRjaC1h
 cCkgPSBkNDFmNTcyZTU2ODczZGZlMWI1OGJmMWI3YjM1MGQ3NzhmYWJmNmQ1CitTSEExIChwYXRj
 aC1hcSkgPSBkZjFjODg5MmE4MzZhZDQ2MGFmYTA0MjgxZjhkZjMzOTUyNGNiZDllCitTSEExIChw
 YXRjaC1hcikgPSAwMzE3M2RjNjM2MTBiNmYxY2YwYWEzOWUyZmJiODY0OTIyYTEyYzNmCitTSEEx
 IChwYXRjaC1hcykgPSBlMWU2ZmQwY2NlM2ExYzIxZjNjZWFiZGQwNzIwY2I3ZmU2Njg4MTI2CmRp
 ZmYgLXggQ1ZTIC11ck4gbGFuZy9zbWxuai5vcmlnL2ZpbGVzL3RhcmdldHMgbGFuZy9zbWxuai9m
 aWxlcy90YXJnZXRzCi0tLSBsYW5nL3NtbG5qLm9yaWcvZmlsZXMvdGFyZ2V0cwkyMDAzLTA3LTAx
 IDE5OjEwOjM0LjAwMDAwMDAwMCAtMDQwMAorKysgbGFuZy9zbWxuai9maWxlcy90YXJnZXRzCTIw
 MDktMDMtMTEgMTM6MTI6MDMuMDAwMDAwMDAwIC0wNDAwCkBAIC0xLDExICsxLDE5IEBACi1yZXF1
 ZXN0IG1sLXlhY2MKK3JlcXVlc3QgbWwtdWxleAorcmVxdWVzdCBtbC11bGV4LW1sbGV4LXRvb2wK
 IHJlcXVlc3QgbWwtbGV4CityZXF1ZXN0IG1sLWxleC1sZXgtZXh0CityZXF1ZXN0IG1sLXlhY2MK
 K3JlcXVlc3QgbWwteWFjYy1ncm0tZXh0CityZXF1ZXN0IG1sLWFudGxyCityZXF1ZXN0IG1sLWxw
 dC1saWIKIHJlcXVlc3QgbWwtYnVyZwogcmVxdWVzdCBzbWxuai1saWIKIHJlcXVlc3QgcGdyYXBo
 LXV0aWwKK3JlcXVlc3QgdGRwLXV0aWwKIHJlcXVlc3QgY21sCiByZXF1ZXN0IGNtbC1saWIKIHJl
 cXVlc3QgZVhlbmUKK3JlcXVlc3QgbWxyaXNjCiByZXF1ZXN0IGNraXQKICNpZiAhZGVmaW5lZChf
 X3Bvd2VycGNfXykKIHJlcXVlc3QgbWwtbmxmZmktbGliCkBAIC0xMywzICsyMSw0IEBACiAjZW5k
 aWYKIHJlcXVlc3QgbWxyaXNjLXRvb2xzCiByZXF1ZXN0IG5vd2hlcmUKK3JlcXVlc3QgaGVhcDJh
 c20KZGlmZiAteCBDVlMgLXVyTiBsYW5nL3NtbG5qLm9yaWcvcGF0Y2hlcy9wYXRjaC1hYSBsYW5n
 L3NtbG5qL3BhdGNoZXMvcGF0Y2gtYWEKLS0tIGxhbmcvc21sbmoub3JpZy9wYXRjaGVzL3BhdGNo
 LWFhCTIwMDQtMDYtMDYgMDA6Mzg6MjkuMDAwMDAwMDAwIC0wNDAwCisrKyBsYW5nL3NtbG5qL3Bh
 dGNoZXMvcGF0Y2gtYWEJMTk2OS0xMi0zMSAxOTowMDowMC4wMDAwMDAwMDAgLTA1MDAKQEAgLTEs
 NzEgKzAsMCBAQAotJE5ldEJTRDogcGF0Y2gtYWEsdiAxLjQgMjAwNC8wNi8wNiAwNDozODoyOSBz
 bmogRXhwICQKLQotLS0tIGNvbmZpZy90YXJnZXRzLm9yaWcJVGh1IE9jdCAxMCAxMjowMjoxMCAy
 MDAyCi0rKysgY29uZmlnL3RhcmdldHMKLUBAIC00MSw3ICs0MSw3IEBAIHJlcXVlc3QgbWwtbGV4
 Ci0gCi0gIyBidWlsZCBNTC1CdXJnCi0gIwotLSNyZXF1ZXN0IG1sLWJ1cmcKLStyZXF1ZXN0IG1s
 LWJ1cmcKLSAKLSAjIHByZS1jb21waWxlIGFuZCBpbnN0YWxsIHRoZSByZW1haW5pbmcgY29tcG9u
 ZW50cyBvZiB0aGUgU01ML05KIGxpYnJhcnkKLSAjIChldmVyeXRoaW5nIGV4Y2VwdCBzbWxuai1s
 aWIuY20sIGFrYSBVdGlsLCBpdHNlbGYpCi1AQCAtNTAsNyArNTAsNyBAQCByZXF1ZXN0IHNtbG5q
 LWxpYgotIAotICMgcHJlLWNvbXBpbGUgYW5kIGluc3RhbGwgQ00gInBvcnRhYmxlIGdyYXBoIiB1
 dGlsaXR5IGxpYnJhcnkKLSAjCi0tI3JlcXVlc3QgcGdyYXBoLXV0aWwKLStyZXF1ZXN0IHBncmFw
 aC11dGlsCi0gCi0gIyBwcmUtY29tcGlsZSBhbmQgaW5zdGFsbCBDb25jdXJyZW50IE1MLCB3aGlj
 aCBpcyBhIGxpYnJhcnkgZm9yIG1lc3NhZ2UtcGFzc2luZwotICMgY29uY3VycmVuY3kuCi1AQCAt
 NjUsMTIgKzY1LDEyIEBAIHJlcXVlc3QgY21sLWxpYgotICMgcHJlLWNvbXBpbGUgYW5kIGluc3Rh
 bGwgZVhlbmUsIHdoaWNoIGlzIGEgbGlicmFyeSBmb3IgWC1XaW5kb3dzIHByb2dyYW1taW5nLgot
 ICMgRVhlbmUgcmVxdWlyZXMgQ01MLgotICMKLS0jcmVxdWVzdCBlWGVuZQotK3JlcXVlc3QgZVhl
 bmUKLSAKLSAjIHByZS1jb21waWxlIGFuZCBpbnN0YWxsIHRoZSBDLUtpdCwgd2hpY2ggaXMgYSBs
 aWJyYXJ5IGZvciBwYXJzaW5nIGFuZAotICMgdHlwZS1jaGVja2luZyBDIHByb2dyYW1zCi0gIwot
 LSNyZXF1ZXN0IGNraXQKLStyZXF1ZXN0IGNraXQKLSAKLSAjIHByZS1jb21waWxlIGFuZCBpbnN0
 YWxsIHRoZSBNTC1OTEZGSSBMaWJyYXJ5LCB3aGljaCBpcyB0aGUgY29yZSBvZgotICMgYSBuZXcg
 Zm9yZWlnbiBmdW5jdGlvbiBpbnRlcmZhY2UgKHdoZXJlICJmb3JlaWduIiBmdW5jdGlvbnMgYXJl
 Ci1AQCAtNzksNyArNzksNyBAQCByZXF1ZXN0IGNtbC1saWIKLSAjIHRoZSBuZXcgRkZJLgotICMg
 VGhpcyBwcmV2aWV3IHJlbGVhc2UgY3VycmVudGx5IHdvcmtzIG9ubHkgdW5kZXIgWDg2L0xpbnV4
 LgotICMKLS0jcmVxdWVzdCBtbC1ubGZmaS1saWIKLStyZXF1ZXN0IG1sLW5sZmZpLWxpYgotIAot
 ICMgYnVpbGQgTUwtTkxGRkktR2VuLCBhIHByb2dyYW0gZ2VuZXJhdG9yIHRvb2wgdXNlZCBpbiBj
 b25qdW5jdGlvbiB3aXRoCi0gIyB0aGUgbmV3ICJOTEZGSSIgZm9yZWlnbiBmdW5jdGlvbiBpbnRl
 cmZhY2UuICBUaGUgdG9vbCBnZW5lcmF0ZXMgTUwKLUBAIC04NywxMyArODcsMTMgQEAgcmVxdWVz
 dCBjbWwtbGliCi0gIyAoUmVxdWlyZXMgY2tpdCEpCi0gIyBUaGlzIHByZXZpZXcgcmVsZWFzZSBj
 dXJyZW50bHkgd29ya3Mgb25seSB1bmRlciBYODYvTGludXguCi0gIwotLSNyZXF1ZXN0IG1sLW5s
 ZmZpZ2VuCi0rcmVxdWVzdCBtbC1ubGZmaWdlbgotIAotICMgcHJlLWNvbXBpbGUgYW5kIGluc3Rh
 bGwgdGhlIE1MUklTQyBUb29scyBsaWJyYXJ5LgotICMgVGhpcyBsaWJyYXJ5IGlzIGZvciBwYXJz
 aW5nIGFuZCBwcmV0dHkgcHJpbnRpbmcgU01MIGNvZGUuCi0gIyBJdCdzIHVzZWQgYnkgdmFyaW91
 cyBNTFJJU0MgY29kZSBnZW5lcmF0b3IgZ2VuZXJhdG9yLgotICMKLS0jcmVxdWVzdCBtbHJpc2Mt
 dG9vbHMKLStyZXF1ZXN0IG1scmlzYy10b29scwotIAotICMgQnVpbGQgYW5kIGluc3RhbGwgdGhl
 ICdub3doZXJlJyBwcm9ncmFtIHRyYW5zbGF0b3IuCi0gIyBUaGlzIHRvb2wgdHJhbnNsYXRlcyBw
 cm9ncmFtcyB3aXRoIGNvbmRpdGlvbmFsIHBhdHRlcm5zICh3aGVyZSBjbGF1c2VzKSAKLUBAIC0x
 MDEsNyArMTAxLDcgQEAgcmVxdWVzdCBjbWwtbGliCi0gIyAoYmFkKSBkb2N1bWVudGF0aW9uLgot
 ICMgKFJlcXVpcmVzIHRoZSBtbHJpc2MtdG9vbHMgbGlicmFyeSEpCi0gIwotLSNyZXF1ZXN0IG5v
 d2hlcmUKLStyZXF1ZXN0IG5vd2hlcmUKLSAKLSAjIE5vdGU6IGF1dG9sb2FkaW5nIGlzIGFsd2F5
 cyBlbmFibGVkLgotICMgICBJbiBvcmRlciB0byBjdXN0b21pemUgd2hhdCBpcyBiZWluZyBwcmUt
 cmVnaXN0ZXJlZCBmb3IgYXV0b2xvYWRpbmcKZGlmZiAteCBDVlMgLXVyTiBsYW5nL3NtbG5qLm9y
 aWcvcGF0Y2hlcy9wYXRjaC1hYiBsYW5nL3NtbG5qL3BhdGNoZXMvcGF0Y2gtYWIKLS0tIGxhbmcv
 c21sbmoub3JpZy9wYXRjaGVzL3BhdGNoLWFiCTIwMDMtMDctMDEgMTk6MTk6MTMuMDAwMDAwMDAw
 IC0wNDAwCisrKyBsYW5nL3NtbG5qL3BhdGNoZXMvcGF0Y2gtYWIJMjAwOS0wMy0xMSAxNDozMjox
 Ny4wMDAwMDAwMDAgLTA0MDAKQEAgLTEsNyArMSw3IEBACiAkTmV0QlNEOiBwYXRjaC1hYix2IDEu
 MiAyMDAzLzA3LzAxIDIzOjE5OjEzIGp0YiBFeHAgJAogCi0tLS0gL2Rldi9udWxsCi0rKysgc3Jj
 L3J1bnRpbWUvb2Jqcy9tay5wcGMtbmV0YnNkCistLS0gYmFzZS9ydW50aW1lL29ianMvbWsucHBj
 LW5ldGJzZC5vcmlnCTIwMDktMDMtMTEgMTM6MjE6MTEuMDAwMDAwMDAwIC0wNDAwCisrKysgYmFz
 ZS9ydW50aW1lL29ianMvbWsucHBjLW5ldGJzZAogQEAgLTAsMCArMSwyNCBAQAogKyMgbWsucHBj
 LW5ldGJzZAogKyMKZGlmZiAteCBDVlMgLXVyTiBsYW5nL3NtbG5qLm9yaWcvcGF0Y2hlcy9wYXRj
 aC1hYyBsYW5nL3NtbG5qL3BhdGNoZXMvcGF0Y2gtYWMKLS0tIGxhbmcvc21sbmoub3JpZy9wYXRj
 aGVzL3BhdGNoLWFjCTIwMDMtMDctMDEgMTk6MTk6MTQuMDAwMDAwMDAwIC0wNDAwCisrKyBsYW5n
 L3NtbG5qL3BhdGNoZXMvcGF0Y2gtYWMJMjAwOS0wMy0xMSAxNDozMjoxNy4wMDAwMDAwMDAgLTA0
 MDAKQEAgLTEsMTcgKzEsMTkgQEAKLSROZXRCU0Q6IHBhdGNoLWFjLHYgMS4zIDIwMDMvMDcvMDEg
 MjM6MTk6MTQganRiIEV4cCAkCiskTmV0QlNEJAogCi0tLS0gY29uZmlnL19hcmNoLW4tb3BzeXMu
 b3JpZworLS0tIGNvbmZpZy9fYXJjaC1uLW9wc3lzLm9yaWcJMjAwOC0wOC0xMyAxNDozNzo1OS4w
 MDAwMDAwMDAgLTA0MDAKICsrKyBjb25maWcvX2FyY2gtbi1vcHN5cwotQEAgLTEwNiwxMSArMTA2
 LDEzIEBACitAQCAtMTE5LDEyICsxMTksMTMgQEAgY2FzZSBgdW5hbWUgLXNgIGluCiAgICBOZXRC
 U0QpCi0gICAgIE9QU1lTPW5ldGJzZAorICAgICBjYXNlIGB1bmFtZSAtcmAgaW4KKyAgICAgICAy
 KikgT1BTWVM9bmV0YnNkMjs7CistICAgICAgMyopIE9QU1lTPW5ldGJzZDs7CistICAgICAgKikg
 ZXhpdCAxOzsKKysgICAgICAqKSBPUFNZUz1uZXRic2Q7OworICAgICBlc2FjCiAgICAgIEhFQVBf
 T1BTWVM9YnNkCiAtICAgIGNhc2UgYHVuYW1lIC1tYCBpbgogKyAgICBjYXNlIGB1bmFtZSAtcGAg
 aW4KLSAgICAgICBpMzg2KSBBUkNIPXg4Njs7Ci0gICAgICAgaTQ4NikgQVJDSD14ODY7OwotICAg
 ICAgIGk1ODYpIEFSQ0g9eDg2OzsKLSAgICAgICBpNjg2KSBBUkNIPXg4Njs7CisgICAgICAgKjg2
 KSBBUkNIPXg4Njs7CiArICAgICAgcG93ZXJwYykgQVJDSD1wcGM7OwogKyAgICAgIHNwYXJjKSBB
 UkNIPXNwYXJjOzsKICAgICAgICAqKSBleGl0IDE7OwpkaWZmIC14IENWUyAtdXJOIGxhbmcvc21s
 bmoub3JpZy9wYXRjaGVzL3BhdGNoLWFkIGxhbmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hZAotLS0g
 bGFuZy9zbWxuai5vcmlnL3BhdGNoZXMvcGF0Y2gtYWQJMjAwMy0wNy0wMSAxOToxOToxNC4wMDAw
 MDAwMDAgLTA0MDAKKysrIGxhbmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hZAkyMDA5LTAzLTExIDE0
 OjMyOjE3LjAwMDAwMDAwMCAtMDQwMApAQCAtMSw3ICsxLDcgQEAKICROZXRCU0Q6IHBhdGNoLWFk
 LHYgMS4zIDIwMDMvMDcvMDEgMjM6MTk6MTQganRiIEV4cCAkCiAKLS0tLSBzcmMvcnVudGltZS9p
 bmNsdWRlL2FzbS1iYXNlLmgub3JpZwotKysrIHNyYy9ydW50aW1lL2luY2x1ZGUvYXNtLWJhc2Uu
 aAorLS0tIGJhc2UvcnVudGltZS9pbmNsdWRlL2FzbS1iYXNlLmgub3JpZwkyMDA4LTEyLTA1IDEy
 OjU3OjM5LjAwMDAwMDAwMCAtMDUwMAorKysrIGJhc2UvcnVudGltZS9pbmNsdWRlL2FzbS1iYXNl
 LmgKIEBAIC0zNiw2ICszNiwxMSBAQAogICMgICAgZGVmaW5lIF9BU00KICAjICAgIGluY2x1ZGUg
 PHN5cy9zdGFjay5oPgpkaWZmIC14IENWUyAtdXJOIGxhbmcvc21sbmoub3JpZy9wYXRjaGVzL3Bh
 dGNoLWFlIGxhbmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hZQotLS0gbGFuZy9zbWxuai5vcmlnL3Bh
 dGNoZXMvcGF0Y2gtYWUJMjAwMy0wMy0yMSAxNzoyMDo1Ni4wMDAwMDAwMDAgLTA1MDAKKysrIGxh
 bmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hZQkyMDA5LTAzLTExIDE0OjMyOjE3LjAwMDAwMDAwMCAt
 MDQwMApAQCAtMSw4ICsxLDggQEAKICROZXRCU0Q6IHBhdGNoLWFlLHYgMS4xLjEuMSAyMDAzLzAz
 LzIxIDIyOjIwOjU2IHdpeiBFeHAgJAogCi0tLS0gc3JjL3J1bnRpbWUvbWFjaC1kZXAvU1BBUkMu
 cHJpbS5hc20ub3JpZwlGcmkgSnVuIDE1IDE1OjA1OjE5IDIwMDEKLSsrKyBzcmMvcnVudGltZS9t
 YWNoLWRlcC9TUEFSQy5wcmltLmFzbQotQEAgLTMwNyw3ICszMDcsNyBAQCBwZW5kaW5nX3NpZ3M6
 CS8qIHRoZXJlIGFyZSBwZW5kaW5nIHNpZ25hCistLS0gYmFzZS9ydW50aW1lL21hY2gtZGVwL1NQ
 QVJDLnByaW0uYXNtLm9yaWcJMjAwOC0wMi0yOSAxODowOTowNS4wMDAwMDAwMDAgLTA1MDAKKysr
 KyBiYXNlL3J1bnRpbWUvbWFjaC1kZXAvU1BBUkMucHJpbS5hc20KK0BAIC0zMDgsNyArMzA4LDcg
 QEAgcGVuZGluZ19zaWdzOgkvKiB0aGVyZSBhcmUgcGVuZGluZyBzaWduYQogIAltb3YJQUxMT0NQ
 VFIsTElNSVRQVFIJICAgIC8qIChkZWxheSBzbG90KSAqLwogIAogIApAQCAtMTEsNyArMTEsNyBA
 QAogIC8qIFplcm9MaW1pdFB0cjoKICAgKgogICAqIFplcm8gdGhlIGhlYXAgbGltaXQgcG9pbnRl
 ciBzbyB0aGF0IGEgdHJhcCB3aWxsIGJlIGdlbmVyYXRlZCBvbiB0aGUgbmV4dCBsaW1pdAotQEAg
 LTYyMiwxMyArNjIyLDYyIEBAIF9tbF9tdWw6CitAQCAtNjIzLDEzICs2MjMsNjIgQEAgX21sX211
 bDoKICAJbW92CSVnMSwlbDEJCQkgIC8qIHNhdmUgJWcxIHdoaWNoIG1heSBnZXQgdHJhc2hlZCAq
 LwogIAltb3YJJWcyLCVsMgogIAltb3YJJWczLCVsMwpAQCAtNzQsNyArNzQsNyBAQAogIAlyZXN0
 b3JlICVvMCwwLCVvMgkJICAvKiByZXN1bHQgaW4gJW8yIChkZWxheSBzbG90KSAqLwogIAlyZXRs
 CiAgCW5vcAotQEAgLTY0Miw3ICs2OTEsMTUgQEAgX21sX211bDoKK0BAIC02NDMsNyArNjkyLDE1
 IEBAIF9tbF9tdWw6CiAgICogbG9jYWxzIG9mIHRoZSBuZXcgd2luZG93LCBzaW5jZSAuZGl2IGlz
 IGEgbGVhZiByb3V0aW5lLgogICAqLwogIF9tbF9kaXY6CkBAIC05MSw3ICs5MSw3IEBACiAgCWFk
 ZGNjCSVpMywlZzAsJW8xCQkvKiAlbzEgaXMgZGl2aXNvciAoYW5kIGNoZWNrIGZvciB6ZXJvKSAq
 LwogIAliegkxZgogIAkJCQkgICAgLyogc2F2ZSAlZzEsICVnMiBhbmQgJWczICh1c2luZyBuZXcg
 d2luZG93KSAqLwotQEAgLTY1MCw5ICs3MDcsMzAgQEAgX21sX2RpdjoKK0BAIC02NTEsOSArNzA4
 LDMwIEBAIF9tbF9kaXY6CiAgCW1vdgklZzEsJWwxCQkJLyogKGRlbGF5IHNsb3QpICovCiAgCW1v
 dgklZzIsJWwyCiAgCW1vdgklZzMsJWwzCkBAIC0xMjIsNyArMTIyLDcgQEAKICAJbW92CSVsMywl
 ZzMKICAJbW92CSVsMiwlZzIKICAJbW92CSVsMSwlZzEKLUBAIC02NzksMTEgKzc1NywyNCBAQCBf
 bWxfdW11bDoKK0BAIC02ODAsMTEgKzc1OCwyNCBAQCBfbWxfdW11bDoKICAJbW92CSVnMiwlbDIK
 ICAJbW92CSVnMywlbDMKICAJbW92CSVpMiwlbzAKQEAgLTE0Nyw3ICsxNDcsNyBAQAogIAlyZXQK
 ICAJcmVzdG9yZSAlbzAsMCwlbzIJCSAgLyogcmVzdWx0IGluICVvMiAoZGVsYXkgc2xvdCkgKi8K
 ICAKLUBAIC02OTQsNyArNzg1LDEyIEBAIF9tbF91bXVsOgorQEAgLTY5NSw3ICs3ODYsMTIgQEAg
 X21sX3VtdWw6CiAgICogbG9jYWxzIG9mIHRoZSBuZXcgd2luZG93LCBzaW5jZSAuZGl2IGlzIGEg
 bGVhZiByb3V0aW5lLgogICAqLwogIF9tbF91ZGl2OgpAQCAtMTYxLDcgKzE2MSw3IEBACiAgCWFk
 ZGNjCSVpMywlZzAsJW8xCQkvKiAlbzEgaXMgZGl2aXNvciAoYW5kIGNoZWNrIGZvciB6ZXJvKSAq
 LwogIAliegkxZgogIAkJCQkgICAgLyogc2F2ZSAlZzEsICVnMiBhbmQgJWczICh1c2luZyBuZXcg
 d2luZG93KSAqLwotQEAgLTcwMiw5ICs3OTgsMjMgQEAgX21sX3VkaXY6CitAQCAtNzAzLDkgKzc5
 OSwyMyBAQCBfbWxfdWRpdjoKICAJbW92CSVnMSwlbDEJCQkvKiAoZGVsYXkgc2xvdCkgKi8KICAJ
 bW92CSVnMiwlbDIKICAJbW92CSVnMywlbDMKZGlmZiAteCBDVlMgLXVyTiBsYW5nL3NtbG5qLm9y
 aWcvcGF0Y2hlcy9wYXRjaC1hZiBsYW5nL3NtbG5qL3BhdGNoZXMvcGF0Y2gtYWYKLS0tIGxhbmcv
 c21sbmoub3JpZy9wYXRjaGVzL3BhdGNoLWFmCTIwMDYtMDMtMjggMTY6MzU6MjcuMDAwMDAwMDAw
 IC0wNTAwCisrKyBsYW5nL3NtbG5qL3BhdGNoZXMvcGF0Y2gtYWYJMjAwOS0wMy0xMSAxNDozMjox
 Ny4wMDAwMDAwMDAgLTA0MDAKQEAgLTEsOCArMSw4IEBACi0kTmV0QlNEOiBwYXRjaC1hZix2IDEu
 NCAyMDA2LzAzLzI4IDIxOjM1OjI3IGdhdmFuIEV4cCAkCiskTmV0QlNEJAogCi0tLS0gc3JjL3J1
 bnRpbWUvbWFjaC1kZXAvc2lnbmFsLXN5c2RlcC5oLm9yaWcJMjAwMi0xMC0xMCAxOToyMDowNC4w
 MDAwMDAwMDAgKzAxMDAKLSsrKyBzcmMvcnVudGltZS9tYWNoLWRlcC9zaWduYWwtc3lzZGVwLmgK
 LUBAIC0xNDcsNyArMTQ3LDcgQEAgZXh0ZXJuIHZvaWQgU2V0RlNSKGludCk7CistLS0gYmFzZS9y
 dW50aW1lL21hY2gtZGVwL3NpZ25hbC1zeXNkZXAuaC5vcmlnCTIwMDgtMTItMDUgMTI6NTc6Mzku
 MDAwMDAwMDAwIC0wNTAwCisrKysgYmFzZS9ydW50aW1lL21hY2gtZGVwL3NpZ25hbC1zeXNkZXAu
 aAorQEAgLTE3MSw3ICsxNzEsNyBAQCBleHRlcm4gdm9pZCBTZXRGU1IoaW50KTsKICAgIC8qIGRp
 c2FibGUgYWxsIEZQIGV4Y2VwdGlvbnMgKi8KICAjICBkZWZpbmUgU0lHX0luaXRGUEUoKSAgICBT
 ZXRGU1IoMCkKICAKQEAgLTExLDY2ICsxMSw2OSBAQAogICAgICAvKiogU1BBUkMsIFNVTk9TICoq
 LwogICMgICAgZGVmaW5lIFVTRV9aRVJPX0xJTUlUX1BUUl9GTgogICMgICAgZGVmaW5lIFNJR19G
 QVVMVDEJCVNJR0ZQRQotQEAgLTMxOCw2ICszMTgsMTkgQEAgZXh0ZXJuIHZvaWQgU2V0RlNSKCk7
 Ci0gCi0gIyAgICBkZWZpbmUgU0lHX0ZsYWdzICAgICAgICAgICAwCitAQCAtMzQwLDYgKzM0MCwy
 MSBAQCBleHRlcm4gdm9pZCBTZXRGU1IoKTsKKyAjICAgIGRlZmluZSBTSUdfUmVzZXRGUEUoc2Nw
 KSAgICAgICAgICAgeyAoc2NwKS0+cmVncy0+Z3ByW1BUX0ZQU0NSXSA9IDB4MDsgfQorICAgICAg
 dHlwZWRlZiB2b2lkIFNpZ1JldHVybl90OwogIAogKyMgIGVsaWYgKGRlZmluZWQoVEFSR0VUX1BQ
 QykgJiYgZGVmaW5lZChPUFNZU19ORVRCU0QpKQogKyAgICAvKiBQUEMsIE5ldEJTRCAqLwogKwot
 KyMgICAgZGVmaW5lIFNJR19GQVVMVDEgICAgICAgICAgU0lHVFJBUAorKyMgICAgZGVmaW5lIFNJ
 R19GQVVMVDEJCVNJR1RSQVAKICsKLSsjICAgIGRlZmluZSBJTlRfRElWWkVSTyhzLCBjKSAgICAg
 ICAgICAgKChzKSA9PSBTSUdUUkFQKQotKyMgICAgZGVmaW5lIElOVF9PVkZMVyhzLCBjKSAgICAg
 ICAgICAgICAoKHMpID09IFNJR1RSQVApCi0rIyAgICBkZWZpbmUgU0lHX0dldFBDKHNjcCkgICAg
 ICAgICAgICAgICgoc2NwKS0+c2NfZnJhbWUuc3JyMCkKLSsjICAgIGRlZmluZSBTSUdfU2V0UEMo
 c2NwLCBhZGRyKSAgICAgICAgeyAoc2NwKS0+c2NfZnJhbWUuc3JyMCA9IChsb25nKShhZGRyKTsg
 fQotKyMgICAgZGVmaW5lIFNJR19aZXJvTGltaXRQdHIoc2NwKSAgICAgICB7ICgoc2NwKS0+c2Nf
 ZnJhbWUuZml4cmVnWzE1XSA9IDApOyB9IC8qIGxpbWl0cHRyID0gMTUgKHNlZSBzcmMvcnVudGlt
 ZS9tYWNoLWRlcC9QUEMucHJpbS5hc20pICovCi0rIyAgICBkZWZpbmUgU0lHX0dldENvZGUoaW5m
 byxzY3ApICAgICAgIChpbmZvKQorKyMgICAgZGVmaW5lIElOVF9ESVZaRVJPKHMsIGMpCQkoKHMp
 ID09IFNJR1RSQVApCisrIyAgICBkZWZpbmUgSU5UX09WRkxXKHMsIGMpCQkoKHMpID09IFNJR1RS
 QVApCisrIyAgICBkZWZpbmUgU0lHX0dldFBDKHNjcCkJCSgoc2NwKS0+c2NfZnJhbWUuc3JyMCkK
 KysjICAgIGRlZmluZSBTSUdfU2V0UEMoc2NwLCBhZGRyKQl7IChzY3ApLT5zY19mcmFtZS5zcnIw
 ID0gKGxvbmcpKGFkZHIpOyB9CisrICAgICAvKiBsaW1pdHB0ciA9IDE1IChzZWUgYmFzZS9ydW50
 aW1lL21hY2gtZGVwL1BQQy5wcmltLmFzbSkgKi8KKysjICAgIGRlZmluZSBTSUdfWmVyb0xpbWl0
 UHRyKHNjcCkJeyAoKHNjcCktPnNjX2ZyYW1lLmZpeHJlZ1sxNV0gPSAwKTsgfQorKyMgICAgZGVm
 aW5lIFNJR19HZXRDb2RlKGluZm8sc2NwKQkoaW5mbykKICsgICAgIHR5cGVkZWYgdm9pZCBTaWdS
 ZXR1cm5fdDsKICsKLSAKKysKICAjICBlbmRpZiAvKiBIT1NUX1JTNjAwMC9IT1NUX1BQQyAqLwog
 IAotQEAgLTQ2MywzNSArNDc2LDE1IEBAIGV4dGVybiBBZGRyX3QgKk1MX1g4NkZyYW1lOyAgIC8q
 IHVzZWQgdG8KKyAjZWxpZiBkZWZpbmVkKEhPU1RfSFBQQSkKK0BAIC00NTIsMzAgKzQ2NywyNCBA
 QCBleHRlcm4gQWRkcl90ICpNTF9YODZGcmFtZTsJCS8qIHVzZWQgdG8gCiAgCi0gIyAgZWxpZiBk
 ZWZpbmVkKE9QU1lTX05FVEJTRCkKLSAgICAgLyoqIHg4NiwgTmV0QlNEICoqLwotLS8qIE5ldEJT
 RCAoaW5jbHVkaW5nIHZlcnNpb25zIDEuMCBhbmQgMS4xKSBnZW5lcmF0ZXMgU0lHQlVTIHJhdGhl
 cgotLSAgIHRoYW4gU0lHRlBFIGZvciBvdmVyZmxvd3MuICBUaGUgcmVhbCBmaXggaXMgYSB0cml2
 aWFsIGNoYW5nZSB0bwotLSAgIGtlcm5lbCBzb3VyY2VzLCB3aGljaCBoYXMgYWxyZWFkeSBiZWVu
 IHJlcG9ydGVkIChOZXRCU0QgaW50ZXJuYWwKLS0gICBwcm9ibGVtIGlkZW50aWZpY2F0aW9uICJw
 b3J0LWkzODYvMTgzMyIpLiAKLS0KLS0gICBJZiB5b3Ugd2FudCB0byBmaXggdGhpcyBvbiB5b3Vy
 IE5ldEJTRCBzeXN0ZW0uICBFZGl0IG1hY2hkZXAuYyBpbgotLSAgIGRpcmVjdG9yeSAvc3lzL2Fy
 Y2gvaTM4Ni9pMzg2LCBhbmQgZmluZCB0aGUgbGluZQotLQotLSAgICAgICAgc2V0Z2F0ZSgmaWR0
 WyAgNF0sICZJRFRWRUMob2ZsKSwgICAgIDAsIFNEVF9TWVMzODZUR1QsIFNFTF9LUEwpOwotLQot
 LSAgIENoYW5nZSBTRUxfS1BMIHRvIFNFTF9VUEwuICBXaXRoIFNFTF9LUEwsIHRoZSBpbnQgb3Zl
 cmZsb3cgdHJhcCBpcwotLSAgIG5vdCBhY2Nlc3NpYmxlIGF0IHVzZXIgbGV2ZWwsIGFuZCBhIHBy
 b3RlY3Rpb24gZmF1bHQgb2NjdXJzIGluc3RlYWQKLS0gICAodGh1cyB0aGUgc2VnIGZhdWx0KS4g
 IFNFTF9VUEwgd2lsbCBhbGxvdyB1c2VyIHByb2Nlc3NlcyB0byBnZW5lcmF0ZQotLSAgIHRoaXMg
 dHJhcC4KLS0KLS0gICBGb3IgdGhlIGNoYW5nZSB0byB0YWtlIGVmZmVjdCwgcmVjb21waWxlIHlv
 dXIga2VybmVsLCBpbnN0YWxsIGl0Ci0tICAgYW5kIHJlYm9vdC4gKi8KLS0jICAgIGRlZmluZSBT
 SUdfRkFVTFQxCQlTSUdGUEUKKyAgICAgIHR5cGVkZWYgdm9pZCBTaWdSZXR1cm5fdDsKKyAKKy0j
 ICBlbGlmIGRlZmluZWQoT1BTWVNfTkVUQlNEMikKKy0gICAgLyoqIHg4NiwgTmV0QlNEICh2ZXJz
 aW9uIDIueCkgKiovCisrIyAgZWxpZiAoZGVmaW5lZChPUFNZU19ORVRCU0QyKSB8fCBkZWZpbmVk
 KE9QU1lTX05FVEJTRCkpCisrICAgIC8qKiB4ODYsIE5ldEJTRCAqKi8KKyAjICAgIGRlZmluZSBT
 SUdfRkFVTFQxCQlTSUdGUEUKIC0jICAgIGRlZmluZSBTSUdfRkFVTFQyCQlTSUdCVVMKIC0jICAg
 IGRlZmluZSBJTlRfRElWWkVSTyhzLCBjKQkwCiAtIyAgICBkZWZpbmUgSU5UX09WRkxXKHMsIGMp
 CSgoKHMpID09IFNJR0ZQRSkgfHwgKChzKSA9PSBTSUdCVVMpKQotLQorKyMgICAgZGVmaW5lIElO
 VF9ESVZaRVJPKHMsIGMpCSgocykgPT0gU0lHRlBFKQorKyMgICAgZGVmaW5lIElOVF9PVkZMVyhz
 LCBjKQkoKHMpID09IFNJR0ZQRSkKKyAKIC0jICAgIGRlZmluZSBTSUdfR2V0Q29kZShpbmZvLCBz
 Y3ApCShpbmZvKQogLSMgICAgZGVmaW5lIFNJR19HZXRQQyhzY3ApCQkoKHNjcCktPnNjX3BjKQog
 LSMgICAgZGVmaW5lIFNJR19TZXRQQyhzY3AsIGFkZHIpCXsgKHNjcCktPnNjX3BjID0gKGxvbmcp
 KGFkZHIpOyB9Ci0rIyAgICBkZWZpbmUgU0lHX0ZBVUxUMQkJCVNJR0ZQRQotKyMgICAgZGVmaW5l
 IElOVF9ESVZaRVJPKHMsIGMpCQkoKHMpID09IFNJR0ZQRSkKLSsjICAgIGRlZmluZSBJTlRfT1ZG
 TFcocywgYykJCSgocykgPT0gU0lHRlBFKQotKworLSMgICAgZGVmaW5lIFNJR19aZXJvTGltaXRQ
 dHIoc2NwKQl7IE1MX1g4NkZyYW1lW0xJTUlUUFRSX1g4Nk9GRlNFVF0gPSAwOyB9CiArIyAgICBk
 ZWZpbmUgU0lHX0dldENvZGUoaW5mbywgc2NwKQkoMCkKLSsjICAgIGRlZmluZSBTSUdfR2V0UEMo
 c2NwKQkJKChzY3ApLT51Y19tY29udGV4dC5fX2dyZWdzW19SRUdfRUlQXSkKLSsjICAgIGRlZmlu
 ZSBTSUdfU2V0UEMoc2NwLCBhZGRyKQl7KHNjcCktPnVjX21jb250ZXh0Ll9fZ3JlZ3NbX1JFR19F
 SVBdID0gKGxvbmcpKGFkZHIpOyB9Ci0gIyAgICBkZWZpbmUgU0lHX1plcm9MaW1pdFB0cihzY3Ap
 CXsgTUxfWDg2RnJhbWVbTElNSVRQVFJfWDg2T0ZGU0VUXSA9IDA7IH0KICAKIC0gICAgIHR5cGVk
 ZWYgdm9pZCBTaWdSZXR1cm5fdDsKLS0KLSAjICBlbGlmIGRlZmluZWQoT1BTWVNfU09MQVJJUykK
 LSAgICAgIC8qKiB4ODYsIFNvbGFyaXMgKi8KKysjICAgIGlmIGRlZmluZWQoT1BTWVNfTkVUQlNE
 MikKKysjICAgICAgZGVmaW5lIFNJR19HZXRQQyhzY3ApCQkoKHNjcCktPnNjX3BjKQorKyMgICAg
 ICBkZWZpbmUgU0lHX1NldFBDKHNjcCwgYWRkcikJeyAoc2NwKS0+c2NfcGMgPSAobG9uZykoYWRk
 cik7IH0KKysgICAgICAgdHlwZWRlZiB2b2lkIFNpZ1JldHVybl90OworIAorLSMgIGVsaWYgZGVm
 aW5lZChPUFNZU19ORVRCU0QpCistICAgIC8qKiB4ODYsIE5ldEJTRCAodmVyc2lvbiAzLngpICoq
 LworLSMgICAgZGVmaW5lIFNJR19GQVVMVDEJCVNJR0ZQRQorLSMgICAgZGVmaW5lIFNJR19GQVVM
 VDIJCVNJR0JVUworLSMgICAgZGVmaW5lIElOVF9ESVZaRVJPKHMsIGMpCTAKKy0jICAgIGRlZmlu
 ZSBJTlRfT1ZGTFcocywgYykJKCgocykgPT0gU0lHRlBFKSB8fCAoKHMpID09IFNJR0JVUykpCisr
 IyAgICBlbGlmIGRlZmluZWQoT1BTWVNfTkVUQlNEKQorKyMgICAgICBkZWZpbmUgU0lHX0dldFBD
 KHNjcCkJCShfVUNfTUFDSElORV9QQyhzY3ApKQorKyMgICAgICBkZWZpbmUgU0lHX1NldFBDKHNj
 cCwgYWRkcikJeyBfVUNfTUFDSElORV9TRVRfUEMoc2NwLCAoKGxvbmcpIChhZGRyKSkpOyB9Cisr
 IyAgICBlbmRpZgorIAorLSMgICAgZGVmaW5lIFNJR19HZXRDb2RlKGluZm8sIHNjcCkJKGluZm8p
 CistIyAgICBkZWZpbmUgU0lHX0dldFBDKHNjcCkJCShfVUNfTUFDSElORV9QQyhzY3ApKQorLSMg
 ICAgZGVmaW5lIFNJR19TZXRQQyhzY3AsIGFkZHIpCXsgX1VDX01BQ0hJTkVfU0VUX1BDKHNjcCwg
 KChsb25nKSAoYWRkcikpKTsgfQorICMgICAgZGVmaW5lIFNJR19aZXJvTGltaXRQdHIoc2NwKQl7
 IE1MX1g4NkZyYW1lW0xJTUlUUFRSX1g4Nk9GRlNFVF0gPSAwOyB9CiAgCisgIyAgZWxpZiBkZWZp
 bmVkKE9QU1lTX09QRU5CU0QpCmRpZmYgLXggQ1ZTIC11ck4gbGFuZy9zbWxuai5vcmlnL3BhdGNo
 ZXMvcGF0Y2gtYWcgbGFuZy9zbWxuai9wYXRjaGVzL3BhdGNoLWFnCi0tLSBsYW5nL3NtbG5qLm9y
 aWcvcGF0Y2hlcy9wYXRjaC1hZwkyMDAzLTAzLTIxIDE3OjU0OjM5LjAwMDAwMDAwMCAtMDUwMAor
 KysgbGFuZy9zbWxuai9wYXRjaGVzL3BhdGNoLWFnCTIwMDktMDMtMTEgMTQ6MzI6MTcuMDAwMDAw
 MDAwIC0wNDAwCkBAIC0xLDcgKzEsNyBAQAogJE5ldEJTRDogcGF0Y2gtYWcsdiAxLjIgMjAwMy8w
 My8yMSAyMjo1NDozOSB3aXogRXhwICQKIAotLS0tIHNyYy9ydW50aW1lL29ianMvbWsuc3BhcmMt
 bmV0YnNkLm9yaWcJVGh1IFNlcCAxOSAwMzo1NDowMSAyMDAyCi0rKysgc3JjL3J1bnRpbWUvb2Jq
 cy9tay5zcGFyYy1uZXRic2QKKy0tLSBiYXNlL3J1bnRpbWUvb2Jqcy9tay5zcGFyYy1uZXRic2Qu
 b3JpZwkyMDA5LTAzLTExIDEzOjIxOjExLjAwMDAwMDAwMCAtMDQwMAorKysrIGJhc2UvcnVudGlt
 ZS9vYmpzL21rLnNwYXJjLW5ldGJzZAogQEAgLTAsMCArMSwyNCBAQAogKyMgbWsuc3BhcmMtbmV0
 YnNkCiArIwpkaWZmIC14IENWUyAtdXJOIGxhbmcvc21sbmoub3JpZy9wYXRjaGVzL3BhdGNoLWFo
 IGxhbmcvc21sbmovcGF0Y2hlcy9wYXRjaC1haAotLS0gbGFuZy9zbWxuai5vcmlnL3BhdGNoZXMv
 cGF0Y2gtYWgJMjAwMy0wMy0yMSAxNzo1NDo0MC4wMDAwMDAwMDAgLTA1MDAKKysrIGxhbmcvc21s
 bmovcGF0Y2hlcy9wYXRjaC1haAkyMDA5LTAzLTExIDE0OjMyOjE3LjAwMDAwMDAwMCAtMDQwMApA
 QCAtMSw2ICsxLDYgQEAKLSROZXRCU0Q6IHBhdGNoLWFoLHYgMS4xIDIwMDMvMDMvMjEgMjI6NTQ6
 NDAgd2l6IEV4cCAkCiskTmV0QlNEJAogCi0tLS0gY29uZmlnL19saW5rLXNtbC5vcmlnCVRodSBP
 Y3QgMTcgMDI6NDQ6MzIgMjAwMgorLS0tIGNvbmZpZy9fbGluay1zbWwub3JpZwkyMDA1LTAxLTAz
 IDE2OjEzOjE2LjAwMDAwMDAwMCAtMDUwMAogKysrIGNvbmZpZy9fbGluay1zbWwKIEBAIC0xNyw2
 ICsxNyw3IEBAIHVuc2V0IEVOVgogICMKQEAgLTksNCArOSw0IEBACiArU01MTkpfSE9NRT0iJHtT
 TUxOSl9IT01FOi1AU01MX0JBU0VAfSIKICAKICAjIHRoZSBwYXRoIG9mIHRoZSBkaXJlY3Rvcnkg
 aW4gd2hpY2ggZXhlY3V0YWJsZXMgKGxpa2UgdGhpcyBmaWxlKSBhcmUga2VwdC4KLSBpZiBbIHgk
 e1NNTE5KX0hPTUV9ID0geCBdIDsgdGhlbgorIGlmIFsgeCIkU01MTkpfSE9NRSIgPSB4IF0gOyB0
 aGVuCmRpZmYgLXggQ1ZTIC11ck4gbGFuZy9zbWxuai5vcmlnL3BhdGNoZXMvcGF0Y2gtYWkgbGFu
 Zy9zbWxuai9wYXRjaGVzL3BhdGNoLWFpCi0tLSBsYW5nL3NtbG5qLm9yaWcvcGF0Y2hlcy9wYXRj
 aC1haQkyMDAzLTAzLTIxIDE3OjU0OjQwLjAwMDAwMDAwMCAtMDUwMAorKysgbGFuZy9zbWxuai9w
 YXRjaGVzL3BhdGNoLWFpCTIwMDktMDMtMTEgMTQ6MzI6MTcuMDAwMDAwMDAwIC0wNDAwCkBAIC0x
 LDYgKzEsNiBAQAotJE5ldEJTRDogcGF0Y2gtYWksdiAxLjEgMjAwMy8wMy8yMSAyMjo1NDo0MCB3
 aXogRXhwICQKKyROZXRCU0QkCiAKLS0tLSBjb25maWcvX21sLWJ1aWxkLm9yaWcJVGh1IE9jdCAx
 NyAwMjo0NDozMiAyMDAyCistLS0gY29uZmlnL19tbC1idWlsZC5vcmlnCTIwMDctMDItMTIgMTY6
 MDU6MjcuMDAwMDAwMDAwIC0wNTAwCiArKysgY29uZmlnL19tbC1idWlsZAogQEAgLTEsNSArMSw3
 IEBACiAgIyFAU0hFTExACkBAIC04LDUgKzgsNSBAQAogK1NNTE5KX0hPTUU9IiR7U01MTkpfSE9N
 RTotQFNNTF9CQVNFQH0iCiArCiAgaWYgWyB4JHtTTUxOSl9IT01FfSA9IHggXSA7IHRoZW4KLSAg
 ICAgQklOX0RJUj1AQklORElSQAotIGVsc2UKKyAgICAgQklOX0RJUj0iQEJJTkRJUkAiCisgICAg
 IExJQl9ESVI9IkBMSUJESVJAIgpkaWZmIC14IENWUyAtdXJOIGxhbmcvc21sbmoub3JpZy9wYXRj
 aGVzL3BhdGNoLWFqIGxhbmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hagotLS0gbGFuZy9zbWxuai5v
 cmlnL3BhdGNoZXMvcGF0Y2gtYWoJMjAwMy0wMy0yMSAxNzo1NDo0MS4wMDAwMDAwMDAgLTA1MDAK
 KysrIGxhbmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hagkyMDA5LTAzLTExIDE0OjMyOjE3LjAwMDAw
 MDAwMCAtMDQwMApAQCAtMSw2ICsxLDYgQEAKLSROZXRCU0Q6IHBhdGNoLWFqLHYgMS4xIDIwMDMv
 MDMvMjEgMjI6NTQ6NDEgd2l6IEV4cCAkCiskTmV0QlNEJAogCi0tLS0gY29uZmlnL19tbC1tYWtl
 ZGVwZW5kLm9yaWcJVGh1IE9jdCAxNyAwMjo0NDozMiAyMDAyCistLS0gY29uZmlnL19tbC1tYWtl
 ZGVwZW5kLm9yaWcJMjAwOC0wMy0yNyAxNToyMzowOS4wMDAwMDAwMDAgLTA0MDAKICsrKyBjb25m
 aWcvX21sLW1ha2VkZXBlbmQKIEBAIC0xLDUgKzEsNyBAQAogICMhQFNIRUxMQApAQCAtOCw1ICs4
 LDUgQEAKICtTTUxOSl9IT01FPSIke1NNTE5KX0hPTUU6LUBTTUxfQkFTRUB9IgogKwogIGlmIFsg
 eCR7U01MTkpfSE9NRX0gPSB4IF0gOyB0aGVuCi0gICAgIEJJTl9ESVI9QEJJTkRJUkAKKyAgICAg
 QklOX0RJUj0iQEJJTkRJUkAiCiAgZWxzZQpkaWZmIC14IENWUyAtdXJOIGxhbmcvc21sbmoub3Jp
 Zy9wYXRjaGVzL3BhdGNoLWFrIGxhbmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hawotLS0gbGFuZy9z
 bWxuai5vcmlnL3BhdGNoZXMvcGF0Y2gtYWsJMjAwMy0wMy0yMSAxNzo1NDo0MS4wMDAwMDAwMDAg
 LTA1MDAKKysrIGxhbmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hawkyMDA5LTAzLTExIDE0OjMyOjE3
 LjAwMDAwMDAwMCAtMDQwMApAQCAtMSw2ICsxLDYgQEAKLSROZXRCU0Q6IHBhdGNoLWFrLHYgMS4x
 IDIwMDMvMDMvMjEgMjI6NTQ6NDEgd2l6IEV4cCAkCiskTmV0QlNEJAogCi0tLS0gY29uZmlnL19y
 dW4tc21sLm9yaWcJVGh1IE9jdCAxNyAwMjo0NDozMiAyMDAyCistLS0gY29uZmlnL19ydW4tc21s
 Lm9yaWcJMjAwNC0xMi0xNyAxNjoxMjoyMy4wMDAwMDAwMDAgLTA1MDAKICsrKyBjb25maWcvX3J1
 bi1zbWwKIEBAIC0xOSw2ICsxOSw3IEBAIHVuc2V0IEVOVgogICMKQEAgLTgsNSArOCw1IEBACiAg
 IwogK1NNTE5KX0hPTUU9IiR7U01MTkpfSE9NRTotQFNNTF9CQVNFQH0iCiAgCi0gIyB0aGUgcGF0
 aCBvZiB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIGV4ZWN1dGFibGVzIChsaWtlIHRoaXMgZmlsZSkg
 YXJlIGtlcHQuCi0gaWYgWyB4JHtTTUxOSl9IT01FfSA9IHggXSA7IHRoZW4KKyAjIE9uIGN5Z3dp
 biwgbWFrZSBzdXJlIFNNTE5KX0hPTUUgaXMgZ2l2ZW4gYSBQT1NJWC1zdHlsZSBwYXRobmFtZS4K
 KyBpZiBbIHgiJFNNTE5KX0hPTUUiICE9IHggXSA7IHRoZW4KZGlmZiAteCBDVlMgLXVyTiBsYW5n
 L3NtbG5qLm9yaWcvcGF0Y2hlcy9wYXRjaC1hbCBsYW5nL3NtbG5qL3BhdGNoZXMvcGF0Y2gtYWwK
 LS0tIGxhbmcvc21sbmoub3JpZy9wYXRjaGVzL3BhdGNoLWFsCTIwMDQtMDYtMDYgMDA6Mzg6Mjku
 MDAwMDAwMDAwIC0wNDAwCisrKyBsYW5nL3NtbG5qL3BhdGNoZXMvcGF0Y2gtYWwJMjAwOS0wMy0x
 MSAxNDozMjoxNy4wMDAwMDAwMDAgLTA0MDAKQEAgLTEsMTUgKzEsMTMgQEAKLSROZXRCU0Q6IHBh
 dGNoLWFsLHYgMS4zIDIwMDQvMDYvMDYgMDQ6Mzg6Mjkgc25qIEV4cCAkCiskTmV0QlNEJAogCi0t
 LS0gc3JjL3J1bnRpbWUvb2Jqcy9tay54ODYtbmV0YnNkLm9yaWcJMjAwMC0xMS0wNiAxMzo0MTow
 NC4wMDAwMDAwMDAgLTA4MDAKLSsrKyBzcmMvcnVudGltZS9vYmpzL21rLng4Ni1uZXRic2QJMjAw
 NC0wNi0wNSAyMToxNjowMy4wMDAwMDAwMDAgLTA3MDAKLUBAIC05LDggKzksOCBAQCBNQUtFID0J
 CWdtYWtlCistLS0gYmFzZS9ydW50aW1lL29ianMvbWsueDg2LW5ldGJzZC5vcmlnCTIwMDYtMDIt
 MTAgMTc6MTQ6NTkuMDAwMDAwMDAwIC0wNTAwCisrKysgYmFzZS9ydW50aW1lL29ianMvbWsueDg2
 LW5ldGJzZAorQEAgLTksNyArOSw3IEBAIE1BS0UgPQkJZ21ha2UKICAKICBBUkZMQUdTID0JVHJj
 dgogIENDID0JCWdjYyAtYW5zaQogLUNGTEFHUyA9CS1PMgotLUNQUCA9CQlnY2MgLXggYyAtRSAt
 UCAtYW5zaQogK0NGTEFHUyA9CUBDRkxBR1NACi0rQ1BQID0JCWdjYyAteCBhc3NlbWJsZXItd2l0
 aC1jcHAgLUUgLVAKKyBDUFAgPQkJZ2NjIC14IGFzc2VtYmxlci13aXRoLWNwcCAtRSAtUAogICND
 UFAgPQkJL3Vzci9iaW4vY3BwIC1QCiAgCi0gWE9CSlMgPQpkaWZmIC14IENWUyAtdXJOIGxhbmcv
 c21sbmoub3JpZy9wYXRjaGVzL3BhdGNoLWFtIGxhbmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hbQot
 LS0gbGFuZy9zbWxuai5vcmlnL3BhdGNoZXMvcGF0Y2gtYW0JMjAwMy0wMy0yMSAxNzo1NDo0Mi4w
 MDAwMDAwMDAgLTA1MDAKKysrIGxhbmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hbQkyMDA5LTAzLTEx
 IDE0OjMyOjE3LjAwMDAwMDAwMCAtMDQwMApAQCAtMSw3ICsxLDcgQEAKICROZXRCU0Q6IHBhdGNo
 LWFtLHYgMS4xIDIwMDMvMDMvMjEgMjI6NTQ6NDIgd2l6IEV4cCAkCiAKLS0tLSBzcmMvcnVudGlt
 ZS9vYmpzL21rLnNwYXJjLXNvbGFyaXMub3JpZwlGcmkgSnVuIDE1IDE1OjA1OjE5IDIwMDEKLSsr
 KyBzcmMvcnVudGltZS9vYmpzL21rLnNwYXJjLXNvbGFyaXMKKy0tLSBiYXNlL3J1bnRpbWUvb2Jq
 cy9tay5zcGFyYy1zb2xhcmlzLm9yaWcJMjAwMS0wNi0xNSAxNTowNToxOS4wMDAwMDAwMDAgLTA0
 MDAKKysrKyBiYXNlL3J1bnRpbWUvb2Jqcy9tay5zcGFyYy1zb2xhcmlzCiBAQCAtOCw3ICs4LDcg
 QEAgQVMgPQkJL3Vzci9jY3MvYmluL2FzCiAgQVIgPQkJL3Vzci9jY3MvYmluL2FyCiAgR0NDID0J
 CWdjYwpkaWZmIC14IENWUyAtdXJOIGxhbmcvc21sbmoub3JpZy9wYXRjaGVzL3BhdGNoLWFuIGxh
 bmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hbgotLS0gbGFuZy9zbWxuai5vcmlnL3BhdGNoZXMvcGF0
 Y2gtYW4JMjAwMy0wMy0yMSAxNzo1NDo0My4wMDAwMDAwMDAgLTA1MDAKKysrIGxhbmcvc21sbmov
 cGF0Y2hlcy9wYXRjaC1hbgkyMDA5LTAzLTExIDE0OjMyOjE3LjAwMDAwMDAwMCAtMDQwMApAQCAt
 MSw3ICsxLDcgQEAKICROZXRCU0Q6IHBhdGNoLWFuLHYgMS4xIDIwMDMvMDMvMjEgMjI6NTQ6NDMg
 d2l6IEV4cCAkCiAKLS0tLSBzcmMvcnVudGltZS9vYmpzL21rLnNwYXJjLXN1bm9zLm9yaWcJVGh1
 IEp1biAgMSAxNDozMzo1MiAyMDAwCi0rKysgc3JjL3J1bnRpbWUvb2Jqcy9tay5zcGFyYy1zdW5v
 cworLS0tIGJhc2UvcnVudGltZS9vYmpzL21rLnNwYXJjLXN1bm9zLm9yaWcJMjAwMC0wNi0wMSAx
 NDozNDowMy4wMDAwMDAwMDAgLTA0MDAKKysrKyBiYXNlL3J1bnRpbWUvb2Jqcy9tay5zcGFyYy1z
 dW5vcwogQEAgLTQsNyArNCw3IEBACiAgU0hFTEwJCT0gL2Jpbi9zaAogIApkaWZmIC14IENWUyAt
 dXJOIGxhbmcvc21sbmoub3JpZy9wYXRjaGVzL3BhdGNoLWFvIGxhbmcvc21sbmovcGF0Y2hlcy9w
 YXRjaC1hbwotLS0gbGFuZy9zbWxuai5vcmlnL3BhdGNoZXMvcGF0Y2gtYW8JMjAwMy0wNy0wMSAx
 OToxOToxNC4wMDAwMDAwMDAgLTA0MDAKKysrIGxhbmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hbwky
 MDA5LTAzLTExIDE0OjMyOjE3LjAwMDAwMDAwMCAtMDQwMApAQCAtMSw4ICsxLDggQEAKICROZXRC
 U0Q6IHBhdGNoLWFvLHYgMS4yIDIwMDMvMDcvMDEgMjM6MTk6MTQganRiIEV4cCAkCiAKLS0tLSBz
 cmMvcnVudGltZS9rZXJuZWwvYm9vdC5jLm9yaWcKLSsrKyBzcmMvcnVudGltZS9rZXJuZWwvYm9v
 dC5jCi1AQCAtMTI0LDcgKzEyNCw3IEBACistLS0gYmFzZS9ydW50aW1lL2tlcm5lbC9ib290LmMu
 b3JpZwkyMDA1LTExLTAyIDE3OjI0OjM5LjAwMDAwMDAwMCAtMDUwMAorKysrIGJhc2UvcnVudGlt
 ZS9rZXJuZWwvYm9vdC5jCitAQCAtMTMwLDcgKzEzMCw3IEBAIFBWVCBtbF92YWxfdCBCdWlsZEZp
 bGVMaXN0IChtbF9zdGF0ZV90ICoKICAgICAgbWxfdmFsX3QJZmlsZUxpc3Q7CiAgIyBkZWZpbmUg
 U0laRV9CVUZfTEVOCTEyOAkvKiB0aGlzIHNob3VsZCBiZSBwbGVudHkgZm9yIHR3byBudW1iZXJz
 ICovCiAgICAgIGNoYXIgICAgICAgIHNpemVCdWZbU0laRV9CVUZfTEVOXTsKZGlmZiAteCBDVlMg
 LXVyTiBsYW5nL3NtbG5qLm9yaWcvcGF0Y2hlcy9wYXRjaC1hcCBsYW5nL3NtbG5qL3BhdGNoZXMv
 cGF0Y2gtYXAKLS0tIGxhbmcvc21sbmoub3JpZy9wYXRjaGVzL3BhdGNoLWFwCTIwMDMtMDctMDEg
 MTk6MTk6MTQuMDAwMDAwMDAwIC0wNDAwCisrKyBsYW5nL3NtbG5qL3BhdGNoZXMvcGF0Y2gtYXAJ
 MjAwOS0wMy0xMSAxNDozMjoxNy4wMDAwMDAwMDAgLTA0MDAKQEAgLTEsNyArMSw3IEBACiAkTmV0
 QlNEOiBwYXRjaC1hcCx2IDEuMiAyMDAzLzA3LzAxIDIzOjE5OjE0IGp0YiBFeHAgJAogCi0tLS0g
 c3JjL3J1bnRpbWUvaW5jbHVkZS9jYWNoZS1mbHVzaC5oLm9yaWcKLSsrKyBzcmMvcnVudGltZS9p
 bmNsdWRlL2NhY2hlLWZsdXNoLmgKKy0tLSBiYXNlL3J1bnRpbWUvaW5jbHVkZS9jYWNoZS1mbHVz
 aC5oLm9yaWcJMjAwMS0wNC0yMCAwOToyNjo0Ni4wMDAwMDAwMDAgLTA0MDAKKysrKyBiYXNlL3J1
 bnRpbWUvaW5jbHVkZS9jYWNoZS1mbHVzaC5oCiBAQCAtNDAsNyArNDAsNyBAQAogIGV4dGVybiBG
 bHVzaElDYWNoZSAodm9pZCAqYWRkciwgaW50IG5ieXRlcyk7CiAgCmRpZmYgLXggQ1ZTIC11ck4g
 bGFuZy9zbWxuai5vcmlnL3BhdGNoZXMvcGF0Y2gtYXEgbGFuZy9zbWxuai9wYXRjaGVzL3BhdGNo
 LWFxCi0tLSBsYW5nL3NtbG5qLm9yaWcvcGF0Y2hlcy9wYXRjaC1hcQkyMDAzLTA3LTAxIDE5OjE5
 OjE0LjAwMDAwMDAwMCAtMDQwMAorKysgbGFuZy9zbWxuai9wYXRjaGVzL3BhdGNoLWFxCTIwMDkt
 MDMtMTEgMTQ6MzI6MTcuMDAwMDAwMDAwIC0wNDAwCkBAIC0xLDggKzEsOCBAQAogJE5ldEJTRDog
 cGF0Y2gtYXEsdiAxLjIgMjAwMy8wNy8wMSAyMzoxOToxNCBqdGIgRXhwICQKIAotLS0tIHNyYy9y
 dW50aW1lL21hY2gtZGVwL1BQQy5wcmltLmFzbS5vcmlnCi0rKysgc3JjL3J1bnRpbWUvbWFjaC1k
 ZXAvUFBDLnByaW0uYXNtCi1AQCAtODEzLDcgKzgxMyw3IEBACistLS0gYmFzZS9ydW50aW1lL21h
 Y2gtZGVwL1BQQy5wcmltLmFzbS5vcmlnCTIwMDUtMDUtMDMgMTM6MjY6NDkuMDAwMDAwMDAwIC0w
 NDAwCisrKysgYmFzZS9ydW50aW1lL21hY2gtZGVwL1BQQy5wcmltLmFzbQorQEAgLTg0Niw3ICs4
 NDYsNyBAQCBDRU5UUlkoUmVzdG9yZUZQUmVncykKICAJbGZkCWYzMSwgMTM2KHIzKQogIAlibHIK
 ICAKZGlmZiAteCBDVlMgLXVyTiBsYW5nL3NtbG5qLm9yaWcvcGF0Y2hlcy9wYXRjaC1hciBsYW5n
 L3NtbG5qL3BhdGNoZXMvcGF0Y2gtYXIKLS0tIGxhbmcvc21sbmoub3JpZy9wYXRjaGVzL3BhdGNo
 LWFyCTIwMDYtMDMtMjggMTY6MzU6MjcuMDAwMDAwMDAwIC0wNTAwCisrKyBsYW5nL3NtbG5qL3Bh
 dGNoZXMvcGF0Y2gtYXIJMjAwOS0wMy0xMSAxNDozMjoxNy4wMDAwMDAwMDAgLTA0MDAKQEAgLTEs
 OSArMSw5IEBACi0kTmV0QlNEOiBwYXRjaC1hcix2IDEuMSAyMDA2LzAzLzI4IDIxOjM1OjI3IGdh
 dmFuIEV4cCAkCiskTmV0QlNEJAogCi0tLS0gc3JjL3J1bnRpbWUvaW5jbHVkZS9tbC11bml4ZGVw
 Lmgub3JpZwkyMDAyLTEwLTEyIDAyOjAzOjUwLjAwMDAwMDAwMCArMDEwMAotKysrIHNyYy9ydW50
 aW1lL2luY2x1ZGUvbWwtdW5peGRlcC5oCi1AQCAtMzA5LDE0ICszMDksMTQgQEAgZXh0ZXJuIGNo
 YXIgICAgICpzeXNfZXJybGlzdFtdOwotICNlbGlmIGRlZmluZWQoT1BTWVNfTkVUQlNEKQorLS0t
 IGJhc2UvcnVudGltZS9pbmNsdWRlL21sLXVuaXhkZXAuaC5vcmlnCTIwMDgtMTItMDUgMTI6NTc6
 MzkuMDAwMDAwMDAwIC0wNTAwCisrKysgYmFzZS9ydW50aW1lL2luY2x1ZGUvbWwtdW5peGRlcC5o
 CitAQCAtMzIzLDcgKzMyMyw3IEBAIGV4dGVybiBjaGFyICAgICAqc3lzX2Vycmxpc3RbXTsKKyAj
 ZWxpZiBkZWZpbmVkKE9QU1lTX05FVEJTRCkgLyogdmVyc2lvbiAzLnggKi8KICAjICBkZWZpbmUg
 T1NfTkFNRQkiQlNEIgogICMgIGRlZmluZSBIQVNfUE9TSVhfTElCUkFSSUVTCiAtIyAgZGVmaW5l
 IEhBU19CU0RfU0lHUwpAQCAtMTEsMTEgKzExLDMgQEAKICAjICBkZWZpbmUgSEFTX0dFVFJVU0FH
 RQogICMgIGRlZmluZSBIQVNfU0VUSVRJTUVSCiAgIyAgZGVmaW5lIEhBU19NTUFQCi0gIyAgZGVm
 aW5lIEhBU19TRUxFQ1QKLSAjICBkZWZpbmUgSEFTX1NDQUxCTgotICMgIGRlZmluZSBIQVNfSUxP
 R0IKLS0jICBkZWZpbmUgSEFTX1NJR0NPTlRFWFQKLSsjICBkZWZpbmUgSEFTX1VDT05URVhUCi0g
 IyAgZGVmaW5lIEhBU19TVFJFUlJPUgotIAotICNlbmRpZgpkaWZmIC14IENWUyAtdXJOIGxhbmcv
 c21sbmoub3JpZy9wYXRjaGVzL3BhdGNoLWFzIGxhbmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hcwot
 LS0gbGFuZy9zbWxuai5vcmlnL3BhdGNoZXMvcGF0Y2gtYXMJMTk2OS0xMi0zMSAxOTowMDowMC4w
 MDAwMDAwMDAgLTA1MDAKKysrIGxhbmcvc21sbmovcGF0Y2hlcy9wYXRjaC1hcwkyMDA5LTAzLTEx
 IDE0OjMyOjE3LjAwMDAwMDAwMCAtMDQwMApAQCAtMCwwICsxLDEyIEBACiskTmV0QlNEJAorCist
 LS0gY29uZmlnL19oZWFwMmV4ZWMub3JpZwkyMDA2LTA0LTIwIDExOjI4OjUzLjAwMDAwMDAwMCAt
 MDQwMAorKysrIGNvbmZpZy9faGVhcDJleGVjCitAQCAtMSw1ICsxLDcgQEAKKyAjIUBTSEVMTEAK
 KyAKKytTTUxOSl9IT01FPSIke1NNTE5KX0hPTUU6LUBTTUxfQkFTRUB9IgorKworIENNRD1gYmFz
 ZW5hbWUgIiQwImAKKyAKKyB1c2FnZSgpIHsK
 --000e0cd22960d1938a0464df7606--

From: Christopher Richards <richards@CS.Princeton.EDU>
To: Christopher Richards <richards@cs.princeton.edu>
Cc: gnats-bugs@netbsd.org, "Jeremy C. Reed" <reed@reedmedia.net>
Subject: Re: pkg/40954
Date: Wed, 11 Mar 2009 18:47:36 -0400

 My apologies for the base64. I'm resending the patch in-line.

 Chris

 diff -x CVS -urN lang/smlnj.orig/Makefile lang/smlnj/Makefile
 --- lang/smlnj.orig/Makefile	2008-05-25 22:13:21.000000000 -0400
 +++ lang/smlnj/Makefile	2009-03-11 16:57:34.000000000 -0400
 @@ -3,11 +3,8 @@

  DISTNAME=	boot.${BOX}-unix
  PKGNAME=	smlnj-${SML_VERSION}
 -PKGREVISION=	3
  CATEGORIES=	lang
 -MASTER_SITES=	ftp://flint.cs.yale.edu/pub/smlnj/working/${SML_VERSION}/ \
 -		http://smlnj.cs.uchicago.edu/dist/working/${SML_VERSION}/ \
 -		ftp://flint.cs.yale.edu/pub/smlnj/working/${SML_VERSION}/
 +MASTER_SITES=	http://smlnj.cs.uchicago.edu/dist/working/${SML_VERSION}/
  DISTFILES=	MLRISC.tgz			\
  		boot.${BOX}-unix.tgz		\
  		ckit.tgz			\
 @@ -16,28 +13,27 @@
  		compiler.tgz			\
  		config.tgz			\
  		eXene.tgz			\
 +		heap2asm.tgz			\
  		ml-burg.tgz			\
  		ml-lex.tgz			\
 -		ml-nlffi-lib.tgz		\
 -		ml-nlffigen.tgz			\
 +		ml-lpt.tgz			\
  		ml-yacc.tgz			\
 +		nlffi.tgz			\
 +		pgraph.tgz			\
  		runtime.tgz			\
 +		smlnj-c.tgz			\
  		smlnj-lib.tgz			\
 -		system.tgz
 +		system.tgz			\
 +		trace-debug-profile.tgz

  MAINTAINER=	richards+netbsd@CS.Princeton.EDU
  HOMEPAGE=	http://www.smlnj.org/index.html
  COMMENT=	Popular functional language from Bell Labs

 -SML_VERSION=	110.42
 +SML_VERSION=	110.69

  PKG_DESTDIR_SUPPORT=	user-destdir

 -# Other mirror sites that generally carry only released versions of SML
 -# 	ftp://rodin.stanford.edu/pub/smlnj/release/
 -# 	ftp://ftp.cl.cam.ac.uk/MIRRORED/smlnj/release/
 -# 	ftp://ftp.ntua.gr/pub/lang/smlnj/release/
 -
  WRKSRC=		${WRKDIR}
  DIST_SUBDIR=	smlnj-${SML_VERSION}
  USE_TOOLS+=	gmake pax
 @@ -46,9 +42,7 @@
  CONFLICTS=	sml-nj-[0-9]*

  SML_BASE=	${PREFIX}/lib/smlnj
 -SML_LIBDIR=	${SML_BASE}/lib
 -SML_BINDIR=	${SML_BASE}/bin
 -SML_SCRIPTS=	_link-sml _run-sml _ml-build _ml-makedepend
 +SML_SCRIPTS=	_heap2exec _link-sml _ml-build _ml-makedepend _run-sml

  .include "../../lang/smlnj/Makefile.common"

 @@ -56,7 +50,7 @@

  # create parent directory for the runtime system
  pre-extract:
 -	${MKDIR} ${WRKDIR}/src || ${TRUE}
 +	${MKDIR} ${WRKDIR}/base || ${TRUE}

  # make it easier to patch the runtime system
  do-extract:
 @@ -65,7 +59,7 @@
  		cd ${WRKDIR}; ${EXTRACT_CMD}
  	${_PKG_SILENT}${_PKG_DEBUG}					\
  	extract_file="${_DISTDIR}/runtime.tgz"; export extract_file;	\
 -		cd ${WRKDIR}/src; ${EXTRACT_CMD}
 +		cd ${WRKDIR}/base; ${EXTRACT_CMD}

  # make symlinks to the dist files
  post-extract:
 @@ -80,7 +74,7 @@
  		${SED} -e 's|@SML_BASE@|${SML_BASE}|g'	\
  			< "$${f}.tmp" > "$${f}";	\
  	done;						\
 -	cd ${WRKDIR}/src/runtime/objs;			\
 +	cd ${WRKDIR}/base/runtime/objs;			\
  	for f in *; do					\
  		${CP} "$${f}" "$${f}.tmp";		\
  		${SED} -e 's|@CFLAGS@|${CFLAGS}|g'	\
 diff -x CVS -urN lang/smlnj.orig/Makefile.common lang/smlnj/Makefile.common
 --- lang/smlnj.orig/Makefile.common	2008-04-12 18:43:02.000000000 -0400
 +++ lang/smlnj/Makefile.common	2009-03-11 16:56:44.000000000 -0400
 @@ -1,4 +1,5 @@
  # $NetBSD: Makefile.common,v 1.8 2008/04/12 22:43:02 jlam Exp $
 +# used by lang/smlnj/Makefile

  # smlnj also supports hppa, sparc, ppc, mlrisc & alpha
  # pkg support for those platforms, and say, solaris-x86
 diff -x CVS -urN lang/smlnj.orig/PLIST lang/smlnj/PLIST
 --- lang/smlnj.orig/PLIST	2008-04-12 18:43:03.000000000 -0400
 +++ lang/smlnj/PLIST	2009-03-11 17:22:10.000000000 -0400
 @@ -1,262 +1,333 @@
 -@comment $NetBSD: PLIST,v 1.5 2008/04/12 22:43:03 jlam Exp $
 +@comment $NetBSD$
 +bin/heap2asm
 +bin/heap2exec
 +bin/ml-antlr
  bin/ml-build
  bin/ml-burg
  bin/ml-lex
  bin/ml-makedepend
  ${PLIST.nlffi}bin/ml-nlffigen
 +bin/ml-ulex
  bin/ml-yacc
  bin/nowhere
  bin/sml
  lib/smlnj/bin/.arch-n-opsys
 +lib/smlnj/bin/.heap/heap2asm.${BOX}-${OS}
 +lib/smlnj/bin/.heap/ml-antlr.${BOX}-${OS}
  lib/smlnj/bin/.heap/ml-burg.${BOX}-${OS}
  lib/smlnj/bin/.heap/ml-lex.${BOX}-${OS}
  ${PLIST.nlffi}lib/smlnj/bin/.heap/ml-nlffigen.${BOX}-${OS}
 +lib/smlnj/bin/.heap/ml-ulex.${BOX}-${OS}
  lib/smlnj/bin/.heap/ml-yacc.${BOX}-${OS}
  lib/smlnj/bin/.heap/nowhere.${BOX}-${OS}
  lib/smlnj/bin/.heap/sml.${BOX}-${OS}
  lib/smlnj/bin/.link-sml
  lib/smlnj/bin/.run-sml
  lib/smlnj/bin/.run/run.${BOX}-${LOWER_OPSYS}
 +lib/smlnj/bin/heap2asm
 +lib/smlnj/bin/heap2exec
 +lib/smlnj/bin/ml-antlr
  lib/smlnj/bin/ml-build
  lib/smlnj/bin/ml-burg
  lib/smlnj/bin/ml-lex
  lib/smlnj/bin/ml-makedepend
  ${PLIST.nlffi}lib/smlnj/bin/ml-nlffigen
 +lib/smlnj/bin/ml-ulex
  lib/smlnj/bin/ml-yacc
  lib/smlnj/bin/nowhere
  lib/smlnj/bin/sml
 -lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/ALPHA.cm
 -lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/Control.cm
 -lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/Graphs.cm
 -lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/HPPA.cm
 -lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/IA32.cm
 -lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/Lib.cm
 -lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/MLRISC.cm
 -lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/MLTREE.cm
 -lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/PPC.cm
 -lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/SPARC.cm
 -lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix/Visual.cm
 -lib/smlnj/lib/basis.cm/CM/${BOX}-unix/basis.cm
 -lib/smlnj/lib/burg-ext.cm/CM/${BOX}-unix/burg-ext.cm
 -${PLIST.nlffi}lib/smlnj/lib/c/CM/${BOX}-unix/c.cm
 -${PLIST.nlffi}lib/smlnj/lib/c/internals/CM/${BOX}-unix/c-int.cm
 -${PLIST.nlffi}lib/smlnj/lib/c/memory/CM/${BOX}-unix/memory.cm
 -lib/smlnj/lib/ckit-lib.cm/CM/${BOX}-unix/ckit-lib.cm
 -lib/smlnj/lib/cml-lib/CM/${BOX}-unix/smlnj-lib.cm
 -lib/smlnj/lib/cml-lib/CM/${BOX}-unix/trace-cml.cm
 -lib/smlnj/lib/cml/CM/${BOX}-unix/basis.cm
 -lib/smlnj/lib/cml/CM/${BOX}-unix/cml-internal.cm
 -lib/smlnj/lib/cml/CM/${BOX}-unix/cml.cm
 -lib/smlnj/lib/cml/CM/${BOX}-unix/core-cml.cm
 -lib/smlnj/lib/controls-lib.cm/CM/${BOX}-unix/controls-lib.cm
 -lib/smlnj/lib/dir-tool.cm/CM/${BOX}-unix/dir-tool.cm
 -lib/smlnj/lib/eXene.cm/CM/${BOX}-unix/eXene.cm
 -lib/smlnj/lib/grm-ext.cm/CM/${BOX}-unix/grm-ext.cm
 -lib/smlnj/lib/hash-cons-lib.cm/CM/${BOX}-unix/hash-cons-lib.cm
 -lib/smlnj/lib/html-lib.cm/CM/${BOX}-unix/html-lib.cm
 -lib/smlnj/lib/inet-lib.cm/CM/${BOX}-unix/inet-lib.cm
 -lib/smlnj/lib/lex-ext.cm/CM/${BOX}-unix/lex-ext.cm
 -lib/smlnj/lib/make-tool.cm/CM/${BOX}-unix/make-tool.cm
 -lib/smlnj/lib/ml-yacc-lib.cm/CM/${BOX}-unix/ml-yacc-lib.cm
 -lib/smlnj/lib/mlburg-tool.cm/CM/${BOX}-unix/mlburg-tool.cm
 -lib/smlnj/lib/mllex-tool.cm/CM/${BOX}-unix/mllex-tool.cm
 -lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix/match-compiler.cm
 -lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix/parser.cm
 -lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix/pp.cm
 -lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix/prec-parser.cm
 -lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix/sml-ast.cm
 -lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix/source-map.cm
 -lib/smlnj/lib/mlyacc-tool.cm/CM/${BOX}-unix/mlyacc-tool.cm
 -lib/smlnj/lib/noweb-tool.cm/CM/${BOX}-unix/noweb-tool.cm
 -lib/smlnj/lib/nw-ext.cm/CM/${BOX}-unix/nw-ext.cm
 +lib/smlnj/lib/SMLNJ-BASIS/.cm/${BOX}-unix/basis.cm
 +lib/smlnj/lib/SMLNJ-LIB/Controls/.cm/${BOX}-unix/controls-lib.cm
 +lib/smlnj/lib/SMLNJ-LIB/HTML/.cm/${BOX}-unix/html-lib.cm
 +lib/smlnj/lib/SMLNJ-LIB/PP/.cm/${BOX}-unix/pp-lib.cm
 +lib/smlnj/lib/SMLNJ-LIB/Util/.cm/${BOX}-unix/smlnj-lib.cm
 +lib/smlnj/lib/SMLNJ-ML-YACC-LIB/.cm/${BOX}-unix/ml-yacc-lib.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/ALPHA.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/AMD64-Peephole.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/AMD64.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/CCall-Vararg.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/CCall-sparc.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/CCall-x86-64.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/CCall-x86.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/CCall.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/Control.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/Graphs.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/HPPA.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/IA32-Peephole.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/IA32.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/Lib.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/MLRISC.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/MLTREE.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/PPC.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/Peephole.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/RA.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/SPARC.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/StagedAlloc.cm
 +lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/Visual.cm
 +lib/smlnj/lib/burg-ext.cm/.cm/${BOX}-unix/burg-ext.cm
 +${PLIST.nlffi}lib/smlnj/lib/c/.cm/${BOX}-unix/c.cm
 +${PLIST.nlffi}lib/smlnj/lib/c/internals/.cm/${BOX}-unix/c-int.cm
 +${PLIST.nlffi}lib/smlnj/lib/c/memory/.cm/${BOX}-unix/memory.cm
 +lib/smlnj/lib/ckit-lib.cm/.cm/${BOX}-unix/ckit-lib.cm
 +lib/smlnj/lib/cml-lib/.cm/${BOX}-unix/smlnj-lib.cm
 +lib/smlnj/lib/cml-lib/.cm/${BOX}-unix/trace-cml.cm
 +lib/smlnj/lib/cml/.cm/${BOX}-unix/basis.cm
 +lib/smlnj/lib/cml/.cm/${BOX}-unix/cml-internal.cm
 +lib/smlnj/lib/cml/.cm/${BOX}-unix/cml.cm
 +lib/smlnj/lib/cml/.cm/${BOX}-unix/core-cml.cm
 +lib/smlnj/lib/dir-tool.cm/.cm/${BOX}-unix/dir-tool.cm
 +lib/smlnj/lib/eXene.cm/.cm/${BOX}-unix/eXene.cm
 +lib/smlnj/lib/grm-ext.cm/.cm/${BOX}-unix/grm-ext.cm
 +lib/smlnj/lib/hash-cons-lib.cm/.cm/${BOX}-unix/hash-cons-lib.cm
 +lib/smlnj/lib/inet-lib.cm/.cm/${BOX}-unix/inet-lib.cm
 +lib/smlnj/lib/json-lib.cm/.cm/${BOX}-unix/json-lib.cm
 +lib/smlnj/lib/lex-ext.cm/.cm/${BOX}-unix/lex-ext.cm
 +lib/smlnj/lib/make-tool.cm/.cm/${BOX}-unix/make-tool.cm
 +lib/smlnj/lib/ml-antlr-tool.cm/.cm/${BOX}-unix/ml-antlr-tool.cm
 +lib/smlnj/lib/ml-lpt-lib.cm/.cm/${BOX}-unix/ml-lpt-lib.cm
 +lib/smlnj/lib/ml-ulex-tool.cm/.cm/${BOX}-unix/ml-ulex-tool.cm
 +lib/smlnj/lib/mlburg-tool.cm/.cm/${BOX}-unix/mlburg-tool.cm
 +lib/smlnj/lib/mllex-tool.cm/.cm/${BOX}-unix/mllex-tool.cm
 +lib/smlnj/lib/mlrisc-tools/.cm/${BOX}-unix/match-compiler.cm
 +lib/smlnj/lib/mlrisc-tools/.cm/${BOX}-unix/parser.cm
 +lib/smlnj/lib/mlrisc-tools/.cm/${BOX}-unix/pp.cm
 +lib/smlnj/lib/mlrisc-tools/.cm/${BOX}-unix/prec-parser.cm
 +lib/smlnj/lib/mlrisc-tools/.cm/${BOX}-unix/sml-ast.cm
 +lib/smlnj/lib/mlrisc-tools/.cm/${BOX}-unix/source-map.cm
 +lib/smlnj/lib/mlyacc-tool.cm/.cm/${BOX}-unix/mlyacc-tool.cm
 +lib/smlnj/lib/noweb-tool.cm/.cm/${BOX}-unix/noweb-tool.cm
 +lib/smlnj/lib/nw-ext.cm/.cm/${BOX}-unix/nw-ext.cm
  lib/smlnj/lib/pathconfig
 -lib/smlnj/lib/pgraph-util.cm/CM/${BOX}-unix/pgraph-util.cm
 -lib/smlnj/lib/pgraph.cm/CM/${BOX}-unix/pgraph.cm
 -lib/smlnj/lib/pickle-lib.cm/CM/${BOX}-unix/pickle-lib.cm
 -lib/smlnj/lib/pp-lib.cm/CM/${BOX}-unix/pp-lib.cm
 -lib/smlnj/lib/reactive-lib.cm/CM/${BOX}-unix/reactive-lib.cm
 -lib/smlnj/lib/regexp-lib.cm/CM/${BOX}-unix/regexp-lib.cm
 -lib/smlnj/lib/shell-tool.cm/CM/${BOX}-unix/shell-tool.cm
 -lib/smlnj/lib/smlnj-lib.cm/CM/${BOX}-unix/smlnj-lib.cm
 -lib/smlnj/lib/smlnj/CM/${BOX}-unix/cm.cm
 -lib/smlnj/lib/smlnj/CM/${BOX}-unix/cmb.cm
 -lib/smlnj/lib/smlnj/CM/${BOX}-unix/compiler.cm
 -lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/ALPHA.cm
 -lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/Control.cm
 -lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/Graphs.cm
 -lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/HPPA.cm
 -lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/IA32.cm
 -lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/Lib.cm
 -lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/MLRISC.cm
 -lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/MLTREE.cm
 -lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/PPC.cm
 -lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/SPARC.cm
 -lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix/Visual.cm
 -lib/smlnj/lib/smlnj/cm/CM/${BOX}-unix/cm.cm
 -lib/smlnj/lib/smlnj/cm/CM/${BOX}-unix/tools.cm
 -lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/alpha32-unix.cm
 -lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/current.cm
 -lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/hppa-unix.cm
 -lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/ppc-macos.cm
 -lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/ppc-unix.cm
 -lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/sparc-unix.cm
 -lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/x86-unix.cm
 -lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix/x86-win32.cm
 -lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/all.cm
 -lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/alpha32.cm
 -lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/compiler.cm
 -lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/current.cm
 -lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/hppa.cm
 -lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/minimal-only.cm
 -lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/minimal.cm
 -lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/ppc.cm
 -lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/sparc.cm
 -lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix/x86.cm
 -lib/smlnj/lib/smlnj/init/CM/${BOX}-unix/init.cmi
 -lib/smlnj/lib/smlnj/internal/CM/${BOX}-unix/cm-lib.cm
 -lib/smlnj/lib/smlnj/internal/CM/${BOX}-unix/cm-sig-lib.cm
 -lib/smlnj/lib/smlnj/internal/CM/${BOX}-unix/cm0.cm
 -lib/smlnj/lib/smlnj/internal/CM/${BOX}-unix/intsys.cm
 -lib/smlnj/lib/smlnj/internal/CM/${BOX}-unix/srcpath-lib.cm
 -lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/alpha32.cm
 -lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/basics.cm
 -lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/core.cm
 -lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/debugprof.cm
 -lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/elabdata.cm
 -lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/elaborate.cm
 -lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/execute.cm
 -lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/hppa.cm
 -lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/parser.cm
 -lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/ppc.cm
 -lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/sparc.cm
 -lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix/x86.cm
 -lib/smlnj/lib/unix-lib.cm/CM/${BOX}-unix/unix-lib.cm
 -@dirrm lib/smlnj/lib/unix-lib.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/unix-lib.cm/CM
 +lib/smlnj/lib/pgraph-util.cm/.cm/${BOX}-unix/pgraph-util.cm
 +lib/smlnj/lib/pgraph.cm/.cm/${BOX}-unix/pgraph.cm
 +lib/smlnj/lib/pickle-lib.cm/.cm/${BOX}-unix/pickle-lib.cm
 +lib/smlnj/lib/reactive-lib.cm/.cm/${BOX}-unix/reactive-lib.cm
 +lib/smlnj/lib/regexp-lib.cm/.cm/${BOX}-unix/regexp-lib.cm
 +lib/smlnj/lib/shell-tool.cm/.cm/${BOX}-unix/shell-tool.cm
 +lib/smlnj/lib/smlnj-tdp/.cm/${BOX}-unix/back-trace.cm
 +lib/smlnj/lib/smlnj-tdp/.cm/${BOX}-unix/coverage.cm
 +lib/smlnj/lib/smlnj-tdp/.cm/${BOX}-unix/plugins.cm
 +lib/smlnj/lib/smlnj/.cm/${BOX}-unix/cm.cm
 +lib/smlnj/lib/smlnj/.cm/${BOX}-unix/cmb.cm
 +lib/smlnj/lib/smlnj/.cm/${BOX}-unix/compiler.cm
 +lib/smlnj/lib/smlnj/.cm/${BOX}-unix/installer.cm
 +lib/smlnj/lib/smlnj/.cm/${BOX}-unix/library-install.cm
 +lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/ALPHA.cm
 +lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/AMD64.cm
 +lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/Control.cm
 +lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/Graphs.cm
 +lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/HPPA.cm
 +lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/IA32.cm
 +lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/Lib.cm
 +lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/MLRISC.cm
 +lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/MLTREE.cm
 +lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/PPC.cm
 +lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/SPARC.cm
 +lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/Visual.cm
 +lib/smlnj/lib/smlnj/basis/.cm/${BOX}-unix/basis.cm
 +lib/smlnj/lib/smlnj/cm/.cm/${BOX}-unix/cm.cm
 +lib/smlnj/lib/smlnj/cm/.cm/${BOX}-unix/tools.cm
 +lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/alpha32-unix.cm
 +lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/amd64-unix.cm
 +lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/current.cm
 +lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/hppa-unix.cm
 +lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/ppc-macos.cm
 +lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/ppc-unix.cm
 +lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/sparc-unix.cm
 +lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/x86-unix.cm
 +lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/x86-win32.cm
 +lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/all.cm
 +lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/alpha32.cm
 +lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/amd64.cm
 +lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/compiler.cm
 +lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/current.cm
 +lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/hppa.cm
 +lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/minimal-only.cm
 +lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/minimal.cm
 +lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/ppc.cm
 +lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/sparc.cm
 +lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/x86.cm
 +lib/smlnj/lib/smlnj/init/.cm/${BOX}-unix/init.cmi
 +lib/smlnj/lib/smlnj/installer/.cm/${BOX}-unix/util.cm
 +lib/smlnj/lib/smlnj/internal/.cm/${BOX}-unix/cm-lib.cm
 +lib/smlnj/lib/smlnj/internal/.cm/${BOX}-unix/cm-sig-lib.cm
 +lib/smlnj/lib/smlnj/internal/.cm/${BOX}-unix/cm0.cm
 +lib/smlnj/lib/smlnj/internal/.cm/${BOX}-unix/intsys.cm
 +lib/smlnj/lib/smlnj/internal/.cm/${BOX}-unix/smlnj-version.cm
 +lib/smlnj/lib/smlnj/internal/.cm/${BOX}-unix/srcpath-lib.cm
 +lib/smlnj/lib/smlnj/ml-yacc/.cm/${BOX}-unix/ml-yacc-lib.cm
 +lib/smlnj/lib/smlnj/smlnj-lib/.cm/${BOX}-unix/controls-lib.cm
 +lib/smlnj/lib/smlnj/smlnj-lib/.cm/${BOX}-unix/html-lib.cm
 +lib/smlnj/lib/smlnj/smlnj-lib/.cm/${BOX}-unix/pp-lib.cm
 +lib/smlnj/lib/smlnj/smlnj-lib/.cm/${BOX}-unix/smlnj-lib.cm
 +lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/alpha32.cm
 +lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/amd64.cm
 +lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/basics.cm
 +lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/core.cm
 +lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/debugprof.cm
 +lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/elabdata.cm
 +lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/elaborate.cm
 +lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/execute.cm
 +lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/hppa.cm
 +lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/parser.cm
 +lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/ppc.cm
 +lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/sparc.cm
 +lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/x86.cm
 +lib/smlnj/lib/unix-lib.cm/.cm/${BOX}-unix/unix-lib.cm
 +@dirrm lib/smlnj/lib/unix-lib.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/unix-lib.cm/.cm
  @dirrm lib/smlnj/lib/unix-lib.cm
 -@dirrm lib/smlnj/lib/smlnj/viscomp/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/smlnj/viscomp/CM
 +@dirrm lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/smlnj/viscomp/.cm
  @dirrm lib/smlnj/lib/smlnj/viscomp
 -@dirrm lib/smlnj/lib/smlnj/internal/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/smlnj/internal/CM
 +@dirrm lib/smlnj/lib/smlnj/smlnj-lib/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/smlnj/smlnj-lib/.cm
 +@dirrm lib/smlnj/lib/smlnj/smlnj-lib
 +@dirrm lib/smlnj/lib/smlnj/ml-yacc/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/smlnj/ml-yacc/.cm
 +@dirrm lib/smlnj/lib/smlnj/ml-yacc
 +@dirrm lib/smlnj/lib/smlnj/internal/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/smlnj/internal/.cm
  @dirrm lib/smlnj/lib/smlnj/internal
 -@dirrm lib/smlnj/lib/smlnj/init/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/smlnj/init/CM
 +@dirrm lib/smlnj/lib/smlnj/installer/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/smlnj/installer/.cm
 +@dirrm lib/smlnj/lib/smlnj/installer
 +@dirrm lib/smlnj/lib/smlnj/init/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/smlnj/init/.cm
  @dirrm lib/smlnj/lib/smlnj/init
 -@dirrm lib/smlnj/lib/smlnj/compiler/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/smlnj/compiler/CM
 +@dirrm lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/smlnj/compiler/.cm
  @dirrm lib/smlnj/lib/smlnj/compiler
 -@dirrm lib/smlnj/lib/smlnj/cmb/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/smlnj/cmb/CM
 +@dirrm lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/smlnj/cmb/.cm
  @dirrm lib/smlnj/lib/smlnj/cmb
 -@dirrm lib/smlnj/lib/smlnj/cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/smlnj/cm/CM
 +@dirrm lib/smlnj/lib/smlnj/cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/smlnj/cm/.cm
  @dirrm lib/smlnj/lib/smlnj/cm
 -@dirrm lib/smlnj/lib/smlnj/MLRISC/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/smlnj/MLRISC/CM
 +@dirrm lib/smlnj/lib/smlnj/basis/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/smlnj/basis/.cm
 +@dirrm lib/smlnj/lib/smlnj/basis
 +@dirrm lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/smlnj/MLRISC/.cm
  @dirrm lib/smlnj/lib/smlnj/MLRISC
 -@dirrm lib/smlnj/lib/smlnj/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/smlnj/CM
 -@dirrm lib/smlnj/lib/smlnj-lib.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/smlnj-lib.cm/CM
 -@dirrm lib/smlnj/lib/smlnj-lib.cm
 +@dirrm lib/smlnj/lib/smlnj/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/smlnj/.cm
 +@dirrm lib/smlnj/lib/smlnj-tdp/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/smlnj-tdp/.cm
 +@dirrm lib/smlnj/lib/smlnj-tdp
  @dirrm lib/smlnj/lib/smlnj
 -@dirrm lib/smlnj/lib/shell-tool.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/shell-tool.cm/CM
 +@dirrm lib/smlnj/lib/shell-tool.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/shell-tool.cm/.cm
  @dirrm lib/smlnj/lib/shell-tool.cm
 -@dirrm lib/smlnj/lib/regexp-lib.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/regexp-lib.cm/CM
 +@dirrm lib/smlnj/lib/regexp-lib.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/regexp-lib.cm/.cm
  @dirrm lib/smlnj/lib/regexp-lib.cm
 -@dirrm lib/smlnj/lib/reactive-lib.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/reactive-lib.cm/CM
 +@dirrm lib/smlnj/lib/reactive-lib.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/reactive-lib.cm/.cm
  @dirrm lib/smlnj/lib/reactive-lib.cm
 -@dirrm lib/smlnj/lib/pp-lib.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/pp-lib.cm/CM
 -@dirrm lib/smlnj/lib/pp-lib.cm
 -@dirrm lib/smlnj/lib/pickle-lib.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/pickle-lib.cm/CM
 +@dirrm lib/smlnj/lib/pickle-lib.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/pickle-lib.cm/.cm
  @dirrm lib/smlnj/lib/pickle-lib.cm
 -@dirrm lib/smlnj/lib/pgraph.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/pgraph.cm/CM
 +@dirrm lib/smlnj/lib/pgraph.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/pgraph.cm/.cm
  @dirrm lib/smlnj/lib/pgraph.cm
 -@dirrm lib/smlnj/lib/pgraph-util.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/pgraph-util.cm/CM
 +@dirrm lib/smlnj/lib/pgraph-util.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/pgraph-util.cm/.cm
  @dirrm lib/smlnj/lib/pgraph-util.cm
 -@dirrm lib/smlnj/lib/nw-ext.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/nw-ext.cm/CM
 +@dirrm lib/smlnj/lib/nw-ext.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/nw-ext.cm/.cm
  @dirrm lib/smlnj/lib/nw-ext.cm
 -@dirrm lib/smlnj/lib/noweb-tool.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/noweb-tool.cm/CM
 +@dirrm lib/smlnj/lib/noweb-tool.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/noweb-tool.cm/.cm
  @dirrm lib/smlnj/lib/noweb-tool.cm
 -@dirrm lib/smlnj/lib/mlyacc-tool.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/mlyacc-tool.cm/CM
 +@dirrm lib/smlnj/lib/mlyacc-tool.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/mlyacc-tool.cm/.cm
  @dirrm lib/smlnj/lib/mlyacc-tool.cm
 -@dirrm lib/smlnj/lib/mlrisc-tools/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/mlrisc-tools/CM
 +@dirrm lib/smlnj/lib/mlrisc-tools/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/mlrisc-tools/.cm
  @dirrm lib/smlnj/lib/mlrisc-tools
 -@dirrm lib/smlnj/lib/mllex-tool.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/mllex-tool.cm/CM
 +@dirrm lib/smlnj/lib/mllex-tool.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/mllex-tool.cm/.cm
  @dirrm lib/smlnj/lib/mllex-tool.cm
 -@dirrm lib/smlnj/lib/mlburg-tool.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/mlburg-tool.cm/CM
 +@dirrm lib/smlnj/lib/mlburg-tool.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/mlburg-tool.cm/.cm
  @dirrm lib/smlnj/lib/mlburg-tool.cm
 -@dirrm lib/smlnj/lib/ml-yacc-lib.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/ml-yacc-lib.cm/CM
 -@dirrm lib/smlnj/lib/ml-yacc-lib.cm
 -@dirrm lib/smlnj/lib/make-tool.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/make-tool.cm/CM
 +@dirrm lib/smlnj/lib/ml-ulex-tool.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/ml-ulex-tool.cm/.cm
 +@dirrm lib/smlnj/lib/ml-ulex-tool.cm
 +@dirrm lib/smlnj/lib/ml-lpt-lib.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/ml-lpt-lib.cm/.cm
 +@dirrm lib/smlnj/lib/ml-lpt-lib.cm
 +@dirrm lib/smlnj/lib/ml-antlr-tool.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/ml-antlr-tool.cm/.cm
 +@dirrm lib/smlnj/lib/ml-antlr-tool.cm
 +@dirrm lib/smlnj/lib/make-tool.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/make-tool.cm/.cm
  @dirrm lib/smlnj/lib/make-tool.cm
 -@dirrm lib/smlnj/lib/lex-ext.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/lex-ext.cm/CM
 +@dirrm lib/smlnj/lib/lex-ext.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/lex-ext.cm/.cm
  @dirrm lib/smlnj/lib/lex-ext.cm
 -@dirrm lib/smlnj/lib/inet-lib.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/inet-lib.cm/CM
 +@dirrm lib/smlnj/lib/json-lib.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/json-lib.cm/.cm
 +@dirrm lib/smlnj/lib/json-lib.cm
 +@dirrm lib/smlnj/lib/inet-lib.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/inet-lib.cm/.cm
  @dirrm lib/smlnj/lib/inet-lib.cm
 -@dirrm lib/smlnj/lib/html-lib.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/html-lib.cm/CM
 -@dirrm lib/smlnj/lib/html-lib.cm
 -@dirrm lib/smlnj/lib/hash-cons-lib.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/hash-cons-lib.cm/CM
 +@dirrm lib/smlnj/lib/hash-cons-lib.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/hash-cons-lib.cm/.cm
  @dirrm lib/smlnj/lib/hash-cons-lib.cm
 -@dirrm lib/smlnj/lib/grm-ext.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/grm-ext.cm/CM
 +@dirrm lib/smlnj/lib/grm-ext.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/grm-ext.cm/.cm
  @dirrm lib/smlnj/lib/grm-ext.cm
 -@dirrm lib/smlnj/lib/eXene.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/eXene.cm/CM
 +@dirrm lib/smlnj/lib/eXene.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/eXene.cm/.cm
  @dirrm lib/smlnj/lib/eXene.cm
 -@dirrm lib/smlnj/lib/dir-tool.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/dir-tool.cm/CM
 +@dirrm lib/smlnj/lib/dir-tool.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/dir-tool.cm/.cm
  @dirrm lib/smlnj/lib/dir-tool.cm
 -@dirrm lib/smlnj/lib/controls-lib.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/controls-lib.cm/CM
 -@dirrm lib/smlnj/lib/controls-lib.cm
 -@dirrm lib/smlnj/lib/cml/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/cml/CM
 -@dirrm lib/smlnj/lib/cml-lib/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/cml-lib/CM
 +@dirrm lib/smlnj/lib/cml/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/cml/.cm
 +@dirrm lib/smlnj/lib/cml-lib/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/cml-lib/.cm
  @dirrm lib/smlnj/lib/cml-lib
  @dirrm lib/smlnj/lib/cml
 -@dirrm lib/smlnj/lib/ckit-lib.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/ckit-lib.cm/CM
 +@dirrm lib/smlnj/lib/ckit-lib.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/ckit-lib.cm/.cm
  @dirrm lib/smlnj/lib/ckit-lib.cm
 -${PLIST.nlffi}@dirrm lib/smlnj/lib/c/memory/CM/${BOX}-unix
 -${PLIST.nlffi}@dirrm lib/smlnj/lib/c/memory/CM
 +${PLIST.nlffi}@dirrm lib/smlnj/lib/c/memory/.cm/${BOX}-unix
 +${PLIST.nlffi}@dirrm lib/smlnj/lib/c/memory/.cm
  ${PLIST.nlffi}@dirrm lib/smlnj/lib/c/memory
 -${PLIST.nlffi}@dirrm lib/smlnj/lib/c/internals/CM/${BOX}-unix
 -${PLIST.nlffi}@dirrm lib/smlnj/lib/c/internals/CM
 +${PLIST.nlffi}@dirrm lib/smlnj/lib/c/internals/.cm/${BOX}-unix
 +${PLIST.nlffi}@dirrm lib/smlnj/lib/c/internals/.cm
  ${PLIST.nlffi}@dirrm lib/smlnj/lib/c/internals
 -${PLIST.nlffi}@dirrm lib/smlnj/lib/c/CM/${BOX}-unix
 -${PLIST.nlffi}@dirrm lib/smlnj/lib/c/CM
 +${PLIST.nlffi}@dirrm lib/smlnj/lib/c/.cm/${BOX}-unix
 +${PLIST.nlffi}@dirrm lib/smlnj/lib/c/.cm
  ${PLIST.nlffi}@dirrm lib/smlnj/lib/c
 -@dirrm lib/smlnj/lib/burg-ext.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/burg-ext.cm/CM
 +@dirrm lib/smlnj/lib/burg-ext.cm/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/burg-ext.cm/.cm
  @dirrm lib/smlnj/lib/burg-ext.cm
 -@dirrm lib/smlnj/lib/basis.cm/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/basis.cm/CM
 -@dirrm lib/smlnj/lib/basis.cm
 -@dirrm lib/smlnj/lib/SMLNJ-MLRISC/CM/${BOX}-unix
 -@dirrm lib/smlnj/lib/SMLNJ-MLRISC/CM
 +@dirrm lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/SMLNJ-MLRISC/.cm
  @dirrm lib/smlnj/lib/SMLNJ-MLRISC
 +@dirrm lib/smlnj/lib/SMLNJ-ML-YACC-LIB/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/SMLNJ-ML-YACC-LIB/.cm
 +@dirrm lib/smlnj/lib/SMLNJ-ML-YACC-LIB
 +@dirrm lib/smlnj/lib/SMLNJ-LIB/Util/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/SMLNJ-LIB/Util/.cm
 +@dirrm lib/smlnj/lib/SMLNJ-LIB/Util
 +@dirrm lib/smlnj/lib/SMLNJ-LIB/PP/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/SMLNJ-LIB/PP/.cm
 +@dirrm lib/smlnj/lib/SMLNJ-LIB/PP
 +@dirrm lib/smlnj/lib/SMLNJ-LIB/HTML/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/SMLNJ-LIB/HTML/.cm
 +@dirrm lib/smlnj/lib/SMLNJ-LIB/HTML
 +@dirrm lib/smlnj/lib/SMLNJ-LIB/Controls/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/SMLNJ-LIB/Controls/.cm
 +@dirrm lib/smlnj/lib/SMLNJ-LIB/Controls
 +@dirrm lib/smlnj/lib/SMLNJ-LIB
 +@dirrm lib/smlnj/lib/SMLNJ-BASIS/.cm/${BOX}-unix
 +@dirrm lib/smlnj/lib/SMLNJ-BASIS/.cm
 +@dirrm lib/smlnj/lib/SMLNJ-BASIS
  @dirrm lib/smlnj/lib
  @dirrm lib/smlnj/bin/.run
  @dirrm lib/smlnj/bin/.heap
 diff -x CVS -urN lang/smlnj.orig/distinfo lang/smlnj/distinfo
 --- lang/smlnj.orig/distinfo	2007-01-19 08:09:25.000000000 -0500
 +++ lang/smlnj/distinfo	2009-03-11 14:53:26.000000000 -0400
 @@ -1,74 +1,80 @@
  $NetBSD: distinfo,v 1.11 2007/01/19 13:09:25 dmcmahill Exp $

 -SHA1 (smlnj-110.42/MLRISC.tgz) = 55055ed06f7dd2ef178ef365c018f0f38f740528
 -RMD160 (smlnj-110.42/MLRISC.tgz) = 40aebe1cbf975e098bdf5115fd13b428e845195a
 -Size (smlnj-110.42/MLRISC.tgz) = 1173187 bytes
 -SHA1 (smlnj-110.42/boot.ppc-unix.tgz) =
 50c12d123cbb953283cc01308bda94ba6a004f10
 -RMD160 (smlnj-110.42/boot.ppc-unix.tgz) =
 b4c2b8683024f2e377dc131eb377190c49808122
 -Size (smlnj-110.42/boot.ppc-unix.tgz) = 5063945 bytes
 -SHA1 (smlnj-110.42/boot.sparc-unix.tgz) =
 d90361e8de683bde9f2ce76d5a3fdc0b9bcf7b1f
 -RMD160 (smlnj-110.42/boot.sparc-unix.tgz) =
 9b2c44e69ee46e24b51358939a3e8b494e6bce53
 -Size (smlnj-110.42/boot.sparc-unix.tgz) = 5216813 bytes
 -SHA1 (smlnj-110.42/boot.x86-unix.tgz) =
 7e85b25459886179be0bcb949cd489f62c0a5424
 -RMD160 (smlnj-110.42/boot.x86-unix.tgz) =
 2af62e8196de6e7da03cfda10d4799bf7a56188e
 -Size (smlnj-110.42/boot.x86-unix.tgz) = 5147025 bytes
 -SHA1 (smlnj-110.42/ckit.tgz) = f47599df014c9c6dcd02c0bfcc0fad5d1409451b
 -RMD160 (smlnj-110.42/ckit.tgz) = 87c737cf032f18c4381297ee895f07c81f4bd5d3
 -Size (smlnj-110.42/ckit.tgz) = 168000 bytes
 -SHA1 (smlnj-110.42/cm.tgz) = c102131e974e91426bab1cc30005f8e02f7622b6
 -RMD160 (smlnj-110.42/cm.tgz) = e80f68805c33ff98d2139cdef04df179670114c0
 -Size (smlnj-110.42/cm.tgz) = 202633 bytes
 -SHA1 (smlnj-110.42/cml.tgz) = 61f20116032d284a0d2eecd5f14de5378ff4ea6d
 -RMD160 (smlnj-110.42/cml.tgz) = f372145c1444814de2185d52cf422a5dc7d9ce70
 -Size (smlnj-110.42/cml.tgz) = 128485 bytes
 -SHA1 (smlnj-110.42/compiler.tgz) = fbde2959e05c04333131450d152a6ac5890b2867
 -RMD160 (smlnj-110.42/compiler.tgz) = 00af4ad5382c93e59a1a66d3c9cce5d13a8c102c
 -Size (smlnj-110.42/compiler.tgz) = 704669 bytes
 -SHA1 (smlnj-110.42/config.tgz) = f7c1b75019c274872d599b9f5a42ce0ee1926c24
 -RMD160 (smlnj-110.42/config.tgz) = 0ccd824debb96db27f419820f98135242401f6af
 -Size (smlnj-110.42/config.tgz) = 13660 bytes
 -SHA1 (smlnj-110.42/eXene.tgz) = e213539308047636da34a82fbcc7d59a8f03ea7a
 -RMD160 (smlnj-110.42/eXene.tgz) = 5eb1a2527126587f4c894ae7e9c23d8c4209539c
 -Size (smlnj-110.42/eXene.tgz) = 695431 bytes
 -SHA1 (smlnj-110.42/ml-burg.tgz) = 8c69fd51f7eb86b941883fa7c309b7e54baf28ea
 -RMD160 (smlnj-110.42/ml-burg.tgz) = d05eee14de5443d9a3b434ea0e35d91c61aea740
 -Size (smlnj-110.42/ml-burg.tgz) = 31696 bytes
 -SHA1 (smlnj-110.42/ml-lex.tgz) = 524714f95cd014e55624e9d1b270a77100f28cd1
 -RMD160 (smlnj-110.42/ml-lex.tgz) = 6e830a1b50503ebfe8f7429cb6e6674fe3a17805
 -Size (smlnj-110.42/ml-lex.tgz) = 32108 bytes
 -SHA1 (smlnj-110.42/ml-nlffi-lib.tgz) = 5222ccdc1d9737360a0ce60b05137b476282e9f3
 -RMD160 (smlnj-110.42/ml-nlffi-lib.tgz) =
 821c4416429a71337c7676093bf3625e26db1761
 -Size (smlnj-110.42/ml-nlffi-lib.tgz) = 33645 bytes
 -SHA1 (smlnj-110.42/ml-nlffigen.tgz) = d3e0e064dfd0fd3c12bda72e098224ebea180a6a
 -RMD160 (smlnj-110.42/ml-nlffigen.tgz) =
 e5e7a3fbe03aae141765de9b8e4495e796e32ec7
 -Size (smlnj-110.42/ml-nlffigen.tgz) = 28836 bytes
 -SHA1 (smlnj-110.42/ml-yacc.tgz) = ff4a077099a6f8d2bb8b32a64c9ef45e89358346
 -RMD160 (smlnj-110.42/ml-yacc.tgz) = 5d9767e53f62a2fbcb27296979034f585274a430
 -Size (smlnj-110.42/ml-yacc.tgz) = 95608 bytes
 -SHA1 (smlnj-110.42/runtime.tgz) = 913b2c4ca3edea2fd7fcc09c482665fb92e5f540
 -RMD160 (smlnj-110.42/runtime.tgz) = 8ce0479245b17678971e6af1a5798e358559d17c
 -Size (smlnj-110.42/runtime.tgz) = 313057 bytes
 -SHA1 (smlnj-110.42/smlnj-lib.tgz) = c48a8e19d4a14799d7596ce896f4a2040fe1c2bf
 -RMD160 (smlnj-110.42/smlnj-lib.tgz) = c403e9206eb939e04e88e9a37ca797bbd341ef27
 -Size (smlnj-110.42/smlnj-lib.tgz) = 251230 bytes
 -SHA1 (smlnj-110.42/system.tgz) = 0b9f61052a6413ac1d391a6b7ddf903875d192ff
 -RMD160 (smlnj-110.42/system.tgz) = 5f9cbdd50e47160f3190d08189f7b1f35bf646c9
 -Size (smlnj-110.42/system.tgz) = 177548 bytes
 -SHA1 (patch-aa) = 370fc94462f60fcf1b28ddad2266311b19d92eca
 -SHA1 (patch-ab) = 3d5946b2d72dee255159afe6fb25240f8fa7e306
 -SHA1 (patch-ac) = 7b3ea837db260542d1477ccbe0dba24c6afbc1e2
 -SHA1 (patch-ad) = a406bde2f6f7e2d93d652135b94aefd4b7aca494
 -SHA1 (patch-ae) = 5796401418fd91a795fdfe75060cf654dd315ac1
 -SHA1 (patch-af) = a2b75a7309398b6869995cb46aeedc1416700da4
 -SHA1 (patch-ag) = dae9c89ccc7ada96bd3ac4b2bae1da6427902fb4
 -SHA1 (patch-ah) = 4d1f861cf18424db18fbcd19fd2e123b9a0a5247
 -SHA1 (patch-ai) = dfb45b2c7d59bcd9230edb30d5dfffd4dab5782e
 -SHA1 (patch-aj) = 24bbb65b02e97bec7673dccbf07fce9853c94984
 -SHA1 (patch-ak) = 55738c10e5adc6b99d909a784f256b24e250990e
 -SHA1 (patch-al) = 82842e8662670336e134f12e0851d5f61413211d
 -SHA1 (patch-am) = 06d8cb145217c46ada440e0d3e7420ea99651064
 -SHA1 (patch-an) = d6e1a75d5fb68423ce3181622de919c2337db2e7
 -SHA1 (patch-ao) = 1c66024c5949269291cbf6f815baf6162db47d31
 -SHA1 (patch-ap) = 8e9e28548b4e58de68a11982a355a010ea96aa29
 -SHA1 (patch-aq) = 7d0734b76d778d7f584d2e70d325fd72e6554b01
 -SHA1 (patch-ar) = 7e0bcad61ecdc39bb0fc038ea02921d683ba8648
 +SHA1 (smlnj-110.69/MLRISC.tgz) = 77091a1d1336c22c656e85a2ded4240d96fb1aec
 +RMD160 (smlnj-110.69/MLRISC.tgz) = 14c1b5ac6d509362aa6d5da951f794c3d783eb60
 +Size (smlnj-110.69/MLRISC.tgz) = 1435001 bytes
 +SHA1 (smlnj-110.69/boot.x86-unix.tgz) =
 f6167dbbad3b9d5c36c8c04621b5ca966c8836ae
 +RMD160 (smlnj-110.69/boot.x86-unix.tgz) =
 fd3e4c33a06865f825ea98942811d3fc2312aa27
 +Size (smlnj-110.69/boot.x86-unix.tgz) = 5847027 bytes
 +SHA1 (smlnj-110.69/ckit.tgz) = d04c95308996d44205c9f0d2cfd4f5c0288e4658
 +RMD160 (smlnj-110.69/ckit.tgz) = e8997e8d06ebb796355e1c1de55801fd81c91b86
 +Size (smlnj-110.69/ckit.tgz) = 199406 bytes
 +SHA1 (smlnj-110.69/cm.tgz) = c133a316e83c128184ff976e15316442ed411726
 +RMD160 (smlnj-110.69/cm.tgz) = 9f51608bf6f3154131954dd155b0e212ba568b2f
 +Size (smlnj-110.69/cm.tgz) = 202292 bytes
 +SHA1 (smlnj-110.69/cml.tgz) = 4078eb6d1307323b0d67b51b1a864813141937c9
 +RMD160 (smlnj-110.69/cml.tgz) = 76af48b7fe46ad3bbc7e651442d03f9f0179ac5e
 +Size (smlnj-110.69/cml.tgz) = 104709 bytes
 +SHA1 (smlnj-110.69/compiler.tgz) = e19e208874490149035ef7be3521310d887715d3
 +RMD160 (smlnj-110.69/compiler.tgz) = 57b149b8aea8290ff2acaa89bd900012842f69df
 +Size (smlnj-110.69/compiler.tgz) = 824874 bytes
 +SHA1 (smlnj-110.69/config.tgz) = 62323fc515f22a5682bb26cce4e6fafb81fd8df8
 +RMD160 (smlnj-110.69/config.tgz) = 0a70d77abd3b9743375bca86cc01a00726ac4698
 +Size (smlnj-110.69/config.tgz) = 504169 bytes
 +SHA1 (smlnj-110.69/eXene.tgz) = 55f1cd7944b732fb5fae76941fd77f447a80755c
 +RMD160 (smlnj-110.69/eXene.tgz) = ead27c3e525955b1ba64979ddaccb8aa336cc3c6
 +Size (smlnj-110.69/eXene.tgz) = 714587 bytes
 +SHA1 (smlnj-110.69/heap2asm.tgz) = 9a25077dad7f65e785515ec850880a52c2ee2e41
 +RMD160 (smlnj-110.69/heap2asm.tgz) = 23e7bad78f11e284d5aedaf6d399234cd8df731b
 +Size (smlnj-110.69/heap2asm.tgz) = 1327 bytes
 +SHA1 (smlnj-110.69/ml-burg.tgz) = f3a2520cd1664f4728b03b39cf60a26583ee73ed
 +RMD160 (smlnj-110.69/ml-burg.tgz) = 53892a1e62d30d166374ced13d48be49b44debc2
 +Size (smlnj-110.69/ml-burg.tgz) = 36670 bytes
 +SHA1 (smlnj-110.69/ml-lex.tgz) = 8e7d338d3cc03c3009efee24ae10af6d44883aae
 +RMD160 (smlnj-110.69/ml-lex.tgz) = 1a230216b9458278182a28d3412d0fb7c8ecf81a
 +Size (smlnj-110.69/ml-lex.tgz) = 33061 bytes
 +SHA1 (smlnj-110.69/ml-lpt.tgz) = a5430e3900f70117759adde8481cd22b73b1c61b
 +RMD160 (smlnj-110.69/ml-lpt.tgz) = a67530a9230a4d96ae67b642fd04a28f9f6ca7b7
 +Size (smlnj-110.69/ml-lpt.tgz) = 257417 bytes
 +SHA1 (smlnj-110.69/ml-yacc.tgz) = d8cf44d4e813174ca9398b79267dfc53970529d0
 +RMD160 (smlnj-110.69/ml-yacc.tgz) = 53b71d3d6a0da27efd584c043edd223da32bec3c
 +Size (smlnj-110.69/ml-yacc.tgz) = 102025 bytes
 +SHA1 (smlnj-110.69/nlffi.tgz) = 484727a1df899e6289f421dca607646fc277d7a9
 +RMD160 (smlnj-110.69/nlffi.tgz) = 1d2b2cd4667ddd6620ac65d1487a721873db28ea
 +Size (smlnj-110.69/nlffi.tgz) = 75176 bytes
 +SHA1 (smlnj-110.69/pgraph.tgz) = 717f5b85c1f9b331df8495a53b6a635faf55c386
 +RMD160 (smlnj-110.69/pgraph.tgz) = f6eb61fe34093d42702953a546a3ee7ee2fe5644
 +Size (smlnj-110.69/pgraph.tgz) = 5453 bytes
 +SHA1 (smlnj-110.69/runtime.tgz) = c00e0892580b85a1db6ee285c4281f7f5cb740da
 +RMD160 (smlnj-110.69/runtime.tgz) = 52a6b812f56d3f97ee11e533a7d65003ddea97cc
 +Size (smlnj-110.69/runtime.tgz) = 333887 bytes
 +SHA1 (smlnj-110.69/smlnj-c.tgz) = a0c32f25fd7a3f1bf23b584fcbabf99c5b46f5ca
 +RMD160 (smlnj-110.69/smlnj-c.tgz) = ddf74fcddac3d32a2da4c041cb5e29ecc2bc6e51
 +Size (smlnj-110.69/smlnj-c.tgz) = 10627 bytes
 +SHA1 (smlnj-110.69/smlnj-lib.tgz) = 004d7082b1bea36ce8ac412f70bc7f764f362628
 +RMD160 (smlnj-110.69/smlnj-lib.tgz) = 60b4ffbc61ba139eac9ddf0dafd1a27efa44243d
 +Size (smlnj-110.69/smlnj-lib.tgz) = 257519 bytes
 +SHA1 (smlnj-110.69/system.tgz) = 36999858646da3d918f62630ea4126e52cbd9693
 +RMD160 (smlnj-110.69/system.tgz) = aad65d42888e6c59401013bc0f1221cea07a52dd
 +Size (smlnj-110.69/system.tgz) = 239953 bytes
 +SHA1 (smlnj-110.69/trace-debug-profile.tgz) =
 925740fade3dfde42068b65d3f3fb1afa3b47159
 +RMD160 (smlnj-110.69/trace-debug-profile.tgz) =
 c70c14b3b9c0646eb00dcc82ff5cab587c5ca7d6
 +Size (smlnj-110.69/trace-debug-profile.tgz) = 3937 bytes
 +SHA1 (patch-ab) = 178b8808702b2fa557eedff387902fce08193d90
 +SHA1 (patch-ac) = f0caa03e30e165283386914c280598967ca0c00d
 +SHA1 (patch-ad) = d68bce46fe95a1fcd0da943b6a1eba1c9f059061
 +SHA1 (patch-ae) = f7363da1f17810a8dbefb288e7db9745a2b0cd58
 +SHA1 (patch-af) = a2e343b12e37d94cfb491b161b3b1ba2d9f49291
 +SHA1 (patch-ag) = 519f444977b9268259fea86111e3be0c041e5d00
 +SHA1 (patch-ah) = 8ffc1e3aa3f24956dcffe31e2e5e65815fc1c085
 +SHA1 (patch-ai) = a5916d6da4ae31da4912c3a4f9df601abd42ddce
 +SHA1 (patch-aj) = 89c8bd510a4bb58b9c9d23b3b4b9951f4ffb54cd
 +SHA1 (patch-ak) = 571a5098d715a0ab878972f9748ec0519f9e92ef
 +SHA1 (patch-al) = f47a6e567a553d6e662921eb7c2d5d7d34f56b2d
 +SHA1 (patch-am) = a687d1764d7c1aa1be9dd9db298a280723846514
 +SHA1 (patch-an) = 8368134653bf174858c8f1ea6788d28a6caaa105
 +SHA1 (patch-ao) = d45902f9766e0a823d8b12d909f782b4bb651cb4
 +SHA1 (patch-ap) = d41f572e56873dfe1b58bf1b7b350d778fabf6d5
 +SHA1 (patch-aq) = df1c8892a836ad460afa04281f8df339524cbd9e
 +SHA1 (patch-ar) = 03173dc63610b6f1cf0aa39e2fbb864922a12c3f
 +SHA1 (patch-as) = e1e6fd0cce3a1c21f3ceabdd0720cb7fe6688126
 diff -x CVS -urN lang/smlnj.orig/files/targets lang/smlnj/files/targets
 --- lang/smlnj.orig/files/targets	2003-07-01 19:10:34.000000000 -0400
 +++ lang/smlnj/files/targets	2009-03-11 13:12:03.000000000 -0400
 @@ -1,11 +1,19 @@
 -request ml-yacc
 +request ml-ulex
 +request ml-ulex-mllex-tool
  request ml-lex
 +request ml-lex-lex-ext
 +request ml-yacc
 +request ml-yacc-grm-ext
 +request ml-antlr
 +request ml-lpt-lib
  request ml-burg
  request smlnj-lib
  request pgraph-util
 +request tdp-util
  request cml
  request cml-lib
  request eXene
 +request mlrisc
  request ckit
  #if !defined(__powerpc__)
  request ml-nlffi-lib
 @@ -13,3 +21,4 @@
  #endif
  request mlrisc-tools
  request nowhere
 +request heap2asm
 diff -x CVS -urN lang/smlnj.orig/patches/patch-aa lang/smlnj/patches/patch-aa
 --- lang/smlnj.orig/patches/patch-aa	2004-06-06 00:38:29.000000000 -0400
 +++ lang/smlnj/patches/patch-aa	1969-12-31 19:00:00.000000000 -0500
 @@ -1,71 +0,0 @@
 -$NetBSD: patch-aa,v 1.4 2004/06/06 04:38:29 snj Exp $
 -
 ---- config/targets.orig	Thu Oct 10 12:02:10 2002
 -+++ config/targets
 -@@ -41,7 +41,7 @@ request ml-lex
 -
 - # build ML-Burg
 - #
 --#request ml-burg
 -+request ml-burg
 -
 - # pre-compile and install the remaining components of the SML/NJ library
 - # (everything except smlnj-lib.cm, aka Util, itself)
 -@@ -50,7 +50,7 @@ request smlnj-lib
 -
 - # pre-compile and install CM "portable graph" utility library
 - #
 --#request pgraph-util
 -+request pgraph-util
 -
 - # pre-compile and install Concurrent ML, which is a library for
 message-passing
 - # concurrency.
 -@@ -65,12 +65,12 @@ request cml-lib
 - # pre-compile and install eXene, which is a library for X-Windows programming.
 - # EXene requires CML.
 - #
 --#request eXene
 -+request eXene
 -
 - # pre-compile and install the C-Kit, which is a library for parsing and
 - # type-checking C programs
 - #
 --#request ckit
 -+request ckit
 -
 - # pre-compile and install the ML-NLFFI Library, which is the core of
 - # a new foreign function interface (where "foreign" functions are
 -@@ -79,7 +79,7 @@ request cml-lib
 - # the new FFI.
 - # This preview release currently works only under X86/Linux.
 - #
 --#request ml-nlffi-lib
 -+request ml-nlffi-lib
 -
 - # build ML-NLFFI-Gen, a program generator tool used in conjunction with
 - # the new "NLFFI" foreign function interface.  The tool generates ML
 -@@ -87,13 +87,13 @@ request cml-lib
 - # (Requires ckit!)
 - # This preview release currently works only under X86/Linux.
 - #
 --#request ml-nlffigen
 -+request ml-nlffigen
 -
 - # pre-compile and install the MLRISC Tools library.
 - # This library is for parsing and pretty printing SML code.
 - # It's used by various MLRISC code generator generator.
 - #
 --#request mlrisc-tools
 -+request mlrisc-tools
 -
 - # Build and install the 'nowhere' program translator.
 - # This tool translates programs with conditional patterns (where clauses)
 -@@ -101,7 +101,7 @@ request cml-lib
 - # (bad) documentation.
 - # (Requires the mlrisc-tools library!)
 - #
 --#request nowhere
 -+request nowhere
 -
 - # Note: autoloading is always enabled.
 - #   In order to customize what is being pre-registered for autoloading
 diff -x CVS -urN lang/smlnj.orig/patches/patch-ab lang/smlnj/patches/patch-ab
 --- lang/smlnj.orig/patches/patch-ab	2003-07-01 19:19:13.000000000 -0400
 +++ lang/smlnj/patches/patch-ab	2009-03-11 14:32:17.000000000 -0400
 @@ -1,7 +1,7 @@
  $NetBSD: patch-ab,v 1.2 2003/07/01 23:19:13 jtb Exp $

 ---- /dev/null
 -+++ src/runtime/objs/mk.ppc-netbsd
 +--- base/runtime/objs/mk.ppc-netbsd.orig	2009-03-11 13:21:11.000000000 -0400
 ++++ base/runtime/objs/mk.ppc-netbsd
  @@ -0,0 +1,24 @@
  +# mk.ppc-netbsd
  +#
 diff -x CVS -urN lang/smlnj.orig/patches/patch-ac lang/smlnj/patches/patch-ac
 --- lang/smlnj.orig/patches/patch-ac	2003-07-01 19:19:14.000000000 -0400
 +++ lang/smlnj/patches/patch-ac	2009-03-11 14:32:17.000000000 -0400
 @@ -1,17 +1,19 @@
 -$NetBSD: patch-ac,v 1.3 2003/07/01 23:19:14 jtb Exp $
 +$NetBSD$

 ---- config/_arch-n-opsys.orig
 +--- config/_arch-n-opsys.orig	2008-08-13 14:37:59.000000000 -0400
  +++ config/_arch-n-opsys
 -@@ -106,11 +106,13 @@
 +@@ -119,12 +119,13 @@ case `uname -s` in
     NetBSD)
 -     OPSYS=netbsd
 +     case `uname -r` in
 +       2*) OPSYS=netbsd2;;
 +-      3*) OPSYS=netbsd;;
 +-      *) exit 1;;
 ++      *) OPSYS=netbsd;;
 +     esac
       HEAP_OPSYS=bsd
  -    case `uname -m` in
  +    case `uname -p` in
 -       i386) ARCH=x86;;
 -       i486) ARCH=x86;;
 -       i586) ARCH=x86;;
 -       i686) ARCH=x86;;
 +       *86) ARCH=x86;;
  +      powerpc) ARCH=ppc;;
  +      sparc) ARCH=sparc;;
         *) exit 1;;
 diff -x CVS -urN lang/smlnj.orig/patches/patch-ad lang/smlnj/patches/patch-ad
 --- lang/smlnj.orig/patches/patch-ad	2003-07-01 19:19:14.000000000 -0400
 +++ lang/smlnj/patches/patch-ad	2009-03-11 14:32:17.000000000 -0400
 @@ -1,7 +1,7 @@
  $NetBSD: patch-ad,v 1.3 2003/07/01 23:19:14 jtb Exp $

 ---- src/runtime/include/asm-base.h.orig
 -+++ src/runtime/include/asm-base.h
 +--- base/runtime/include/asm-base.h.orig	2008-12-05 12:57:39.000000000 -0500
 ++++ base/runtime/include/asm-base.h
  @@ -36,6 +36,11 @@
   #    define _ASM
   #    include <sys/stack.h>
 diff -x CVS -urN lang/smlnj.orig/patches/patch-ae lang/smlnj/patches/patch-ae
 --- lang/smlnj.orig/patches/patch-ae	2003-03-21 17:20:56.000000000 -0500
 +++ lang/smlnj/patches/patch-ae	2009-03-11 14:32:17.000000000 -0400
 @@ -1,8 +1,8 @@
  $NetBSD: patch-ae,v 1.1.1.1 2003/03/21 22:20:56 wiz Exp $

 ---- src/runtime/mach-dep/SPARC.prim.asm.orig	Fri Jun 15 15:05:19 2001
 -+++ src/runtime/mach-dep/SPARC.prim.asm
 -@@ -307,7 +307,7 @@ pending_sigs:	/* there are pending signa
 +--- base/runtime/mach-dep/SPARC.prim.asm.orig	2008-02-29
 18:09:05.000000000 -0500
 ++++ base/runtime/mach-dep/SPARC.prim.asm
 +@@ -308,7 +308,7 @@ pending_sigs:	/* there are pending signa
   	mov	ALLOCPTR,LIMITPTR	    /* (delay slot) */


 @@ -11,7 +11,7 @@
   /* ZeroLimitPtr:
    *
    * Zero the heap limit pointer so that a trap will be generated on
 the next limit
 -@@ -622,13 +622,62 @@ _ml_mul:
 +@@ -623,13 +623,62 @@ _ml_mul:
   	mov	%g1,%l1			  /* save %g1 which may get trashed */
   	mov	%g2,%l2
   	mov	%g3,%l3
 @@ -74,7 +74,7 @@
   	restore %o0,0,%o2		  /* result in %o2 (delay slot) */
   	retl
   	nop
 -@@ -642,7 +691,15 @@ _ml_mul:
 +@@ -643,7 +692,15 @@ _ml_mul:
    * locals of the new window, since .div is a leaf routine.
    */
   _ml_div:
 @@ -91,7 +91,7 @@
   	addcc	%i3,%g0,%o1		/* %o1 is divisor (and check for zero) */
   	bz	1f
   				    /* save %g1, %g2 and %g3 (using new window) */
 -@@ -650,9 +707,30 @@ _ml_div:
 +@@ -651,9 +708,30 @@ _ml_div:
   	mov	%g1,%l1			/* (delay slot) */
   	mov	%g2,%l2
   	mov	%g3,%l3
 @@ -122,7 +122,7 @@
   	mov	%l3,%g3
   	mov	%l2,%g2
   	mov	%l1,%g1
 -@@ -679,11 +757,24 @@ _ml_umul:
 +@@ -680,11 +758,24 @@ _ml_umul:
   	mov	%g2,%l2
   	mov	%g3,%l3
   	mov	%i2,%o0
 @@ -147,7 +147,7 @@
   	ret
   	restore %o0,0,%o2		  /* result in %o2 (delay slot) */

 -@@ -694,7 +785,12 @@ _ml_umul:
 +@@ -695,7 +786,12 @@ _ml_umul:
    * locals of the new window, since .div is a leaf routine.
    */
   _ml_udiv:
 @@ -161,7 +161,7 @@
   	addcc	%i3,%g0,%o1		/* %o1 is divisor (and check for zero) */
   	bz	1f
   				    /* save %g1, %g2 and %g3 (using new window) */
 -@@ -702,9 +798,23 @@ _ml_udiv:
 +@@ -703,9 +799,23 @@ _ml_udiv:
   	mov	%g1,%l1			/* (delay slot) */
   	mov	%g2,%l2
   	mov	%g3,%l3
 diff -x CVS -urN lang/smlnj.orig/patches/patch-af lang/smlnj/patches/patch-af
 --- lang/smlnj.orig/patches/patch-af	2006-03-28 16:35:27.000000000 -0500
 +++ lang/smlnj/patches/patch-af	2009-03-11 14:32:17.000000000 -0400
 @@ -1,8 +1,8 @@
 -$NetBSD: patch-af,v 1.4 2006/03/28 21:35:27 gavan Exp $
 +$NetBSD$

 ---- src/runtime/mach-dep/signal-sysdep.h.orig	2002-10-10
 19:20:04.000000000 +0100
 -+++ src/runtime/mach-dep/signal-sysdep.h
 -@@ -147,7 +147,7 @@ extern void SetFSR(int);
 +--- base/runtime/mach-dep/signal-sysdep.h.orig	2008-12-05
 12:57:39.000000000 -0500
 ++++ base/runtime/mach-dep/signal-sysdep.h
 +@@ -171,7 +171,7 @@ extern void SetFSR(int);
     /* disable all FP exceptions */
   #  define SIG_InitFPE()    SetFSR(0)

 @@ -11,66 +11,69 @@
       /** SPARC, SUNOS **/
   #    define USE_ZERO_LIMIT_PTR_FN
   #    define SIG_FAULT1		SIGFPE
 -@@ -318,6 +318,19 @@ extern void SetFSR();
 -
 - #    define SIG_Flags           0
 +@@ -340,6 +340,21 @@ extern void SetFSR();
 + #    define SIG_ResetFPE(scp)           { (scp)->regs->gpr[PT_FPSCR] = 0x0; }
 +      typedef void SigReturn_t;

  +#  elif (defined(TARGET_PPC) && defined(OPSYS_NETBSD))
  +    /* PPC, NetBSD */
  +
 -+#    define SIG_FAULT1          SIGTRAP
 ++#    define SIG_FAULT1		SIGTRAP
  +
 -+#    define INT_DIVZERO(s, c)           ((s) == SIGTRAP)
 -+#    define INT_OVFLW(s, c)             ((s) == SIGTRAP)
 -+#    define SIG_GetPC(scp)              ((scp)->sc_frame.srr0)
 -+#    define SIG_SetPC(scp, addr)        { (scp)->sc_frame.srr0 =
 (long)(addr); }
 -+#    define SIG_ZeroLimitPtr(scp)       {
 ((scp)->sc_frame.fixreg[15] = 0); } /* limitptr = 15 (see
 src/runtime/mach-dep/PPC.prim.asm) */
 -+#    define SIG_GetCode(info,scp)       (info)
 ++#    define INT_DIVZERO(s, c)		((s) == SIGTRAP)
 ++#    define INT_OVFLW(s, c)		((s) == SIGTRAP)
 ++#    define SIG_GetPC(scp)		((scp)->sc_frame.srr0)
 ++#    define SIG_SetPC(scp, addr)	{ (scp)->sc_frame.srr0 = (long)(addr); }
 ++     /* limitptr = 15 (see base/runtime/mach-dep/PPC.prim.asm) */
 ++#    define SIG_ZeroLimitPtr(scp)	{ ((scp)->sc_frame.fixreg[15] = 0); }
 ++#    define SIG_GetCode(info,scp)	(info)
  +     typedef void SigReturn_t;
  +
 -
 ++
   #  endif /* HOST_RS6000/HOST_PPC */

 -@@ -463,35 +476,15 @@ extern Addr_t *ML_X86Frame;   /* used to
 + #elif defined(HOST_HPPA)
 +@@ -452,30 +467,24 @@ extern Addr_t *ML_X86Frame;		/* used to

 - #  elif defined(OPSYS_NETBSD)
 -     /** x86, NetBSD **/
 --/* NetBSD (including versions 1.0 and 1.1) generates SIGBUS rather
 --   than SIGFPE for overflows.  The real fix is a trivial change to
 --   kernel sources, which has already been reported (NetBSD internal
 --   problem identification "port-i386/1833").
 --
 --   If you want to fix this on your NetBSD system.  Edit machdep.c in
 --   directory /sys/arch/i386/i386, and find the line
 --
 --        setgate(&idt[  4], &IDTVEC(ofl),     0, SDT_SYS386TGT, SEL_KPL);
 --
 --   Change SEL_KPL to SEL_UPL.  With SEL_KPL, the int overflow trap is
 --   not accessible at user level, and a protection fault occurs instead
 --   (thus the seg fault).  SEL_UPL will allow user processes to generate
 --   this trap.
 --
 --   For the change to take effect, recompile your kernel, install it
 --   and reboot. */
 --#    define SIG_FAULT1		SIGFPE
 +      typedef void SigReturn_t;
 +
 +-#  elif defined(OPSYS_NETBSD2)
 +-    /** x86, NetBSD (version 2.x) **/
 ++#  elif (defined(OPSYS_NETBSD2) || defined(OPSYS_NETBSD))
 ++    /** x86, NetBSD **/
 + #    define SIG_FAULT1		SIGFPE
  -#    define SIG_FAULT2		SIGBUS
  -#    define INT_DIVZERO(s, c)	0
  -#    define INT_OVFLW(s, c)	(((s) == SIGFPE) || ((s) == SIGBUS))
 --
 ++#    define INT_DIVZERO(s, c)	((s) == SIGFPE)
 ++#    define INT_OVFLW(s, c)	((s) == SIGFPE)
 +
  -#    define SIG_GetCode(info, scp)	(info)
  -#    define SIG_GetPC(scp)		((scp)->sc_pc)
  -#    define SIG_SetPC(scp, addr)	{ (scp)->sc_pc = (long)(addr); }
 -+#    define SIG_FAULT1			SIGFPE
 -+#    define INT_DIVZERO(s, c)		((s) == SIGFPE)
 -+#    define INT_OVFLW(s, c)		((s) == SIGFPE)
 -+
 +-#    define SIG_ZeroLimitPtr(scp)	{ ML_X86Frame[LIMITPTR_X86OFFSET] = 0; }
  +#    define SIG_GetCode(info, scp)	(0)
 -+#    define SIG_GetPC(scp)		((scp)->uc_mcontext.__gregs[_REG_EIP])
 -+#    define SIG_SetPC(scp,
 addr)	{(scp)->uc_mcontext.__gregs[_REG_EIP] = (long)(addr); }
 - #    define SIG_ZeroLimitPtr(scp)	{ ML_X86Frame[LIMITPTR_X86OFFSET] = 0; }

  -     typedef void SigReturn_t;
 --
 - #  elif defined(OPSYS_SOLARIS)
 -      /** x86, Solaris */
 ++#    if defined(OPSYS_NETBSD2)
 ++#      define SIG_GetPC(scp)		((scp)->sc_pc)
 ++#      define SIG_SetPC(scp, addr)	{ (scp)->sc_pc = (long)(addr); }
 ++       typedef void SigReturn_t;
 +
 +-#  elif defined(OPSYS_NETBSD)
 +-    /** x86, NetBSD (version 3.x) **/
 +-#    define SIG_FAULT1		SIGFPE
 +-#    define SIG_FAULT2		SIGBUS
 +-#    define INT_DIVZERO(s, c)	0
 +-#    define INT_OVFLW(s, c)	(((s) == SIGFPE) || ((s) == SIGBUS))
 ++#    elif defined(OPSYS_NETBSD)
 ++#      define SIG_GetPC(scp)		(_UC_MACHINE_PC(scp))
 ++#      define SIG_SetPC(scp, addr)	{ _UC_MACHINE_SET_PC(scp, ((long)
 (addr))); }
 ++#    endif
 +
 +-#    define SIG_GetCode(info, scp)	(info)
 +-#    define SIG_GetPC(scp)		(_UC_MACHINE_PC(scp))
 +-#    define SIG_SetPC(scp, addr)	{ _UC_MACHINE_SET_PC(scp, ((long) (addr))); }
 + #    define SIG_ZeroLimitPtr(scp)	{ ML_X86Frame[LIMITPTR_X86OFFSET] = 0; }

 + #  elif defined(OPSYS_OPENBSD)
 diff -x CVS -urN lang/smlnj.orig/patches/patch-ag lang/smlnj/patches/patch-ag
 --- lang/smlnj.orig/patches/patch-ag	2003-03-21 17:54:39.000000000 -0500
 +++ lang/smlnj/patches/patch-ag	2009-03-11 14:32:17.000000000 -0400
 @@ -1,7 +1,7 @@
  $NetBSD: patch-ag,v 1.2 2003/03/21 22:54:39 wiz Exp $

 ---- src/runtime/objs/mk.sparc-netbsd.orig	Thu Sep 19 03:54:01 2002
 -+++ src/runtime/objs/mk.sparc-netbsd
 +--- base/runtime/objs/mk.sparc-netbsd.orig	2009-03-11 13:21:11.000000000 -0400
 ++++ base/runtime/objs/mk.sparc-netbsd
  @@ -0,0 +1,24 @@
  +# mk.sparc-netbsd
  +#
 diff -x CVS -urN lang/smlnj.orig/patches/patch-ah lang/smlnj/patches/patch-ah
 --- lang/smlnj.orig/patches/patch-ah	2003-03-21 17:54:40.000000000 -0500
 +++ lang/smlnj/patches/patch-ah	2009-03-11 14:32:17.000000000 -0400
 @@ -1,6 +1,6 @@
 -$NetBSD: patch-ah,v 1.1 2003/03/21 22:54:40 wiz Exp $
 +$NetBSD$

 ---- config/_link-sml.orig	Thu Oct 17 02:44:32 2002
 +--- config/_link-sml.orig	2005-01-03 16:13:16.000000000 -0500
  +++ config/_link-sml
  @@ -17,6 +17,7 @@ unset ENV
   #
 @@ -9,4 +9,4 @@
  +SMLNJ_HOME="${SMLNJ_HOME:-@SML_BASE@}"

   # the path of the directory in which executables (like this file) are kept.
 - if [ x${SMLNJ_HOME} = x ] ; then
 + if [ x"$SMLNJ_HOME" = x ] ; then
 diff -x CVS -urN lang/smlnj.orig/patches/patch-ai lang/smlnj/patches/patch-ai
 --- lang/smlnj.orig/patches/patch-ai	2003-03-21 17:54:40.000000000 -0500
 +++ lang/smlnj/patches/patch-ai	2009-03-11 14:32:17.000000000 -0400
 @@ -1,6 +1,6 @@
 -$NetBSD: patch-ai,v 1.1 2003/03/21 22:54:40 wiz Exp $
 +$NetBSD$

 ---- config/_ml-build.orig	Thu Oct 17 02:44:32 2002
 +--- config/_ml-build.orig	2007-02-12 16:05:27.000000000 -0500
  +++ config/_ml-build
  @@ -1,5 +1,7 @@
   #!@SHELL@
 @@ -8,5 +8,5 @@
  +SMLNJ_HOME="${SMLNJ_HOME:-@SML_BASE@}"
  +
   if [ x${SMLNJ_HOME} = x ] ; then
 -     BIN_DIR=@BINDIR@
 - else
 +     BIN_DIR="@BINDIR@"
 +     LIB_DIR="@LIBDIR@"
 diff -x CVS -urN lang/smlnj.orig/patches/patch-aj lang/smlnj/patches/patch-aj
 --- lang/smlnj.orig/patches/patch-aj	2003-03-21 17:54:41.000000000 -0500
 +++ lang/smlnj/patches/patch-aj	2009-03-11 14:32:17.000000000 -0400
 @@ -1,6 +1,6 @@
 -$NetBSD: patch-aj,v 1.1 2003/03/21 22:54:41 wiz Exp $
 +$NetBSD$

 ---- config/_ml-makedepend.orig	Thu Oct 17 02:44:32 2002
 +--- config/_ml-makedepend.orig	2008-03-27 15:23:09.000000000 -0400
  +++ config/_ml-makedepend
  @@ -1,5 +1,7 @@
   #!@SHELL@
 @@ -8,5 +8,5 @@
  +SMLNJ_HOME="${SMLNJ_HOME:-@SML_BASE@}"
  +
   if [ x${SMLNJ_HOME} = x ] ; then
 -     BIN_DIR=@BINDIR@
 +     BIN_DIR="@BINDIR@"
   else
 diff -x CVS -urN lang/smlnj.orig/patches/patch-ak lang/smlnj/patches/patch-ak
 --- lang/smlnj.orig/patches/patch-ak	2003-03-21 17:54:41.000000000 -0500
 +++ lang/smlnj/patches/patch-ak	2009-03-11 14:32:17.000000000 -0400
 @@ -1,6 +1,6 @@
 -$NetBSD: patch-ak,v 1.1 2003/03/21 22:54:41 wiz Exp $
 +$NetBSD$

 ---- config/_run-sml.orig	Thu Oct 17 02:44:32 2002
 +--- config/_run-sml.orig	2004-12-17 16:12:23.000000000 -0500
  +++ config/_run-sml
  @@ -19,6 +19,7 @@ unset ENV
   #
 @@ -8,5 +8,5 @@
   #
  +SMLNJ_HOME="${SMLNJ_HOME:-@SML_BASE@}"

 - # the path of the directory in which executables (like this file) are kept.
 - if [ x${SMLNJ_HOME} = x ] ; then
 + # On cygwin, make sure SMLNJ_HOME is given a POSIX-style pathname.
 + if [ x"$SMLNJ_HOME" != x ] ; then
 diff -x CVS -urN lang/smlnj.orig/patches/patch-al lang/smlnj/patches/patch-al
 --- lang/smlnj.orig/patches/patch-al	2004-06-06 00:38:29.000000000 -0400
 +++ lang/smlnj/patches/patch-al	2009-03-11 14:32:17.000000000 -0400
 @@ -1,15 +1,13 @@
 -$NetBSD: patch-al,v 1.3 2004/06/06 04:38:29 snj Exp $
 +$NetBSD$

 ---- src/runtime/objs/mk.x86-netbsd.orig	2000-11-06 13:41:04.000000000 -0800
 -+++ src/runtime/objs/mk.x86-netbsd	2004-06-05 21:16:03.000000000 -0700
 -@@ -9,8 +9,8 @@ MAKE =		gmake
 +--- base/runtime/objs/mk.x86-netbsd.orig	2006-02-10 17:14:59.000000000 -0500
 ++++ base/runtime/objs/mk.x86-netbsd
 +@@ -9,7 +9,7 @@ MAKE =		gmake

   ARFLAGS =	Trcv
   CC =		gcc -ansi
  -CFLAGS =	-O2
 --CPP =		gcc -x c -E -P -ansi
  +CFLAGS =	@CFLAGS@
 -+CPP =		gcc -x assembler-with-cpp -E -P
 + CPP =		gcc -x assembler-with-cpp -E -P
   #CPP =		/usr/bin/cpp -P

 - XOBJS =
 diff -x CVS -urN lang/smlnj.orig/patches/patch-am lang/smlnj/patches/patch-am
 --- lang/smlnj.orig/patches/patch-am	2003-03-21 17:54:42.000000000 -0500
 +++ lang/smlnj/patches/patch-am	2009-03-11 14:32:17.000000000 -0400
 @@ -1,7 +1,7 @@
  $NetBSD: patch-am,v 1.1 2003/03/21 22:54:42 wiz Exp $

 ---- src/runtime/objs/mk.sparc-solaris.orig	Fri Jun 15 15:05:19 2001
 -+++ src/runtime/objs/mk.sparc-solaris
 +--- base/runtime/objs/mk.sparc-solaris.orig	2001-06-15 15:05:19.000000000 -0400
 ++++ base/runtime/objs/mk.sparc-solaris
  @@ -8,7 +8,7 @@ AS =		/usr/ccs/bin/as
   AR =		/usr/ccs/bin/ar
   GCC =		gcc
 diff -x CVS -urN lang/smlnj.orig/patches/patch-an lang/smlnj/patches/patch-an
 --- lang/smlnj.orig/patches/patch-an	2003-03-21 17:54:43.000000000 -0500
 +++ lang/smlnj/patches/patch-an	2009-03-11 14:32:17.000000000 -0400
 @@ -1,7 +1,7 @@
  $NetBSD: patch-an,v 1.1 2003/03/21 22:54:43 wiz Exp $

 ---- src/runtime/objs/mk.sparc-sunos.orig	Thu Jun  1 14:33:52 2000
 -+++ src/runtime/objs/mk.sparc-sunos
 +--- base/runtime/objs/mk.sparc-sunos.orig	2000-06-01 14:34:03.000000000 -0400
 ++++ base/runtime/objs/mk.sparc-sunos
  @@ -4,7 +4,7 @@
   SHELL		= /bin/sh

 diff -x CVS -urN lang/smlnj.orig/patches/patch-ao lang/smlnj/patches/patch-ao
 --- lang/smlnj.orig/patches/patch-ao	2003-07-01 19:19:14.000000000 -0400
 +++ lang/smlnj/patches/patch-ao	2009-03-11 14:32:17.000000000 -0400
 @@ -1,8 +1,8 @@
  $NetBSD: patch-ao,v 1.2 2003/07/01 23:19:14 jtb Exp $

 ---- src/runtime/kernel/boot.c.orig
 -+++ src/runtime/kernel/boot.c
 -@@ -124,7 +124,7 @@
 +--- base/runtime/kernel/boot.c.orig	2005-11-02 17:24:39.000000000 -0500
 ++++ base/runtime/kernel/boot.c
 +@@ -130,7 +130,7 @@ PVT ml_val_t BuildFileList (ml_state_t *
       ml_val_t	fileList;
   # define SIZE_BUF_LEN	128	/* this should be plenty for two numbers */
       char        sizeBuf[SIZE_BUF_LEN];
 diff -x CVS -urN lang/smlnj.orig/patches/patch-ap lang/smlnj/patches/patch-ap
 --- lang/smlnj.orig/patches/patch-ap	2003-07-01 19:19:14.000000000 -0400
 +++ lang/smlnj/patches/patch-ap	2009-03-11 14:32:17.000000000 -0400
 @@ -1,7 +1,7 @@
  $NetBSD: patch-ap,v 1.2 2003/07/01 23:19:14 jtb Exp $

 ---- src/runtime/include/cache-flush.h.orig
 -+++ src/runtime/include/cache-flush.h
 +--- base/runtime/include/cache-flush.h.orig	2001-04-20 09:26:46.000000000 -0400
 ++++ base/runtime/include/cache-flush.h
  @@ -40,7 +40,7 @@
   extern FlushICache (void *addr, int nbytes);

 diff -x CVS -urN lang/smlnj.orig/patches/patch-aq lang/smlnj/patches/patch-aq
 --- lang/smlnj.orig/patches/patch-aq	2003-07-01 19:19:14.000000000 -0400
 +++ lang/smlnj/patches/patch-aq	2009-03-11 14:32:17.000000000 -0400
 @@ -1,8 +1,8 @@
  $NetBSD: patch-aq,v 1.2 2003/07/01 23:19:14 jtb Exp $

 ---- src/runtime/mach-dep/PPC.prim.asm.orig
 -+++ src/runtime/mach-dep/PPC.prim.asm
 -@@ -813,7 +813,7 @@
 +--- base/runtime/mach-dep/PPC.prim.asm.orig	2005-05-03 13:26:49.000000000 -0400
 ++++ base/runtime/mach-dep/PPC.prim.asm
 +@@ -846,7 +846,7 @@ CENTRY(RestoreFPRegs)
   	lfd	f31, 136(r3)
   	blr

 diff -x CVS -urN lang/smlnj.orig/patches/patch-ar lang/smlnj/patches/patch-ar
 --- lang/smlnj.orig/patches/patch-ar	2006-03-28 16:35:27.000000000 -0500
 +++ lang/smlnj/patches/patch-ar	2009-03-11 14:32:17.000000000 -0400
 @@ -1,9 +1,9 @@
 -$NetBSD: patch-ar,v 1.1 2006/03/28 21:35:27 gavan Exp $
 +$NetBSD$

 ---- src/runtime/include/ml-unixdep.h.orig	2002-10-12 02:03:50.000000000 +0100
 -+++ src/runtime/include/ml-unixdep.h
 -@@ -309,14 +309,14 @@ extern char     *sys_errlist[];
 - #elif defined(OPSYS_NETBSD)
 +--- base/runtime/include/ml-unixdep.h.orig	2008-12-05 12:57:39.000000000 -0500
 ++++ base/runtime/include/ml-unixdep.h
 +@@ -323,7 +323,7 @@ extern char     *sys_errlist[];
 + #elif defined(OPSYS_NETBSD) /* version 3.x */
   #  define OS_NAME	"BSD"
   #  define HAS_POSIX_LIBRARIES
  -#  define HAS_BSD_SIGS
 @@ -11,11 +11,3 @@
   #  define HAS_GETRUSAGE
   #  define HAS_SETITIMER
   #  define HAS_MMAP
 - #  define HAS_SELECT
 - #  define HAS_SCALBN
 - #  define HAS_ILOGB
 --#  define HAS_SIGCONTEXT
 -+#  define HAS_UCONTEXT
 - #  define HAS_STRERROR
 -
 - #endif
 diff -x CVS -urN lang/smlnj.orig/patches/patch-as lang/smlnj/patches/patch-as
 --- lang/smlnj.orig/patches/patch-as	1969-12-31 19:00:00.000000000 -0500
 +++ lang/smlnj/patches/patch-as	2009-03-11 14:32:17.000000000 -0400
 @@ -0,0 +1,12 @@
 +$NetBSD$
 +
 +--- config/_heap2exec.orig	2006-04-20 11:28:53.000000000 -0400
 ++++ config/_heap2exec
 +@@ -1,5 +1,7 @@
 + #!@SHELL@
 +
 ++SMLNJ_HOME="${SMLNJ_HOME:-@SML_BASE@}"
 ++
 + CMD=`basename "$0"`
 +
 + usage() {

From: Christopher Richards <richards@CS.Princeton.EDU>
To: asau@netbsd.org
Cc: gnats-bugs@gnats.netbsd.org
Subject: Re: pkg/40954 lang/smlnj broken with 64-bit time_t
Date: Mon, 23 Mar 2009 21:52:43 -0400

 Hi, I noticed your recent commit message mentioning that SML/NJ 110.69
 was in WIP. Would you mind reviewing the patch I submitted (at
 <http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=40954>) which
 also brings the package up to 110.69? It's possible one or the other
 is sufficient to close the PR.

 Thanks,
 Chris

From: David Holland <dholland-pbugs@netbsd.org>
To: Christopher Richards <richards@CS.Princeton.EDU>
Cc: gnats-bugs@netbsd.org
Subject: Re: pkg/40954: lang/smlnj broken with 64-bit time_t
Date: Sat, 19 Sep 2009 09:24:43 +0000

 On Wed, Mar 11, 2009 at 10:35:01PM +0000, Christopher Richards wrote:
  >  The attached patch solves the lang/smlnj build failure under 64-bit
  >  time_t, by way of updating the package from version 110.42 (vintage
  >  2002) to 110.69, the most recent "working" version. In SML/NJ
  >  parlance, the "working" version is the stable release, and the
  >  "stable" version is the haunted-mansion, nobody-goes-there release. I
  >  could not begin to summarize the six years of changes this update
  >  entails.
  >  
  >  This new version survives the build and appears to function correctly
  >  (as tested on NetBSD/xen, -current as of 2009-03-06), but the runtime
  >  still assumes a 32-bit time_t, and will still lose beginning in 2038.

 So I finally got around to trying it (sorry it took so long...) and it
 builds and installs ok, given the modernization of removing @dirrm
 from the PLIST.

 But, it breaks lang/twelf. The compile thereof gives

 	src/timing/timing.sml:83.26-84.38 Error: operator and operand don't
 	agree [tycon mismatch]
 	  operator domain: {gc:Time.time, sys:Time.time, usr:Time.time} *
 	                   {gc:Time.time, sys:Time.time, usr:Time.time}
 	  operand:         {gc:Time.time, sys:Time.time, usr:Time.time} *
 	                   {sys:Time.time, usr:Time.time}
 	  in expression:
 	    plus (CPUTime,evalCPUTime)
 	val it = false : bool
 	stdIn:6.45-6.58 Error: unbound structure: Server in path Server.server

 The build doesn't stop, but twelf-server doesn't get (fully?)
 installed, resulting in this behavior at runtime:

 	/usr/pkg/bin/sml: Fatal error -- unable to open heap image
 	"/usr/pkg/lib/twelf/bin/.heap/twelf-server"

 	Config.read sources.cfg

 	Process twelf-server exited abnormally with code 1

 Do you know how to go about fixing this? Since twelf is the only thing
 in pkgsrc that uses smlnj, I'm a bit reluctant to commit the update
 without fixing it as well.

 (It would also be nice sometime to set up a proper buildlink3 for
 smlnj instead of using a Makefile.common, but that's not entirely
 trivial and not really a priority.)

 -- 
 David A. Holland
 dholland@netbsd.org

From: David Holland <dholland@eecs.harvard.edu>
To: gnats-bugs@NetBSD.org, richards@cs.princeton.edu
Cc: 
Subject: Re: pkg/40954: lang/smlnj broken with 64-bit time_t
Date: Mon, 21 Sep 2009 19:19:39 -0400

 ok, so I tried twelf 1.5R1, and it doesn't compile either, but in a
 different way:

 [compiling (sources.cm):src/frontend/(sources.cm):../flit/(sources.cm):flit.sml]
 src/flit/flit.sml:4.26-4.38 Error: unbound structure: Pack32Little
 src/flit/flit.sml:2.3-10.36 Error: unmatched structure specification: Pack
 val it = false : bool
 stdIn:6.37-6.48 Error: unbound structure: Timing in path Timing.init
 stdIn:6.14-6.27 Error: unbound structure: Twelf in path Twelf.version

 (It also doesn't stop on error.)

 -- 
    - David A. Holland / dholland@eecs.harvard.edu

State-Changed-From-To: open->feedback
State-Changed-By: wiz@NetBSD.org
State-Changed-When: Sun, 21 Feb 2010 16:24:09 +0000
State-Changed-Why:
smlnj is now at 110.72, which should fix this bug. Correct?


State-Changed-From-To: feedback->open
State-Changed-By: asau@NetBSD.org
State-Changed-When: Sun, 21 Feb 2010 16:32:54 +0000
State-Changed-Why:
Almost nothing was changed in the recent release.
"We're working on it."(tm)


From: David Holland <dholland@eecs.harvard.edu>
To: gnats-bugs@NetBSD.org
Cc: wiz@NetBSD.org
Subject: Re: pkg/40954 (lang/smlnj broken with 64-bit time_t)
Date: Mon, 22 Feb 2010 13:53:02 -0500

 On Sun, Feb 21, 2010 at 04:24:10PM +0000, wiz@NetBSD.org wrote:
  > smlnj is now at 110.72, which should fix this bug. Correct?

 Does twelf build now? That was the remaining issue.

 -- 
    - David A. Holland / dholland@eecs.harvard.edu

From: Thomas Klausner <wiz@NetBSD.org>
To: David Holland <dholland@eecs.harvard.edu>
Cc: gnats-bugs@NetBSD.org
Subject: Re: pkg/40954 (lang/smlnj broken with 64-bit time_t)
Date: Mon, 22 Feb 2010 23:01:25 +0100

 On Mon, Feb 22, 2010 at 01:53:02PM -0500, David Holland wrote:
 > On Sun, Feb 21, 2010 at 04:24:10PM +0000, wiz@NetBSD.org wrote:
 >  > smlnj is now at 110.72, which should fix this bug. Correct?
 > 
 > Does twelf build now? That was the remaining issue.

 Sorry, don't know, only have 64bit platforms where it's masked.
 asau seems to think nothing has changed, so I'll trust him on that.
  Thomas

State-Changed-From-To: open->closed
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Mon, 29 Dec 2014 08:34:26 +0000
State-Changed-Why:
smlnj got more or less fixed, and I no longer care about twelf.


State-Changed-From-To: closed->open
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Thu, 14 Apr 2016 13:06:31 +0000
State-Changed-Why:
these patches are still needed after all (plus one more)
(and that's just a starting point)


From: "David A. Holland" <dholland@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/40954 CVS commit: pkgsrc/lang/smlnj
Date: Thu, 14 Apr 2016 21:58:22 +0000

 Module Name:	pkgsrc
 Committed By:	dholland
 Date:		Thu Apr 14 21:58:22 UTC 2016

 Modified Files:
 	pkgsrc/lang/smlnj: Makefile distinfo
 Added Files:
 	pkgsrc/lang/smlnj/patches: patch-base_runtime_gc_gc-stats.h
 	    patch-base_runtime_gc_init-gc.c
 	    patch-base_runtime_kernel_unix-timers.c
 	    patch-base_runtime_mach-dep_unix-prof.c
 	    patch-src_runtime_gc_gc-stats.h patch-src_runtime_gc_init-gc.c
 	    patch-src_runtime_kernel_unix-timers.c
 	    patch-src_runtime_mach-dep_unix-prof.c

 Log Message:
 Use struct timeval instead of blithely assuming that some private
 struct declaration is always bit compatible with it. (Because it
 isn't.) My patches from PR 40954 circa 2009, which it turns out is
 still relevant even after the last couple updates. (Just for some
 reason it had stopped crashing.)

 This does not make smlnj build for me, but it gets further than it
 used to.


 To generate a diff of this commit:
 cvs rdiff -u -r1.24 -r1.25 pkgsrc/lang/smlnj/Makefile
 cvs rdiff -u -r1.16 -r1.17 pkgsrc/lang/smlnj/distinfo
 cvs rdiff -u -r0 -r1.1 \
     pkgsrc/lang/smlnj/patches/patch-base_runtime_gc_gc-stats.h \
     pkgsrc/lang/smlnj/patches/patch-base_runtime_gc_init-gc.c \
     pkgsrc/lang/smlnj/patches/patch-base_runtime_kernel_unix-timers.c \
     pkgsrc/lang/smlnj/patches/patch-base_runtime_mach-dep_unix-prof.c \
     pkgsrc/lang/smlnj/patches/patch-src_runtime_gc_gc-stats.h \
     pkgsrc/lang/smlnj/patches/patch-src_runtime_gc_init-gc.c \
     pkgsrc/lang/smlnj/patches/patch-src_runtime_kernel_unix-timers.c \
     pkgsrc/lang/smlnj/patches/patch-src_runtime_mach-dep_unix-prof.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->closed
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Thu, 14 Apr 2016 22:21:58 +0000
State-Changed-Why:
committed


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2014 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.