Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 199 invoked from network); 24 Aug 2006 14:18:14 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 24 Aug 2006 14:18:14 -0000 Received: (qmail 3079 invoked by uid 500); 24 Aug 2006 14:18:13 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 3055 invoked by uid 500); 24 Aug 2006 14:18:13 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 3046 invoked by uid 99); 24 Aug 2006 14:18:13 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 24 Aug 2006 07:18:13 -0700 X-ASF-Spam-Status: No, hits=0.1 required=10.0 tests=HTML_MESSAGE,HTML_TAG_EXIST_TBODY,UNPARSEABLE_RELAY X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [192.18.1.36] (HELO gmpea-pix-1.sun.com) (192.18.1.36) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 24 Aug 2006 07:18:11 -0700 Received: from d1-emea-09.sun.com (d1-emea-09.sun.com [192.18.2.119] (may be forged)) by gmpea-pix-1.sun.com (8.13.6+Sun/8.12.9) with ESMTP id k7OEHnj8016642 for ; Thu, 24 Aug 2006 15:17:49 +0100 (BST) Received: from conversion-daemon.d1-emea-09.sun.com by d1-emea-09.sun.com (Sun Java System Messaging Server 6.2-4.02 (built Sep 9 2005)) id <0J4I00I01A90TV00@d1-emea-09.sun.com> (original mail from John.Embretsen@Sun.COM) for derby-dev@db.apache.org; Thu, 24 Aug 2006 15:17:49 +0100 (BST) Received: from [129.159.112.236] by d1-emea-09.sun.com (Sun Java System Messaging Server 6.2-4.02 (built Sep 9 2005)) with ESMTPSA id <0J4I00KSHADH9EM8@d1-emea-09.sun.com> for derby-dev@db.apache.org; Thu, 24 Aug 2006 15:17:42 +0100 (BST) Date: Thu, 24 Aug 2006 16:14:08 +0200 From: John Embretsen Subject: JUnit 3.8.2 has better (?) String diffs (was: Re: [jira] Commented: (DERBY-1417) Add new, lengthless overloads to the streaming api) In-reply-to: <6904144.1156402235678.JavaMail.jira@brutus> Sender: John.Embretsen@Sun.COM To: derby-dev@db.apache.org Reply-to: derby-dev@db.apache.org Message-id: <44EDB430.6030705@Sun.COM> MIME-version: 1.0 Content-type: multipart/mixed; boundary="Boundary_(ID_fXWXwMGc49/VT0umsMidBA)" References: <6904144.1156402235678.JavaMail.jira@brutus> User-Agent: Thunderbird 1.5.0.5 (X11/20060730) X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N This is a multi-part message in MIME format. --Boundary_(ID_fXWXwMGc49/VT0umsMidBA) Content-type: text/plain; format=flowed; charset=UTF-8 Content-transfer-encoding: 7BIT FYI: JUnit 3.8.2, which was released late last year, includes a number of bugfixes and small improvements from the version that is currently officially supported by our test harness, 3.8.1. The most noticeable improvement is a change to the String comparison format. For example, with JUnit 3.8.1, if we compare two SQLStates that are almost the same, but not quite, JUnit will report something like this (don't mind the actual failure, I simply tweaked the test to make a point): > There was 1 failure: > 1) testStatementExecuteAfterConnectionClose(org.apache.derbyTesting.functionTests.tests.jdbc4.StatementTest)junit.framework.ComparisonFailure: Unexpected SQL state for performing operations on a closed statement. expected:<...6> but was:<...3> > FAILURES!!! It is hard to see what the SQLState we actually got was, and further debugging is required. With JUnit 3.8.2, this is what we'll see instead: > There was 1 failure: > 1) testStatementExecuteAfterConnectionClose(org.apache.derbyTesting.functionTests.tests.jdbc4.StatementTest)junit.framework.ComparisonFailure: Unexpected SQL state for performing operations on a closed statement. expected:<0800[6]> but was:<0800[3]> > FAILURES!!! The rest of 3.8.2 is , AFAIK, compatible with 3.8.1. JUnit 3.8.2 can be downloaded from http://sourceforge.net/project/showfiles.php?group_id=15278 (scroll down past the 4.1 release). I'm attaching the changelog, since I downloaded it some months ago and I am not able to find it online any longer. Try it out if you want. Perhaps we should start recommending JUnit 3.8.2 instead of 3.8.1? -- John Knut Anders Hatlen (JIRA) wrote: > [ http://issues.apache.org/jira/browse/DERBY-1417?page=comments#action_12430163 ] > > Knut Anders Hatlen commented on DERBY-1417: > ------------------------------------------- > > Hi Kristian, I tried to run derbyall with the 8a patch and the patch for DERBY-1473. I see this error: > > *** End: TestQueryObject jdk1.6.0-rc jdbc40:jdbc40 2006-08-24 00:50:02 *** > ********* Diff file jdbc40/jdbc40/PreparedStatementTest.diff > *** Start: PreparedStatementTest jdk1.6.0-rc jdbc40:jdbc40 2006-08-24 00:51:29 *** > 0 add >> ................................F......... >> There was 1 failure: >> 1) testSetBinaryStreamLengthLessOnBlobTooLong(org.apache.derbyTesting.functionTests.tests.jdbc4.PreparedStatementTest)junit.framework.ComparisonFailure: Unexpected SQL state. expected:<...CL30> but was:<...SDA4> >> FAILURES!!! >> Tests run: 82, Failures: 1, Errors: 0 > Test Failed. > *** End: PreparedStatementTest jdk1.6.0-rc jdbc40:jdbc40 2006-08-24 00:51:34 *** --Boundary_(ID_fXWXwMGc49/VT0umsMidBA) Content-type: text/html; name=junit382.html Content-transfer-encoding: BASE64 Content-disposition: inline; filename=junit382.html PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFu c2l0aW9uYWwvL2VuIj4gPGh0bWw+IDxoZWFkPiA8bWV0YSBodHRwLWVxdWl2PSJD b250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1 OS0xIj4gPG1ldGEgbmFtZT0iR0VORVJBVE9SIiBjb250ZW50PSJNaWNyb3NvZnQg RnJvbnRQYWdlIDQuMCI+IDxtZXRhIG5hbWU9IkF1dGhvciIgY29udGVudD0iRXJp Y2ggR2FtbWEgJmFtcDsgS2VudCBCZWNrIj4gPHRpdGxlPkpVbml0IDMuODwvdGl0 bGU+IDwvaGVhZD4gPGJvZHk+IDxoMT4gPGI+PGZvbnQgY29sb3I9IiMwMGNjMDAi Pko8L2ZvbnQ+PGZvbnQgY29sb3I9IiNmZjAwMDAiPlU8L2ZvbnQ+PGZvbnQgY29s b3I9IiMwMDAwMDAiPm5pdCAzLjguMjwvZm9udD48L2I+PC9oMT4gPGhyIHdpZHRo PSIxMDAlIj4gPGZvbnQgY29sb3I9IiMwMDAwMDAiPjxicj4gMTEvMTEvMjAwNDxi cj4gPC9mb250PiA8dWw+IDxsaT48Zm9udCBjb2xvcj0iIzAwMDAwMCI+PGEgaHJl Zj0iI1N1bW1hcnklMjBvZiI+U3VtbWFyeSBvZiBDaGFuZ2VzPC9hPjwvZm9udD48 L2xpPiA8bGk+IDxmb250IGNvbG9yPSIjMDAwMDAwIj48YSBocmVmPSIjQ29udGVu dHMiPkNvbnRlbnRzPC9hPjwvZm9udD48L2xpPiA8bGk+IDxmb250IGNvbG9yPSIj MDAwMDAwIj48YSBocmVmPSIjSW5zdGFsbGF0aW9uIj5JbnN0YWxsYXRpb248L2E+ PC9mb250PjwvbGk+IDxsaT4gPGZvbnQgY29sb3I9IiMwMDAwMDAiPjxhIGhyZWY9 IiNHZXR0aW5nIj5HZXR0aW5nIFN0YXJ0ZWQ8L2E+PC9mb250PjwvbGk+IDxsaT4g PGZvbnQgY29sb3I9IiMwMDAwMDAiPjxhIGhyZWY9IiNEb2N1bWVudGF0aW9uIj5E b2N1bWVudGF0aW9uPC9hPjwvZm9udD48L2xpPiA8L3VsPiA8aDI+IDxmb250Pjxh IG5hbWU9IlN1bW1hcnkgb2YiPjwvYT48Zm9udCBjb2xvcj0iIzAwMDAwMCI+U3Vt bWFyeSBvZiBDaGFuZ2VzIGJldHdlZW4gMy44LjEgYW5kIDMuOC4yPC9mb250Pjwv Zm9udD48L2gyPiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+VGhlIGNoYW5nZXMgYmV0 d2VlbiB0aGUgdmVyc2lvbnMgYXJlIG1pbmltYWwgYW5kIHRoZSBmb2N1cyB3YXMg b24gZml4aW5nIHRoZSBhY2N1bXVsYXRlZCBidWcgcmVwb3J0cy4gVGhlIG1vc3Qg c2lnbmlmYW5jdCBjaGFuZ2UgaXMgcmVwbGFjaW5nIHRoZSBtdWNoLXJldmlsZWQg c3RyaW5nIGNvbXBhcmlzb24gZm9ybWF0IHdpdGggc29tZXRoaW5nIGVhc2llciB0 byByZWFkIGFuZCB1c2UuPGJyPiA8L2ZvbnQ+IDx1bD4gPGxpPkNvbXBhcmlzb25G YWlsdXJlIHNob3dzIGNvbnRleHQuJm5ic3A7IDxicj4gPC9saT4gPHVsPiA8bGk+ YXNzZXJ0RXF1YWxzKCJNYXJ5IGhhZCBhIGxpdHRsZSBsYW1iIiwgIk1hcnkgaGFk IHRoZSBsaXR0bGUgbGFtYiIpIHNob3dzOiBleHBlY3RlZDombHQ7TWFyeSBoYWQg W2FdIGxpdHRsZSBsYW1iJmd0OyBidXQgd2FzOiZsdDtNYXJ5IGhhZCBbdGhlXSBs aXR0bGUgbGFtYiZndDs8YnI+IExvbmdlciBwcmVmaXhlcyBhbmQgc3VmZml4ZXMg YXJlIHRydW5jYXRlZCB0byBhIGZpeGVkIHNpemUgKGN1cnJlbnRseSAyMCk6PC9s aT4gPGxpPmV4cGVjdGVkOiZsdDsuLi5zdCBvZiB0aGUgZW1lcmdlbmN5IFticm9h ZGNhc3RpbmddIHN5c3RlbSZndDsgYnV0IHdhczombHQ7Li4uc3Qgb2YgdGhlIGVt ZXJnZW5jeSBbbG9jYXRpbmddIHN5c3RlbSZndDs8YnI+IDwvbGk+IDwvdWw+IDxs aT48Zm9udCBjb2xvcj0iIzAwMDAwMCI+UnVubmluZyBzaW5nbGUgdGVzdHMuJm5i c3A7IGp1bml0LnVpLlRlc3RSdW5uZXIgY2FuIGJlIGludm9rZWQgd2l0aCAiLW08 L2ZvbnQ+IENsYXNzTmFtZS50ZXN0TmFtZSIgdG8gcnVuIGEgc2luZ2xlIHRlc3Qu PC9saT4gPGxpPlRlc3RTdWl0ZShDbGFzc1tdKS4mbmJzcDsgVGhlcmUgaXMgYSBu ZXcgVGVzdFN1aXRlIGNvbnN0cnVjdG9yIHRoYXQgdGFrZXMgYW4gYXJyYXkgb2Yg Y2xhc3NlcyBhcyBhIHBhcmFtZXRlciBhbmQgcmV0dXJucyBhIHN1aXRlIG9mIHN1 aXRlcywgZWFjaCBvZiB3aGljaCBpcyBjb25zdHJ1Y3RlZCBmcm9tIGEgc2luZ2xl IGNsYXNzLjwvbGk+IDwvdWw+IDxoMz48Zm9udD48Zm9udCBjb2xvcj0iIzAwMDAw MCI+Q2xvc2VkIEJ1Z3MvUGF0Y2hlcyBhbmQgRW5oYW5jbWVudCBSZXF1ZXN0czxi cj4gPC9mb250PjwvZm9udD48L2gzPiA8dWw+IDxsaT48YSBocmVmPSJodHRwOi8v c291cmNlZm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFt cDthaWQ9Njk4MDY3JmFtcDtncm91cF9pZD0xNTI3OCZhbXA7YXRpZD0xMTUyNzgi PmFzc2VydEVxdWFscyhmbG9hdCxmbG9hdCxkZWx0YSkgZmFpbHMgb24gbmVnYXRp dmUgZGVsdGE8L2E+PC9saT4gPGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3Jn ZS5uZXQvdHJhY2tlci9pbmRleC5waHA/ZnVuYz1kZXRhaWwmYW1wO2FpZD02MDk5 NzImYW1wO2dyb3VwX2lkPTE1Mjc4JmFtcDthdGlkPTExNTI3OCI+Jy4uLicgaW4g Q29tcGFyaXNvbkZhaWx1cmU8L2E+PC9saT4gPGxpPjxhIGhyZWY9Imh0dHA6Ly9z b3VyY2Vmb3JnZS5uZXQvdHJhY2tlci9pbmRleC5waHA/ZnVuYz1kZXRhaWwmYW1w O2FpZD00NjE1MzUmYW1wO2dyb3VwX2lkPTE1Mjc4JmFtcDthdGlkPTExNTI3OCI+ VHJvdWJsZSBpbiB0ZWFyZG93biBoaWRlcyBvcmlnLiBwcm9ibC48L2E+PC9saT4g PGxpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci9pbmRl eC5waHA/ZnVuYz1kZXRhaWwmYW1wO2FpZD02MDk4MTkmYW1wO2dyb3VwX2lkPTE1 Mjc4JmFtcDthdGlkPTExNTI3OCI+TmFOJ3MgaW4gYXNzZXJ0RXF1YWxzPC9hPjwv bGk+IDxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIv aW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFtcDthaWQ9NjIwMDM5JmFtcDtncm91cF9p ZD0xNTI3OCZhbXA7YXRpZD0xMTUyNzgiPkJhc2VUZXN0UnVubmVyLnNldFByZWZl cmVuY2Ugc3RhdGljPC9hPjwvbGk+IDxsaT48YSBocmVmPSJodHRwOi8vc291cmNl Zm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFtcDthaWQ9 NjU4MDQ0JmFtcDtncm91cF9pZD0xNTI3OCZhbXA7YXRpZD0xMTUyNzgiPmZhaWxO b3RFcXVhbHMoKSBzaG91bGQgYmUgcHJvdGVjdGVkPC9hPjwvbGk+IDxsaT48YSBo cmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1 bmM9ZGV0YWlsJmFtcDthaWQ9Nzc3MDk3JmFtcDtncm91cF9pZD0xNTI3OCZhbXA7 YXRpZD0xMTUyNzgiPlJGRTogbWFrZSBwcml2YXRlIG1ldGhvZHMgcHJvdGVjdGVk PC9hPjwvbGk+IDxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Ry YWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFtcDthaWQ9NjU0NTA3JmFtcDtn cm91cF9pZD0xNTI3OCZhbXA7YXRpZD0zNjUyNzgiPlByaW50aW5nIHZlcnNpb24g bnVtYmVyPC9hPjwvbGk+IDxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2Uu bmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFtcDthaWQ9OTkzMTUw JmFtcDtncm91cF9pZD0xNTI3OCZhbXA7YXRpZD0zMTUyNzgiPlBhdGNoIHRvIHF1 ZWxsIHdhcm5pbmdzIGluIHRpZ2VyPC9hPjwvbGk+IDxsaT48YSBocmVmPSJodHRw Oi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWls JmFtcDthaWQ9NjU3NTkzJmFtcDtncm91cF9pZD0xNTI3OCZhbXA7YXRpZD0zMTUy NzgiPkVuaGFuY2VkIENvbXBhcmlzb25GYWlsdXJlIG91dHB1dDwvYT48L2xpPiA8 bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyL2luZGV4 LnBocD9mdW5jPWRldGFpbCZhbXA7YWlkPTYyNTAxNiZhbXA7Z3JvdXBfaWQ9MTUy NzgmYW1wO2F0aWQ9MzE1Mjc4Ij5hZGR0J2wgVGVzdFN1aXRlIGNvbnN0cnVjdHJz IGZvciBDbGFzc1tdPC9hPjwvbGk+IDxsaT48YSBocmVmPSJodHRwOi8vc291cmNl Zm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFtcDthaWQ9 OTA4NDY3JmFtcDtncm91cF9pZD0xNTI3OCZhbXA7YXRpZD0zMTUyNzgiPlJ1biBv bmUgdGVzdCBtZXRob2QgZm9yIGp1bml0PC9hPjwvbGk+IDxsaT48YSBocmVmPSJo dHRwOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0 YWlsJmFtcDthaWQ9NzU2NDgwJmFtcDtncm91cF9pZD0xNTI3OCZhbXA7YXRpZD0z MTUyNzgiPmV4Y2x1ZGVkLnByb3BlcnRpZXM6IEFkZCBjb21tb25zIGxvZ2dpbmc8 L2E+PC9saT4gPC91bD4gPGgyPjxmb250IGNvbG9yPSIjMDAwMDAwIj5TdW1tYXJ5 IG9mIENoYW5nZXMgYmV0d2VlbiAzLjggYW5kIDMuOC4xPC9mb250PjwvaDI+IDx1 bD4gPGZvbnQgY29sb3I9IiMwMDAwMDAiPiA8bGk+QmFja2VkIG91dCBzZXR0aW5n IHRoZSB0ZXN0aW5nIFRocmVhZCdzIGNvbnRleHQgY2xhc3MgbG9hZGVyIChzZWUg PGEgaHJlZj0iaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci9pbmRleC5w aHA/ZnVuYz1kZXRhaWwmYW1wO2FpZD01OTgyMDAmYW1wO2dyb3VwX2lkPTE1Mjc4 JmFtcDthdGlkPTExNTI3OCI+SlVuaXQgbm90IHNldHRpbmcgQ2xhc3NMb2FkZXI8 L2E+KS4gSXQgaGFzIGNhdXNlZCBwcm9ibGVtcyBpbiB0ZXN0cyB0aGF0IHdvcmtl ZCBPSyBiZWZvcmUuIFNlZSB0aGUgYnVnIHJlcG9ydCBmb3IgbW9yZSBkZXRhaWxz LjwvbGk+IDxsaT5GaXhlczombmJzcDsgPHVsPiA8bGk+PGEgaHJlZj0iaHR0cHM6 Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci9pbmRleC5waHA/ZnVuYz1kZXRhaWwm YW1wO2FpZD02MDEzMjYmYW1wO2dyb3VwX2lkPTE1Mjc4JmFtcDthdGlkPTExNTI3 OCI+TlBFIGluIENvbXBhcmlzb25GYWlsdXJlPC9hPjwvbGk+IDxsaT48YSBocmVm PSJodHRwczovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyL2luZGV4LnBocD9mdW5j PWRldGFpbCZhbXA7YWlkPTYwMjk0OCZhbXA7Z3JvdXBfaWQ9MTUyNzgmYW1wO2F0 aWQ9MTE1Mjc4Ij5Td2luZyBVSTogTm9TdWNoTWV0aG9kRXJyb3Igb24gSkRLIDEu MzwvYT48L2xpPiA8L3VsPiA8L2xpPiA8L2ZvbnQ+IDwvdWw+IDxoMj4gPGZvbnQg Y29sb3I9IiMwMDAwMDAiPlN1bW1hcnkgb2YgQ2hhbmdlcyBiZXR3ZWVuIDMuNyBh bmQgMy44PC9mb250PjwvaDI+IDxoMz4gPGZvbnQgY29sb3I9IiMwMDAwMDAiPkZy YW1ld29yazwvZm9udD48L2gzPiA8dWw+IDxsaT4gPGZvbnQgY29sb3I9IiMwMDAw MDAiPk1hZGUgdGhlIHN0cmluZyBhcmd1bWVudCBUZXN0Q2FzZSBjb25zdHJ1Y3Rv ciBvcHRpb25hbC4gWW91IGNhbiBub3cgZGVsZXRlIGNvbnN0cnVjdG9ycyBvZiB0 aGUgZm9ybSAiRm9vVGVzdENhc2UoU3RyaW5nIG5hbWUpIHsgc3VwZXIobmFtZSk7 IH0iLjwvZm9udD48L2xpPiA8bGk+IDxmb250IGNvbG9yPSIjMDAwMDAwIj5EZWxl dGVkIGRlcHJlY2F0ZWQgYXNzZXJ0KGJvb2xlYW4pIGluIGZhdm9yIG9mIGFzc2Vy dFRydWUoYm9vbGVhbikgYW5kIGFzc2VydEZhbHNlKGJvb2xlYW4pLiBUbyBtaWdy YXRlIHRvIEpVbml0IDMuOCwgcmVuYW1lIGNhbGxzIHRvIGFzc2VydChib29sZWFu KSB0byBjYWxsIGFzc2VydFRydWUoYm9vbGVhbikuPC9mb250PjwvbGk+IDxsaT4g PGZvbnQgY29sb3I9IiMwMDAwMDAiPkFkZGVkIGFzc2VydEZhbHNlKCkgdG8gYXZv aWQgdGhlIGRpZmZpY3VsdCBvZiByZWFkaW5nIHRoZSBhc3NlcnRUcnVlKCEgY29u ZGl0aW9uKS48L2ZvbnQ+PC9saT4gPGxpPiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+ QWRkZWQgYXNzZXJ0Tm90U2FtZShPYmplY3QsIE9iamVjdCkuPC9mb250PjwvbGk+ IDxsaT4gPGZvbnQgY29sb3I9IiMwMDAwMDAiPkRlbGV0ZWQgZGVwcmVjYXRlZCBU ZXN0Q2FzZS5uYW1lKCkgaW4gZmF2b3Igb2YgVGVzdENhc2UuZ2V0TmFtZSgpLjwv Zm9udD48L2xpPiA8bGk+IDxmb250IGNvbG9yPSIjMDAwMDAwIj5EZWxldGVkIGRl cHJlY2F0ZWQgcGFja2FnZSBqdW5pdC51aSBpbiBmYXZvciBvZiBqdW5pdC5hd3R1 aS48L2ZvbnQ+PC9saT4gPC91bD4gPGgzPiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+ VGVzdCBSdW5uZXI8L2ZvbnQ+PC9oMz4gPHVsPiA8bGk+IDxmb250IGNvbG9yPSIj MDAwMDAwIj5XaGVuIHlvdSBjb21wYXJlIHR3byBsb25nIHN0cmluZ3Mgd2l0aCBh IHNtYWxsIGRlbHRhIGVtYmVkZGVkIGluIHRoZSBtaWRkbGUsIGl0IGlzIGhhcmQg dG8gc3BvdCB0aGUgZGlmZmVyZW5jZS4gSW4gMy44LCB3aGVuIHlvdSBjYWxsIGFz c2VydEVxdWFscyhTdHJpbmcsIFN0cmluZyksIG9ubHkgdGhlIGRpZmZlcmVuY2Vz IGJldHdlZW4gdGhlIHN0cmluZ3MgYXJlIGRpc3BsYXllZC4gVGhlIGNvbW1vbiBw cmVmaXggYW5kIHN1ZmZpeCBhcmUgcmVwbGFjZWQgd2l0aCAiLi4uIi48L2ZvbnQ+ PC9saT4gPGxpPiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+QWRkZWQgaW5pdGlhbCB2 ZXJzaW9uIG9mIGEgVGVzdFJ1bkxpc3RlbmVyIGF0dGFjaGVkIHRvIFRlc3RSdW5u ZXJzIHdoaWNoIGV2ZW50dWFsbHkgd2lsbCByZXBsYWNlIFRlc3RMaXN0ZW5lcnMg YXR0YWNoZWQgdG8gdGhlIFRlc3RSZXN1bHQuPC9mb250PjwvbGk+IDxsaT4gPGZv bnQgY29sb3I9IiMwMDAwMDAiPkZpbGxlZCBpbiBBY3RpdmVUZXN0U3VpdGUgY29u c3RydWN0b3JzLjwvZm9udD48L2xpPiA8bGk+IDxmb250IGNvbG9yPSIjMDAwMDAw Ij5BZGRlZCB0aGVzZSBwYWNrYWdlcyB0byB0aGUgZXhjbHVkZWQucHJvcGVydGll czo8Zm9udCBzaXplPSIyIj4gPHVsPiA8bGk+b3JnLnczYy5kb20uKjwvbGk+IDxs aT5vcmcueG1sLnNheC4qPC9saT4gPGxpPm5ldC5qaW5pLio8L2xpPiA8L3VsPiA8 L2ZvbnQ+PC9mb250PjwvbGk+IDxsaT48Zm9udCBjb2xvcj0iIzAwMDAwMCI+RXh0 cmFjdGVkIHRleHR1YWwgZm9ybWF0dGluZyBvZiBhIFRlc3RSZXN1bHQgZnJvbSBq dW5pdC50ZXh0dWkuVGVzdFJ1bm5lciBpbnRvIFJlc3VsdFByaW50ZXIuPC9mb250 PjwvbGk+IDwvdWw+IDxoMz48Zm9udCBjb2xvcj0iIzAwMDAwMCI+RG9jdW1lbnRh dGlvbjwvZm9udD48L2gzPiA8dWw+IDxmb250IGNvbG9yPSIjMDAwMDAwIj4gPGxp Pk11Y2ggaW1wcm92ZWQgPGEgaHJlZj0iZG9jL2ZhcS9mYXEuaHRtIj5GQVE8L2E+ IHRoYW5rcyB0byBNaWtlIENsYXJrLjwvbGk+IDwvZm9udD4gPC91bD4gPGgzPjxm b250IGNvbG9yPSIjMDAwMDAwIj5DbG9zZWQgQnVnczwvZm9udD48L2gzPiA8dWw+ IDxmb250IGNvbG9yPSIjMDAwMDAwIj4gPGxpPjxhIGhyZWY9Imh0dHBzOi8vc291 cmNlZm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFtcDth aWQ9NTgzMzQ2JmFtcDtncm91cF9pZD0xNTI3OCZhbXA7YXRpZD0xMTUyNzgiPkNs YXNzIGxvYWRlciBwcm9ibGVtPC9hPjwvbGk+IDxsaT48YSBocmVmPSJodHRwczov L3NvdXJjZWZvcmdlLm5ldC90cmFja2VyL2luZGV4LnBocD9mdW5jPWRldGFpbCZh bXA7YWlkPTU1MTIzOSZhbXA7Z3JvdXBfaWQ9MTUyNzgmYW1wO2F0aWQ9MTE1Mjc4 Ij5Db29rYm9vayBTaW1wbGUgVGVzdCBDYXNlIHByb2JsZW1zPC9hPjwvbGk+IDxs aT48YSBocmVmPSJodHRwczovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyL2luZGV4 LnBocD9mdW5jPWRldGFpbCZhbXA7YWlkPTUzOTAxNSZhbXA7Z3JvdXBfaWQ9MTUy NzgmYW1wO2F0aWQ9MTE1Mjc4Ij5MaWNlbnNlIG5vdCBpbmNsdWRlZCBpbiBzb3Vy Y2U8L2E+PC9saT4gPGxpPjxhIGhyZWY9Imh0dHBzOi8vc291cmNlZm9yZ2UubmV0 L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFtcDthaWQ9NTYwMDgxJmFt cDtncm91cF9pZD0xNTI3OCZhbXA7YXRpZD0xMTUyNzgiPmFzc2VydCBpcyBhIGtl eXdvcmQ8L2E+PC9saT4gPGxpPjxhIGhyZWY9Imh0dHBzOi8vc291cmNlZm9yZ2Uu bmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFtcDthaWQ9NTcyNDQ0 JmFtcDtncm91cF9pZD0xNTI3OCZhbXA7YXRpZD0xMTUyNzgiPmphdmFkb2MgcmV0 dXJucyBteXN0ZXJpb3VzIG1lc3NhZ2U8L2E+PC9saT4gPGxpPjxhIGhyZWY9Imh0 dHBzOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0 YWlsJmFtcDthaWQ9NTgxMjUxJmFtcDtncm91cF9pZD0xNTI3OCZhbXA7YXRpZD0x MTUyNzgiPnN3aW5ndWkgQ291bnRlclBhbmVsIHZhbHVlcyBkaXNhcHBlYXI8L2E+ PC9saT4gPGxpPjxhIGhyZWY9Imh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3RyYWNr ZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFtcDthaWQ9NTc0NjQxJmFtcDtncm91 cF9pZD0xNTI3OCZhbXA7YXRpZD0xMTUyNzgiPlRlc3RDYXNlIGphdmFkb2MgaW5j b3JyZWN0IGV4YW1wbGU8L2E+PC9saT4gPGxpPjxhIGhyZWY9Imh0dHBzOi8vc291 cmNlZm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFtcDth aWQ9NTgyNzg0JmFtcDtncm91cF9pZD0xNTI3OCZhbXA7YXRpZD0xMTUyNzgiPnNp bGx5IGNvb2tib29rIGVycm9yPC9hPjwvbGk+IDxsaT48YSBocmVmPSJodHRwczov L3NvdXJjZWZvcmdlLm5ldC90cmFja2VyL2luZGV4LnBocD9mdW5jPWRldGFpbCZh bXA7YWlkPTU4MzMyOCZhbXA7Z3JvdXBfaWQ9MTUyNzgmYW1wO2F0aWQ9MTE1Mjc4 Ij5qdW5pdCBwcm9wZXJ0aWVzIG1pc3NmdW5jdGlvbjwvYT48L2xpPiA8bGk+PGEg aHJlZj0iaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci9pbmRleC5waHA/ ZnVuYz1kZXRhaWwmYW1wO2FpZD01OTU5NTcmYW1wO2dyb3VwX2lkPTE1Mjc4JmFt cDthdGlkPTExNTI3OCI+VGVzdC5qYXZhIGlzIG5vdCBTZXJpYWxpemFibGU8L2E+ PC9saT4gPGxpPjxhIGhyZWY9Imh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3RyYWNr ZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFtcDthaWQ9NTk4MjAwJmFtcDtncm91 cF9pZD0xNTI3OCZhbXA7YXRpZD0xMTUyNzgiPkpVbml0IG5vdCBzZXR0aW5nIENs YXNzTG9hZGVyYDwvYT48L2xpPiA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9zb3VyY2Vm b3JnZS5uZXQvdHJhY2tlci9pbmRleC5waHA/ZnVuYz1kZXRhaWwmYW1wO2FpZD01 OTI3MTMmYW1wO2dyb3VwX2lkPTE1Mjc4JmFtcDthdGlkPTExNTI3OCI+TnVsbFBv aW50ZXJFeGNlcHRpb24gd2hlbiBsb2FkaW5nIHN1aXRlPC9hPjwvbGk+IDxsaT48 YSBocmVmPSJodHRwczovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyL2luZGV4LnBo cD9mdW5jPWRldGFpbCZhbXA7YWlkPTU0NDY4MyZhbXA7Z3JvdXBfaWQ9MTUyNzgm YW1wO2F0aWQ9MTE1Mjc4Ij5sYWJlbHMgZm9yIGJ1ZyBjb3VudHMgdG9vIHNtYWxs IGluIFN3aW5nPC9hPjwvbGk+IDxsaT48YSBocmVmPSJodHRwczovL3NvdXJjZWZv cmdlLm5ldC90cmFja2VyL2luZGV4LnBocD9mdW5jPWRldGFpbCZhbXA7YWlkPTUz NzUwMiZhbXA7Z3JvdXBfaWQ9MTUyNzgmYW1wO2F0aWQ9MTE1Mjc4Ij5Td2luZyBU ZXN0UnVubmVyIGxheW91dCBzaGlmdHM8L2E+PC9saT4gPGxpPjxhIGhyZWY9Imh0 dHBzOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0 YWlsJmFtcDthaWQ9NTI4ODY4JmFtcDtncm91cF9pZD0xNTI3OCZhbXA7YXRpZD0x MTUyNzgiPkV4aXQgY29kZSBwcm9ibGVtIGZvciBjeWd3aW4vdzJrPC9hPjwvbGk+ IDxsaT48YSBocmVmPSJodHRwczovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyL2lu ZGV4LnBocD9mdW5jPWRldGFpbCZhbXA7YWlkPTUyOTk1MyZhbXA7Z3JvdXBfaWQ9 MTUyNzgmYW1wO2F0aWQ9MTE1Mjc4Ij5BdXRvbWF0aWMgcmVsb2FkIGNhdXNlcyBz dHJhbmdlIGVycm9yczwvYT48L2xpPiA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9zb3Vy Y2Vmb3JnZS5uZXQvdHJhY2tlci9pbmRleC5waHA/ZnVuYz1kZXRhaWwmYW1wO2Fp ZD01MzI5NTImYW1wO2dyb3VwX2lkPTE1Mjc4JmFtcDthdGlkPTExNTI3OCI+VGVz dFJ1bm5lciBmYWlscyB3aXRoIHN3aW5nL2F3dHVpPC9hPjwvbGk+IDxsaT48YSBo cmVmPSJodHRwczovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyL2luZGV4LnBocD9m dW5jPWRldGFpbCZhbXA7YWlkPTUzMzQxMSZhbXA7Z3JvdXBfaWQ9MTUyNzgmYW1w O2F0aWQ9MTE1Mjc4Ij5DVlMgdmVyc2lvbiBkb2Vzbid0IGJ1aWxkIG9uIE5ldEJT RDwvYT48L2xpPiA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQv dHJhY2tlci9pbmRleC5waHA/ZnVuYz1kZXRhaWwmYW1wO2FpZD01MjAyMTAmYW1w O2dyb3VwX2lkPTE1Mjc4JmFtcDthdGlkPTExNTI3OCI+TnVsbFBvaW50ZXJFeGNl cHRpb24gSlVuaXQgc2FtcGxlIHcvIEFudDwvYT48L2xpPiA8bGk+PGEgaHJlZj0i aHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci9pbmRleC5waHA/ZnVuYz1k ZXRhaWwmYW1wO2FpZD01Mjc1MTEmYW1wO2dyb3VwX2lkPTE1Mjc4JmFtcDthdGlk PTExNTI3OCI+bW9uZXkgc2FtcGxlIGJ1ZzwvYT48L2xpPiA8bGk+PGEgaHJlZj0i aHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci9pbmRleC5waHA/ZnVuYz1k ZXRhaWwmYW1wO2FpZD00OTE5ODEmYW1wO2dyb3VwX2lkPTE1Mjc4JmFtcDthdGlk PTExNTI3OCI+aW5jb21wbGV0ZSBtZXNzYWdlIGZyb20gZmFpbE5vdFNhbWUoKTwv YT48L2xpPiA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJh Y2tlci9pbmRleC5waHA/ZnVuYz1kZXRhaWwmYW1wO2FpZD00NzE1NzcmYW1wO2dy b3VwX2lkPTE1Mjc4JmFtcDthdGlkPTExNTI3OCI+SWNvbnMgb24gc3lzdGVtcyB3 aXRoIDY0IGNvbG9ycyBleGNlcHRpbzwvYT48L2xpPiA8bGk+PGEgaHJlZj0iaHR0 cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci9pbmRleC5waHA/ZnVuYz1kZXRh aWwmYW1wO2FpZD00NzAzMjQmYW1wO2dyb3VwX2lkPTE1Mjc4JmFtcDthdGlkPTEx NTI3OCI+MTAwMCsgdGVzdHMsIHN3aW5nIGd1aSBkb2Vzbid0IGRpc3BsYXk8L2E+ PC9saT4gPGxpPjxhIGhyZWY9Imh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3RyYWNr ZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWlsJmFtcDthaWQ9NDQyNzUyJmFtcDtncm91 cF9pZD0xNTI3OCZhbXA7YXRpZD0xMTUyNzgiPnRlc3Qgc2VsZWN0b3IgaW5jbHVk ZWQgaW5jb3JyZWN0IGNsYXNzZXM8L2E+PC9saT4gPGxpPjxhIGhyZWY9Imh0dHBz Oi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvaW5kZXgucGhwP2Z1bmM9ZGV0YWls JmFtcDthaWQ9NDMwOTc0JmFtcDtncm91cF9pZD0xNTI3OCZhbXA7YXRpZD0xMTUy NzgiPk5vIFVJIHVwZGF0ZSB3aGVuIHJlLXJ1biBtZXRob2RzIGZhaWw8L2E+PC9s aT4gPC9mb250PiA8L3VsPiA8aDI+IDxmb250IGNvbG9yPSIjMDAwMDAwIj5TdW1t YXJ5IG9mIENoYW5nZXMgYmV0d2VlbiAzLjYgYW5kIDMuNzwvZm9udD48L2gyPiA8 aDM+IDxmb250IGNvbG9yPSIjMDAwMDAwIj5HVUk8L2ZvbnQ+PC9oMz4gPHVsPiA8 bGk+IDxmb250IGNvbG9yPSIjMDAwMDAwIj5FbGltaW5hdGVkIHdhcm5pbmcgd2hl biByZS1ydW5uaW5nIHRlc3RzIHdoZW4gY2xhc3MgbG9hZGluZyBjaGVja2JveCBp cyB1bmNoZWNrZWQuIFRoZXJlIGFyZSBsZWdpdGltYXRlIHJlYXNvbnMgZm9yIGRv aW5nIHRoaXMsIHNvIGEgd2FybmluZyBkaWRuJ3QgbWFrZSBtdWNoIHNlbnNlLCBh bmQgaXQgd2FzIHRvbyBvYnRydXNpdmUuPC9mb250PjwvbGk+IDxsaT4gPGZvbnQg Y29sb3I9IiMwMDAwMDAiPlN0b3BwZWQgcmVsb2FkaW5nIGNsYXNzZXMgd2hlbiBy dW5uaW5nIGluIFZpc3VhbEFnZSBmb3IgSmF2YS48L2ZvbnQ+PC9saT4gPGxpPiA8 Zm9udCBjb2xvcj0iIzAwMDAwMCI+UHJpbnQgdG90YWwgbnVtYmVyIG9mIHRlc3Rz IGFzIHdlbGwgYXMgbnVtYmVyIG9mIHRlc3RzIHJ1biBzbyBmYXIgKFN3aW5nIG9u bHkpLjwvZm9udD48L2xpPiA8L3VsPiA8aDM+IDxmb250IGNvbG9yPSIjMDAwMDAw Ij5GcmFtZXdvcms8L2ZvbnQ+PC9oMz4gPHVsPiA8bGk+IDxmb250IGNvbG9yPSIj MDAwMDAwIj5JbnRyb2R1Y2VkIEFzc2VydC5hc3NlcnRUcnVlKGJvb2xlYW4pIGFu ZCBhc3NlcnRUcnVlKFN0cmluZywgYm9vbGVhbikgZGVwcmVjYXRlZCBhc3NlcnQo Ym9vbGVhbikgYW5kIGFzc2VydChTdHJpbmcsIGJvb2xlYW4pIGluIHByZXBhcmF0 aW9uIGZvciB0aGUgYXNzZXJ0IGtleXdvcmQgaW4gSmF2YSAxLjQuIFdlIHBsYW4g dG8gc3VwcG9ydCBuYXRpdmUgYXNzZXJ0aW9ucyB3aGVuIHRoZXkgYXJlIHB1Ymxp Y2x5IGF2YWlsYWJsZS4gWW91IGNhbiBlaXRoZXIgbW92ZSB0byBhc3NlcnRUcnVl KCkgb3Igd2FpdCBmb3IgMS40IGFuZCBkZWxldGUgcGFyZW50aGVzZXMgYXMgdGhl IHN5bnRheCBpcyBlLmcuICJhc3NlcnQgMiA9PSAzIi48L2ZvbnQ+PC9saT4gIDxs aT4gIDxmb250IGNvbG9yPSIjMDAwMDAwIj5BZGRlZCBhY2Nlc3NvcnMgZm9yIFRl c3RDYXNlLmZOYW1lIGFuZCBUZXN0U3VpdGUuZk5hbWUuPC9mb250PjwvbGk+ICA8 bGk+ICA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+QWRkZWQgYSBubyBhcmd1bWVudCBU ZXN0Q2FzZSBjb25zdHJ1Y3RvciB0byBzdXBwb3J0IHNlcmlhbGl6YXRpb24uPC9m b250PjwvbGk+ICA8bGk+ICA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+SW1wcm92ZWQg d2FybmluZ3Mgd2hlbiBjb25zdHJ1Y3RpbmcgVGVzdFN1aXRlcy48L2ZvbnQ+PC9s aT4gPC91bD4gPGgzPiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+VGV4dCBSdW5uZXI8 L2ZvbnQ+PC9oMz4gPHVsPiAgPGxpPiAgPGZvbnQgY29sb3I9IiMwMDAwMDAiPk1h ZGUgZG9SdW4oKSBwdWJsaWMgc28gY2xpZW50cyBjYW4gY3JlYXRlIGEgdGV4dCBy dW5uZXIgd2l0aCBhIHNwZWNpZmllZCBvdXRwdXQgc3RyZWFtIGFuZCB0aGVuIHJ1 biB0ZXN0cy48L2ZvbnQ+PC9saT4gPC91bD4gPGgzPiA8Zm9udCBjb2xvcj0iIzAw MDAwMCI+Rml4ZWQgQnVncyAoU291cmNlRm9yZ2UgQnVnIFRyYWNrZXIgSWRzKTwv Zm9udD48L2gzPiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+Jm5ic3A7Jm5ic3A7Jm5i c3A7IFs0MjAzMTVdIE5vIHRyYWNlIHdoZW4gZmFpbCB3aXRoIG1lc3NhZ2UuLi4g PGJyPiAmbmJzcDsmbmJzcDsmbmJzcDsgWzQxOTM3NV0gcmVsb2FkIHdhcm5pbmcg bGFncyA8YnI+ICZuYnNwOyZuYnNwOyZuYnNwOyBbNDE4ODQ5XSBDbGFzc2xvYWRl ciB3YXJuaW5nIHRvbyBvYnRydXNpdmUgPGJyPiAmbmJzcDsmbmJzcDsmbmJzcDsg WzQxNzk3OF0gY29uc3RydWN0b3Igc3RhY2sgdHJhY2UsIHBsZWFzZSA8YnI+ICZu YnNwOyZuYnNwOyZuYnNwOyBbNDE1MTAzXSBSZWxvYWQgY2hlY2tib3ggc2hvdWxk IGJlIGlnbm9yZWQgaW4gVkFKIDxicj4gJm5ic3A7Jm5ic3A7Jm5ic3A7IFs0MTQ5 NTRdIGVycm9yIHJlcG9ydGluZyB3aGVuIGludm9raW5nIHN1aXRlKCkgPGJyPiAm bmJzcDsmbmJzcDsmbmJzcDsgWzQwNzI5Nl0gTWFrZSBkb1J1bigpIHB1YmxpYyA8 YnI+ICZuYnNwOyZuYnNwOyZuYnNwOyBbMjI3NTc4XSBybWkgY2FsbGJhY2tzIGZh aWwgc2luY2UgVGVzdENhc2UgaGFzIG5vIG5vQXJnIGNvbnN0cnVjdG9yIDxicj4g Jm5ic3A7Jm5ic3A7Jm5ic3A7IFs0MjI2MDNdIERlY29yYXRlZCBkZWNvcmF0b3Jz IGJ1ZyA8L2ZvbnQ+IDxoMj48Zm9udCBjb2xvcj0iIzAwMDAwMCI+U3VtbWFyeSBv ZiBDaGFuZ2VzIGJldHdlZW4gMy41IGFuZCAzLjY8L2ZvbnQ+PC9oMj4gPGgzPiA8 Zm9udCBjb2xvcj0iIzAwMDAwMCI+VGVzdFJ1bm5lcjwvZm9udD48L2gzPiA8dWw+ ICA8bGk+ICA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+VGhlIFVJIHRlc3QgcnVubmVy cyBwcm92aWRlIGEgY2hlY2sgYm94IHRvIGVuYWJsZS9kaXNhYmxlIHRoZSBjdXN0 b20gY2xhc3MgbG9hZGVyLiBUaGUgdXNlciBpcyB3YXJuZWQgd2hlbiBydW5uaW5n IGEgc2Vjb25kIHRlc3Qgd2l0aCB0aGUgbm9uIGxvYWRpbmcgY2xhc3MgbG9hZGVy LjwvZm9udD48L2xpPiAgPGxpPiAgPGZvbnQgY29sb3I9IiMwMDAwMDAiPlJlbmFt ZXMgdG8gYWRkcmVzcyBmaWxlIG5hbWUgbGVuZ3RoIGxpbWl0YXRpb24gb24gTWFj T1M6PC9mb250PjwvbGk+ICA8dWw+ICA8bGk+ICA8Zm9udCBjb2xvcj0iIzAwMDAw MCI+TG9hZGluZ0NsYXNzUGF0aFRlc3RDb2xsZWN0b3IgLSZndDsgTG9hZGluZ1Rl c3RDb2xsZWN0b3I8L2ZvbnQ+PC9saT4gIDxsaT4gIDxmb250IGNvbG9yPSIjMDAw MDAwIj5TaW1wbGVDbGFzc1BhdGhUZXN0Q29sbGVjdG9yIC0mZ3Q7IFNpbXBsZVRl c3RDb2xsZWN0b3I8L2ZvbnQ+PC9saT4gIDwvdWw+IDwvdWw+IDxoMz4gPGZvbnQg Y29sb3I9IiMwMDAwMDAiPkZyYW1ld29yazwvZm9udD48L2gzPiA8dWw+ICA8bGk+ ICA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+QWRkZWQgVGVzdFN1aXRlLmdldE5hbWUo KTwvZm9udD48L2xpPiA8L3VsPiA8aDM+IDxmb250IGNvbG9yPSIjMDAwMDAwIj5C dWlsZHM8L2ZvbnQ+PC9oMz4gPHVsPiAgPGxpPiAgPGZvbnQgY29sb3I9IiMwMDAw MDAiPlVwZGF0ZWQgdGhlIGJ1aWxkIHNjcmlwdCBmb3IgQW50IDEuMy48L2ZvbnQ+ PC9saT4gPC91bD4gPGgzPiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+Rml4ZWQgQnVn cyAoU291cmNlRm9yZ2UgQnVnIFRyYWNrZXIgSWRzKTwvZm9udD48L2gzPiA8Ymxv Y2txdW90ZT48Zm9udCBjb2xvcj0iIzAwMDAwMCI+WyAjMjI5NzUzIF0gYXNzZXJ0 RXF1YWxzIG9uIE5hTiBhbmQgSW5maW5pdHkgZG9lcyBub3Qgd29yayBjb3JyZWN0 bHkgPGJyPiBbICMyMjkyODcgXSBDbGFzcyBOYW1lIHRvbyBsb25nICJTaW1wbGVD bGFzc1BhdGhUZXN0Q29sbGVjdG9yIiA8YnI+IFsgIzIyOTYwOSBdIFN0YWNrIEZp bHRlcmluZyBtaXNzaW5nIGluIHRleHR1aS5UZXNSdW5uZXIgPGJyPiBbICMyMjk4 NzAgXSBDbGlja2luZyBvbiAuLi4gYWZ0ZXIgdGVzdHMgZmFpbGVkIGdpdmVzIE5Q RSA8YnI+IFsgIzIyOTk3NCBdIEluY29ycmVjdCBpY29uIHNob3duIGZvciBmaXJz dCBlbGVtZW50IGluIFN3aW5nIEdVSSA8YnI+IFsgIzIzMDU4MSBdIHN3aW5ndWku VGVzdFRyZWVNb2RlbDogcmVzdWx0cyBvZiBkZWNvcmF0ZWQgdGVzdGNhc2VzLi4u IDxicj4gWyAjMjMwOTcxIF0gTWFrZSBqdW5pdC5leHRlbnNpb25zLlRlc3REZWNv cmF0b3IuZ2V0VGVzdCgpIHB1YmxpYyA8YnI+IFsgIzIzMTU2OSBdIERvY0J1Zzog SlVuaXQgVGVzdCBJbmZlY3RlZDogUHJvZ3JhbW1lcnMgTG92ZSBXcml0aW5nIFRl c3RzIDxicj4gWyAjMjMyNjQ1IF0gQmFzZVRlc3RSdW5uZXIuZ2V0VGVzdCBsb3Nl cyBleGNlcHRpb24gaW5mb3JtYXRpb24gPGJyPiBbICMyMzMwOTQgXSBUZXN0U3Vp dGUgbWFza3MgZXhjZXB0aW9ucyA8YnI+IFsgIzQxMDk2NyBdIE5vIGljb24gcHJv dmlkZWQgZm9yIGZpcnN0IHRlc3QgPGJyPiBbICMyMzA3NDUgXSBDbGFzc1BhdGhU ZXN0Q29sbGVjdG9yIHNvbWV0aW1lcyBsaXN0cyBjbGFzc2VzIGluIGR1cGxpY2F0 ZTwvZm9udD48L2Jsb2NrcXVvdGU+IDxoMz4gPGZvbnQgY29sb3I9IiMwMDAwMDAi PkRvY3VtZW50YXRpb248L2ZvbnQ+PC9oMz4gPHVsPiAgPGxpPiAgPGZvbnQgY29s b3I9IiMwMDAwMDAiPkFkZGVkIGRvY3VtZW50YXRpb24gYWJvdXQgdGhlIDxhIGhy ZWY9ImRvYy9KVW5pdFByb3BlcnRpZXMuaHRtbCI+cHJvcGVydGllczwvYT4gc3Vw cG9ydGVkIGJ5IFRlc3RSdW5uZXJzLjwvZm9udD48L2xpPiAgPGxpPiAgPGZvbnQg Y29sb3I9IiMwMDAwMDAiPlVwZGF0ZWQgdGhlIEZBUTwvZm9udD48L2xpPiA8L3Vs PiA8aDI+IDxmb250IGNvbG9yPSIjMDAwMDAwIj5TdW1tYXJ5IG9mIENoYW5nZXMg YmV0d2VlbiAzLjQgYW5kIDMuNTwvZm9udD48L2gyPiA8aDM+IDxmb250IGNvbG9y PSIjMDAwMDAwIj5GcmFtZXdvcms8L2ZvbnQ+PC9oMz4gPHVsPiAgPGxpPiAgPGZv bnQgY29sb3I9IiMwMDAwMDAiPkFkZGVkIFRlc3RTdWl0ZS5hZGRUZXN0U3VpdGUo Q2xhc3MgdGVzdENsYXNzKTwvZm9udD48L2xpPiAgPGZvbnQgY29sb3I9IiMwMDAw MDAiPjxicj4gVGhpcyBtZXRob2QgYWxsb3dzIHRvIGNyZWF0ZSBhIFRlc3RTdWl0 ZSB3aXRoIGEgY2xhc3MgY29udGFpbmluZyB0ZXN0IGNhc2VzIGRpcmVjdGx5LiA8 YnI+IEluc3RlYWQgb2Ygd3JpdGluZyA8Yj5zdWl0ZS5hZGRUZXN0KG5ldyBUZXN0 U3VpdGUoQXNzZXJ0VGVzdC5jbGFzcykpIDwvYj55b3UgY2FuIG5vdyB3cml0ZSA8 Yj5zdWl0ZS5hZGRUZXN0U3VpdGUoQXNzZXJ0VGVzdC5jbGFzcyk8L2I+OyA8bGk+ QWRkZWQgYXNzZXJ0RXF1YWxzIG1ldGhvZHMgZm9yIGFsbCBwcmltaXRpdmUgdHlw ZXM6IGZsb2F0LCBib29sZWFuLCBieXRlLCBjaGFyLCBpbnQsIHNob3J0PC9saT4g IDxsaT4gVGhlIHNpZ25hdHVyZSBvZiZuYnNwOyBUZXN0TGlzdGVuZXJzLmFkZEZh aWx1cmUoVGVzdCB0ZXN0LCBUaHJvd2FibGUgdCk8L2xpPiAgPGJyPiB3YXMgY2hh bmdlZCB0byBhZGRGYWlsdXJlKFRlc3QgdGVzdCwgQXNzZXJ0aW9uRmFpbGVkRXJy b3IgdCk8L2ZvbnQ+IDwvdWw+IDxoMz4gPGZvbnQgY29sb3I9IiMwMDAwMDAiPlRl c3RSdW5uZXI8L2ZvbnQ+PC9oMz4gPHVsPiAgPGxpPiAgPGZvbnQgY29sb3I9IiMw MDAwMDAiPlRoZSBTd2luZyBUZXN0UnVubmVyIHByb3ZpZGVzIGFuIGV4cGVyaW1l bnRhbCBmZWF0dXJlIHRvIGJyb3dzZSB0ZXN0IGNsYXNzZXMuIFRoZXJlIGlzIGFu IGFkZGl0aW9uYWwgYnJvd3NlICgiLi4uIikgYnV0dG9uIGJlc2lkZXMgdGhlIHN1 aXRlIGNvbWJvLiBJdCBzaG93cyBhIHNpbXBsZSBkaWFsb2cgdG8gc2VsZWN0IGEg dGVzdCBjbGFzcyBmcm9tIGEgbGlzdC4gRGlmZmVyZW50IHN0cmF0ZWdpZXMgdG8g bG9jYXRlIFRlc3QgY2xhc3NlcyBhcmUgc3VwcG9ydGVkIGFuZCB5b3UgY2FuIHBs dWctaW4geW91ciBvd24gc3RyYXRlZ3kuIFRoaXMgYWxsb3dzIHRvIGxldmVyYWdl IGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgYW4gZXh0ZW5zaW9uIEFQSSBvZiBh biBpbnRlZ3JhdGVkIGRldmVsb3BtZW50IGVudmlyb25tZW50IChJREUpLiBUbyBk ZWZpbmUgYSBjdXN0b20gdGVzdCBjb2xsZWN0b3IgeW91IDEpIGltcGxlbWVudCB0 aGUgPGI+anVuaXQucnVubmVyLlRlc3RDb2xsZWN0b3IgPC9iPmludGVyZmFjZSBh bmQgMikgYWRkIGFuIGVudHJ5IHRvIHRoZSA8Yj5qdW5pdC5wcm9wZXJ0aWVzPC9i PiBmaWxlIHdpdGggdGhlIGtleSA8Yj5UZXN0Q29sbGVjdG9yQ2xhc3M8L2I+IGFu ZCB0aGUgbmFtZSBvZiB5b3VyIFRlc3RDb2xsZWN0b3IgaW1wbGVtZW50YXRpb24g Y2xhc3MgYXMgdGhlIGtleTo8L2ZvbnQ+PC9saT4gIDxmb250IGNvbG9yPSIjMDAw MDAwIj48YnI+ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyBUZXN0Q29sbGVjdG9yQ2xhc3M9anVuaXQuc3dpbmd1aS5Mb2FkaW5nQ2xh c3NQYXRoVGVzdENvbGxlY3RvciA8YnI+IFRoaXMgY2xhc3MgaGFzIHRvIGJlIGlu c3RhbGxlZCBvbiB0aGUgY2xhc3MgcGF0aC4gPGJyPiBKVW5pdCBwcm92aWRlcyB0 d28gZGlmZmVyZW50IFRlc3RDb2xsZWN0b3IgaW1wbGVtZW50YXRpb25zOiA8L2Zv bnQ+ICA8dWw+ICA8bGk+ICA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+c2ltcGxlIChq dW5pdC5ydW5uZXIuU2ltcGxlQ2xhc3NQYXRoVGVzdENvbGxlY3RvcikgLSBjb25z aWRlcnMgYWxsIGNsYXNzZXMgb24gdGhlIGNsYXNzIHBhdGggb24gdGhlIGZpbGUg c3lzdGVtIHRoYXQgY29udGFpbiAiVGVzdCIgaW4gdGhlaXIgbmFtZS4gQ2xhc3Nl cyBpbiBKQVJzIGFyZSBub3QgY29uc2lkZXJlZC48L2ZvbnQ+PC9saT4gIDxsaT4g IDxmb250IGNvbG9yPSIjMDAwMDAwIj5sb2FkaW5nIChqdW5pdC5ydW5uZXIuTG9h ZGluZ0NsYXNzUGF0aFRlc3RDb2xsZWN0b3IpIC0gbG9hZHMgYWxsIGNsYXNzZXMg b24gdGhlIGNsYXNzIHBhdGggYW5kIHRlc3RzIHdoZXRoZXIgdGhlIGNsYXNzIGlz IGFzc2lnbmFibGUgZnJvbSBUZXN0IG9yIGhhcyBhIHN0YXRpYyA8Yj5zdWl0ZTwv Yj4gbWV0aG9kLjwvZm9udD48L2xpPiAgPC91bD4gIDxmb250IGNvbG9yPSIjMDAw MDAwIj5CeSBkZWZhdWx0IHRoZSBzaW1wbGUgdGhlIHRlc3QgY29sbGVjdG9yIGlz IHVzZWQuIFRoZSBsb2FkaW5nIGNvbGxlY3RvciBpcyBtb3JlIHByZWNpc2UgYnV0 IG11Y2ggc2xvd2VyIHRoYW4gdGhlIHNpbXBsZSBvbmUuIFRoZSBsb2FkaW5nIGNv bGxlY3RvciBkb2Vzbid0IHNjYWxlIHVwIHdoZW4gbWFueSBjbGFzc2VzIGFyZSBh dmFpbGFibGUgb24gdGhlIGNsYXNzIHBhdGguIDxicj4gIDxiPjxmb250IGNvbG9y PSIjZmYwMDAwIj5Ob3RpY2U8L2ZvbnQ+PC9iPjogdGhhdCBib3RoIFRlc3RDb2xs ZWN0b3JzIGFzc3VtZSB0aGF0IHRoZSBjbGFzcyBmaWxlcyByZXNpZGUgYXJlIGtl cHQgaW4gdGhlIGZpbGUgc3lzdGVtLiBUaGlzIGlzbid0IGNhc2UgaW4gVkEvSmF2 YSBhbmQgdGhleSB3aWxsIG5vdCB3b3JrIHRoZXJlLiBBIGN1c3RvbSBUZXN0Q29s bGVjdG9yIGlzIHJlcXVpcmVkIGZvciBWQS9KYXZhLiA8bGk+VGhlIFN3aW5nIFRl c3RSdW5uZXIgbm93IHByb3ZpZGVzIGFuIGFkZGl0aW9uYWwgdGVzdCByZXN1bHQg dmlldyB0aGF0IHNob3dzIGFsbCB0ZXN0cyBvZiB0aGUgZXhlY3V0ZWQgdGVzdCBz dWl0ZSBhcyBhIHRyZWUuIFRoZSB2aWV3IHNob3dzIHRoZSBzdWNjZXNzIHN0YXR1 cyBmb3IgZWFjaCB0ZXN0LiBUaGUgdmlldyBpcyBzaG93biBhcyBhbiBhZGRpdGlv bmFsIHRhYiBpbiB0aGUgVGVzdFJ1bm5lciB3aW5kb3cuIEluIHByZXZpb3VzIHZl cnNpb25zIG9mIEpVbml0IHRoaXMgdmlldyB3YXMgc2hvd24gaW4gYSBzZXBhcmF0 ZSB3aW5kb3cuPC9saT4gIDxsaT4gVGhlIGZhaWx1cmUgcGFuZWxzIGluIHRoZSBT d2luZyBhbmQgQVdUIFRlc3RSdW5uZXJzIGZpbHRlciB0aGUgZXhjZXB0aW9uIHN0 YWNrIHRyYWNlIHNvIHRoYXQgb25seSBub24tZnJhbWV3b3JrIHN0YWNrIGZyYW1l cyBhcmUgc2hvd24uPC9saT4gIDxsaT4gVGhlcmUgaXMgc3VwcG9ydCB0byBwbHVn LWluIGEgY3VzdG9tIGZhaWx1cmUgcGFuZWwgdGhhdCBwcm92aWRlcyBhZGRpdGlv bmFsIGZ1bmN0aW9uYWxpdHkgbGlrZSBuYXZpZ2F0aW5nIGZyb20gYSBmYWlsdXJl IHRvIHRoZSBzb3VyY2UuIFRvIGRvIHNvIHlvdSBpbXBsZW1lbnQgdGhlIDxiPmp1 bml0LnJ1bm5lci5GYWlsdXJlRGV0YWlsVmlldzwvYj4gaW50ZXJmYWNlIGFuZCBy ZWdpc3RlciB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MgaW4gdGhlIGp1bml0LnBy b3BlcnRpZXMgZmlsZSB1bmRlciB0aGUga2V5IDxiPkZhaWx1cmVWaWV3Q2xhc3M8 L2I+LCBmb3IgZXhhbXBsZTwvbGk+ICA8YnI+ICZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBGYWlsdXJlVmlld0NsYXNzPU15RmFpbHVy ZVZpZXdDbGFzc05hbWUuIDxsaT5UaGUgU3dpbmcgYW5kIEFXVCBUZXN0UnVubmVy cyBub3cgdW5kZXJzdGFuZCBhbiBhZGRpdGlvbmFsIGNvbW1hbmQgbGluZSBhcmd1 bWVudCAiLW5vbG9hZGluZyIuIFdoZW4gdGhpcyBhcmd1bWVudCBpcyBzZXQgdGhl biB0aGUgc3RhbmRhcmQgc3lzdGVtIGNsYXNzIGxvYWRlciBpcyB1c2VkIHRvIGxv YWQgY2xhc3Nlcy4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXR0aW5nIHRo ZSA8Yj5sb2FkaW5nPC9iPiBwcm9wZXJ0eSB0byBmYWxzZSBpbiB0aGUganVuaXQu cHJvcGVydGllcyBmaWxlLjwvbGk+ICA8bGk+IFN3aW5nIFRlc3RSdW5uZXIgLSB0 aGUgbWF4aW11bSB0ZXN0IGhpc3RvcnkgbGVuZ3RoIHNob3duIGluIHRoZSBzdWl0 ZSBjb21ibyBjYW4gYmUgZGVmaW5lZCBpbiB0aGUganVuaXQucHJvcGVydGllcyBm aWxlIHdpdGggdGhlIGtleSA8Yj5tYXhoaXN0b3J5PC9iPi48L2xpPiAgPGxpPiBC YXNlVGVzdFJ1bm5lci48Yj5nZXRMb2FkZXI8L2I+KCkgaXMgbm8gbG9uZ2VyIGEg c3RhdGljIG1ldGhvZCBhbmQgY2FuIG5vdyBiZSBvdmVycmlkZGVuIGluIHN1YmNs YXNzZXMuPC9saT4gIDxsaT4gQmFzZVRlc3RSdW5uZXIgcmVtb3ZlZCBkZXBlbmRl bmN5IG9uIEpESyAxLjIuPC9saT4gIDxsaT4gU3dpbmcgVGVzdFJ1bm5lciAtIGZp eGVkIHRoZSBwcm9ibGVtIHRoYXQgYSBzdWl0ZSBuYW1lIHdhcyBzb21ldGltZXMg ZHVwbGljYXRlZCBpbiB0aGUgaGlzdG9yeSBjb21iby48L2xpPiAgPGxpPiBTd2lu ZyBUZXN0UnVubmVyIC0gdGhlIFJ1biBidXR0b24gaXMgbm93IHRoZSBkZWZhdWx0 IGJ1dHRvbi48L2xpPiAgPGxpPiBPdXRwdXQgc3RyaW5nIHRydW5jYXRpb24gY2Fu IG5vdyBiZSBjb250cm9sbGVkIGJ5IGFkZGluZyB0aGUgPGI+bWF4bWVzc2FnZTwv Yj4ga2V5IHdpdGggdGhlIGRlc2lyZWQgbWF4aW11bSBsZW5ndGggdG8gdGhlIGp1 bml0LnByb3BlcnRpZXMgZmlsZS4gU2V0dGluZyBtYXhtZXNzYWdlIHRvIC0xIG1l YW5zIG5vIG91dHB1dCB0cnVuY2F0aW9uLjwvbGk+ICA8bGk+IFRoZSBUZXh0IFRl c3RSdW5uZXIgbm93IHNob3dzIHRoZSBzdW1tYXJ5IGF0IHRoZSB2ZXJ5IGVuZCBz byB0aGF0IHlvdSBkb24ndCBoYXZlIHRvIHNjcm9sbCBiYWNrLjwvbGk+ICA8L2Zv bnQ+IDwvdWw+IDxoMz4gPGZvbnQgY29sb3I9IiMwMDAwMDAiPlRlc3RzPC9mb250 PjwvaDM+IDx1bD4gIDxsaT4gIDxmb250IGNvbG9yPSIjMDAwMDAwIj5UZXh0UnVu bmVyVGVzdCBub3cgb25seSBkZXBlbmRzIG9uIGEgbm9uemVybyBzdGF0dXMgdG8g aW5kaWNhdGUgYWJub3JtYWwgdGVybWluYXRpb24uPC9mb250PjwvbGk+ICA8bGk+ ICA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+VGV4dFJ1bm5lclRlc3Qgbm93IGFsc28g cGFzc2VzIG9uIEpESyAxLjEuKi4gSXQgdXNlcyB0aGUgLWNsYXNzcGF0aCBjb21t YW5kIGxpbmUgYXJndW1lbnQgaW5zdGVhZCBvZiAtY3AuPC9mb250PjwvbGk+IDwv dWw+IDxoMz4gPGZvbnQgY29sb3I9IiMwMDAwMDAiPkRvY3VtZW50YXRpb248L2Zv bnQ+PC9oMz4gPHVsPiAgPGxpPiAgPGZvbnQgY29sb3I9IiMwMDAwMDAiPkFkZCBh biBGQVEgZW50cnkgYWJvdXQgd2hhdCB0byBkbyB3aGVuIHRoZSBqdW5pdCB0ZXN0 cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24gY2FuJ3QgYmUgZm91bmQu PC9mb250PjwvbGk+IDwvdWw+IDxoMj4gPGZvbnQgY29sb3I9IiMwMDAwMDAiPk9s ZGVyIENoYW5nZSBOb3RlczwvZm9udD48L2gyPiA8YmxvY2txdW90ZT4gIDxsaT48 Zm9udCBjb2xvcj0iIzAwMDAwMCI+Q2hhbmdlcyBiZXR3ZWVuIDxhIGhyZWY9ImRv Yy9jaGFuZ2VzMzQuaHRtbCI+Mi4xIGFuZCAzLjQ8L2E+PC9mb250PjwvbGk+ICA8 bGk+ICA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+Q2hhbmdlcyBiZXR3ZWVuIDxhIGhy ZWY9ImRvYy9jaGFuZ2VzMjEuaHRtbCI+MS4wIGFuZCAyLjE8L2E+PC9mb250Pjwv bGk+IDwvYmxvY2txdW90ZT4gPGgyPiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+PGEg bmFtZT0iQ29udGVudHMiPjwvYT5Db250ZW50cyBvZiB0aGUgUmVsZWFzZTwvZm9u dD48L2gyPiA8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4g IDx0Ym9keT4gIDx0cj4gIDx0ZD48dHQ+UkVBRE1FLmh0bWwmbmJzcDs8L3R0Pjwv dGQ+ICA8dGQ+dGhpcyBmaWxlPC90ZD4gIDwvdHI+ICA8dHI+ICA8dGQ+PHR0Pmp1 bml0LmphcjwvdHQ+PC90ZD4gIDx0ZD5hIGphciBmaWxlIHdpdGggdGhlIEpVbml0 IGZyYW1ld29yayBhbmQmbmJzcDsgdG9vbHMmbmJzcDs8L3RkPiAgPC90cj4gIDx0 cj4gIDx0ZD5zcmMuamFyPC90ZD4gIDx0ZD5hIGphciBmaWxlIHdpdGggdGhlIHNv dXJjZSBjb2RlIG9mIHRoZSBqdW5pdCBmcmFtZXdvcms8L3RkPiAgPC90cj4gIDx0 cj4gIDx0ZD48dHQ+anVuaXQ8L3R0PjwvdGQ+ICA8dGQ+dGhlIHNvdXJjZSBjb2Rl IG9mIHRoZSBKVW5pdCBzYW1wbGVzPC90ZD4gIDwvdHI+ICA8dHI+ICA8dGQ+PHR0 PiZuYnNwOyZuYnNwOyZuYnNwOyBzYW1wbGVzPC90dD48L3RkPiAgPHRkPnNhbXBs ZSB0ZXN0IGNhc2VzPC90ZD4gIDwvdHI+ICA8dHI+ICA8dGQ+PHR0PiZuYnNwOyZu YnNwOyZuYnNwOyB0ZXN0czwvdHQ+PC90ZD4gIDx0ZD50ZXN0IGNhc2VzIGZvciBK VW5pdCBpdHNlbGY8L3RkPiAgPC90cj4gIDx0cj4gIDx0ZD48dHQ+amF2YWRvYzwv dHQ+PC90ZD4gIDx0ZD5qYXZhZG9jIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uPC90 ZD4gIDwvdHI+ICA8dHI+ICA8dGQ+PHR0PmRvYzwvdHQ+PC90ZD4gIDx0ZD5kb2N1 bWVudGF0aW9uIGFuZCBhcnRpY2xlczwvdGQ+ICA8L3RyPiAgPC90Ym9keT4gPC90 YWJsZT4gPGgyPiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+PGEgbmFtZT0iSW5zdGFs bGF0aW9uIj48L2E+SW5zdGFsbGF0aW9uPC9mb250PjwvaDI+IDxmb250IGNvbG9y PSIjMDAwMDAwIj5CZWxvdyBhcmUgdGhlIGluc3RhbGxhdGlvbiBzdGVwcyBmb3Ig aW5zdGFsbGluZyBKVW5pdDogPC9mb250PiA8b2w+ICA8bGk+ICA8Zm9udCBjb2xv cj0iIzAwMDAwMCI+dW56aXAgdGhlIGp1bml0LnppcCBmaWxlPC9mb250PjwvbGk+ ICA8bGk+ICA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+YWRkPGk+IDwvaT48Yj5qdW5p dC5qYXI8L2I+IHRvIHRoZSBDTEFTU1BBVEguIEZvciBleGFtcGxlOiA8dHQ+c2V0 IGNsYXNzcGF0aD0lY2xhc3NwYXRoJTtJTlNUQUxMX0RJUlxqdW5pdDNcanVuaXQu amFyPC90dD48L2ZvbnQ+PC9saT4gIDxsaT4gIDxmb250IGNvbG9yPSIjMDAwMDAw Ij50ZXN0IHRoZSBpbnN0YWxsYXRpb24gYnkgdXNpbmcgZWl0aGVyIHRoZSBiYXRj aCBvciB0aGUgZ3JhcGhpY2FsIFRlc3RSdW5uZXIgdG9vbCB0byBydW4gdGhlIHRl c3RzIHRoYXQgY29tZSB3aXRoIHRoaXMgcmVsZWFzZS4gQWxsIHRoZSB0ZXN0cyBz aG91bGQgcGFzcyBPSy48L2ZvbnQ+PC9saT4gIDxmb250IGNvbG9yPSIjMDAwMDAw Ij48YnI+ICA8Yj48Zm9udCBjb2xvcj0iI2ZmMDAwMCI+Tm90aWNlPC9mb250Pjwv Yj46IHRoYXQgdGhlIHRlc3RzIGFyZSBub3QgY29udGFpbmVkIGluIHRoZSBqdW5p dC5qYXIgYnV0IGluIHRoZSBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IGRpcmVjdGx5 LiBUaGVyZWZvcmUgbWFrZSBzdXJlIHRoYXQgdGhlIGluc3RhbGxhdGlvbiBkaXJl Y3RvcnkgaXMgb24gdGhlIGNsYXNzIHBhdGggPC9mb250PiAgPHVsPiAgPGxpPiAg PGZvbnQgY29sb3I9IiMwMDAwMDAiPmZvciB0aGUgYmF0Y2ggVGVzdFJ1bm5lciB0 eXBlOjwvZm9udD48L2xpPiAgPGZvbnQgY29sb3I9IiMwMDAwMDAiPjxicj4gIDx0 dD4mbmJzcDsmbmJzcDsmbmJzcDsgamF2YSBqdW5pdC50ZXh0dWkuVGVzdFJ1bm5l ciBqdW5pdC5zYW1wbGVzLkFsbFRlc3RzPC90dD4gIDxsaT5mb3IgdGhlIGdyYXBo aWNhbCBUZXN0UnVubmVyIHR5cGU6PC9saT4gIDxicj4gIDx0dD4mbmJzcDsmbmJz cDsmbmJzcDsgamF2YSBqdW5pdC5hd3R1aS5UZXN0UnVubmVyIGp1bml0LnNhbXBs ZXMuQWxsVGVzdHM8L3R0PiAgPGxpPmZvciB0aGUgU3dpbmcgYmFzZWQgZ3JhcGhp Y2FsIFRlc3RSdW5uZXIgdHlwZTo8L2xpPiAgPGJyPiAgPHR0PiZuYnNwOyZuYnNw OyZuYnNwOyBqYXZhIGp1bml0LnN3aW5ndWkuVGVzdFJ1bm5lciBqdW5pdC5zYW1w bGVzLkFsbFRlc3RzPC90dD48L2ZvbnQ+ICA8L3VsPiA8L29sPiA8Zm9udCBjb2xv cj0iIzAwMDAwMCI+PGI+PGZvbnQgY29sb3I9IiNmZjAwMDAiPkltcG9ydGFudDwv Zm9udD48L2I+OiBkb24ndCBpbnN0YWxsIHRoZSBqdW5pdC5qYXIgaW50byB0aGUg ZXh0ZW5zaW9uIGRpcmVjdG9yeSBvZiB5b3VyIEpESyBpbnN0YWxsYXRpb24uIElm IHlvdSBkbyBzbyB0aGUgdGVzdCBjbGFzcyBvbiB0aGUgZmlsZXMgc3lzdGVtIHdp bGwgbm90IGJlIGZvdW5kLiA8L2ZvbnQ+IDxoMj48Zm9udCBjb2xvcj0iIzAwMDAw MCI+PGEgbmFtZT0iR2V0dGluZyI+PC9hPkdldHRpbmcgU3RhcnRlZDwvZm9udD48 L2gyPiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+VG8gZ2V0IHN0YXJ0ZWQgd2l0aCB1 bml0IHRlc3RpbmcgYW5kIEpVbml0IHJlYWQgdGhlIEphdmEgUmVwb3J0IGFydGlj bGU6IDxhIGhyZWY9ImRvYy90ZXN0aW5mZWN0ZWQvdGVzdGluZy5odG0iPlRlc3Qg SW5mZWN0ZWQgLSBQcm9ncmFtbWVycyBMb3ZlIFdyaXRpbmcgVGVzdHM8L2E+LiA8 YnI+IFRoaXMgYXJ0aWNsZSBkZW1vbnN0cmF0ZXMgdGhlIGRldmVsb3BtZW50IHBy b2Nlc3Mgd2l0aCBKVW5pdCBpbiB0aGUgY29udGV4dCBvZiBtdWx0aXBsZSBjdXJy ZW5jeSBhcml0aG1ldGljLiBUaGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSBp cyBpbiBqdW5pdFxzYW1wbGVzXG1vbmV5LiA8L2ZvbnQ+IDxwPjxmb250IGNvbG9y PSIjMDAwMDAwIj5Zb3UgZmluZCBhZGRpdGlvbmFsIHNhbXBsZXMgaW4gdGhlIGp1 bml0LnNhbXBsZXMgcGFja2FnZTogPC9mb250PjwvcD4gPHVsPiAgPGxpPiAgPGZv bnQgY29sb3I9IiMwMDAwMDAiPlNpbXBsZVRlc3QuamF2YSAtIHNvbWUgc2ltcGxl IHRlc3QgY2FzZXM8L2ZvbnQ+PC9saT4gIDxsaT4gIDxmb250IGNvbG9yPSIjMDAw MDAwIj5WZWN0b3JUZXN0LmphdmEgLSB0ZXN0IGNhc2VzIGZvciBqYXZhLnV0aWwu VmVjdG9yPC9mb250PjwvbGk+IDwvdWw+IDxoMj4gPGZvbnQgY29sb3I9IiMwMDAw MDAiPjxhIG5hbWU9IkRvY3VtZW50YXRpb24iPjwvYT5Eb2N1bWVudGF0aW9uPC9m b250PjwvaDI+IDxibG9ja3F1b3RlPjxmb250IGNvbG9yPSIjMDAwMDAwIj48YSBo cmVmPSJkb2MvY29va2Jvb2svY29va2Jvb2suaHRtIj5KVW5pdCBDb29rYm9vazwv YT4gIDxicj4gJm5ic3A7Jm5ic3A7Jm5ic3A7IEEgY29va2Jvb2sgZm9yIGltcGxl bWVudGluZyB0ZXN0cyB3aXRoIEpVbml0LiA8YnI+ICA8YSBocmVmPSJkb2MvdGVz dGluZmVjdGVkL3Rlc3RpbmcuaHRtIj5UZXN0IEluZmVjdGVkIC0gUHJvZ3JhbW1l cnMgTG92ZSBXcml0aW5nIFRlc3RzPC9hPiAgPGJyPiAmbmJzcDsmbmJzcDsmbmJz cDsgQW4gYXJ0aWNsZSBkZW1vbnN0cmF0aW5nIHRoZSBkZXZlbG9wbWVudCBwcm9j ZXNzIHdpdGggSlVuaXQuIDxicj4gIDxhIGhyZWY9ImRvYy9jb29rc3RvdXIvY29v a3N0b3VyLmh0bSI+SlVuaXQgLSBBIGNvb2tzIHRvdXI8L2E+ICA8YnI+ICA8YSBo cmVmPSJqYXZhZG9jL2luZGV4Lmh0bWwiPkphdmFkb2M8L2E+ICA8YnI+ICZuYnNw OyZuYnNwOyZuYnNwOyBBUEkgZG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgd2l0aCBq YXZhZG9jLiA8YnI+ICA8YSBocmVmPSJkb2MvZmFxL2ZhcS5odG0iPkZyZXF1ZW50 bHkgYXNrZWQgcXVlc3Rpb25zPC9hPiAgPGJyPiAmbmJzcDsmbmJzcDsmbmJzcDsg U29tZSBmcmVxdWVudGx5IGFza2VkIHF1ZXN0aW9ucyBhYm91dCB1c2luZyBKVW5p dC4gPGJyPiAgPGEgaHJlZj0iZG9jL0pVbml0UHJvcGVydGllcy5odG1sIj5UZXN0 UnVubmVyIFByZWZlcmVuY2Ugc2V0dGluZ3M8L2E+ICA8YnI+ICZuYnNwOyZuYnNw OyZuYnNwOyBEZXNjcmliZXMgdGhlIHByZWZlcmVuY2VzIHNldHRpbmdzIHRoYXQg Y2FuIGJlIGNvbmZpZ3VyZWQgZm9yIHRoZSBKVW5pdCBUZXN0UnVubmVycy48YnI+ ICA8YSBocmVmPSJjcGwtdjEwLmh0bWwiPkxpY2Vuc2U8L2E+ICA8YnI+ICZuYnNw OyZuYnNwOyZuYnNwOyBUaGUgdGVybXMgb2YgdGhlIGNvbW1vbiBwdWJsaWMgbGlj ZW5zZSB1c2VkIGZvciBKVW5pdC48L2ZvbnQ+PC9ibG9ja3F1b3RlPiA8aDI+IDxm b250IGNvbG9yPSIjMDAwMDAwIj48YSBuYW1lPSJFeHRlbmRpbmciPjwvYT5FeHRl bmRpbmcgSlVuaXQ8L2ZvbnQ+PC9oMj4gPGZvbnQgY29sb3I9IiMwMDAwMDAiPkV4 YW1wbGVzIG9mIHBvc3NpYmxlIEpVbml0IGV4dGVuc2lvbnMgY2FuIGJlIGZvdW5k IGluIHRoZSA8dHQ+anVuaXQuZXh0ZW5zaW9uczwvdHQ+IHBhY2thZ2U6IDwvZm9u dD4gPHVsPiAgPGxpPiAgPGZvbnQgY29sb3I9IiMwMDAwMDAiPjxhIGhyZWY9Imph dmFkb2MvanVuaXQvZXh0ZW5zaW9ucy9UZXN0RGVjb3JhdG9yLmh0bWwiPlRlc3RE ZWNvcmF0b3I8L2E+IC0gQSBkZWNvcmF0b3IgZm9yIFRlc3QuIFlvdSBjYW4gdXNl IGl0IGFzIHRoZSBiYXNlIGNsYXNzIGZvciBpbXBsZW1lbnRpbmcgZGVjb3JhdG9y cyB0byBleHRlbmQgdGVzdCBjYXNlcy48L2ZvbnQ+PC9saT4gIDxsaT4gIDxmb250 IGNvbG9yPSIjMDAwMDAwIj48YSBocmVmPSJqYXZhZG9jL2p1bml0L2V4dGVuc2lv bnMvQWN0aXZlVGVzdFN1aXRlLmh0bWwiPkFjdGl2ZVRlc3RTdWl0ZTwvYT4gLSBB IFRlc3RTdWl0ZSB3aGljaCBydW5zIGVhY2ggdGVzdCBpbiBhIHNlcGFyYXRlIHRo cmVhZCBhbmQgd2FpdHMgdW50aWwgdGhleSBhcmUgYWxsIHRlcm1pbmF0ZWQuPC9m b250PjwvbGk+ICA8bGk+ICA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+PGEgaHJlZj0i amF2YWRvYy9qdW5pdC9leHRlbnNpb25zL1Rlc3RTZXR1cC5odG1sIj5UZXN0U2V0 dXA8L2E+IC0gQSBEZWNvcmF0b3IgdG8gc2V0IHVwIGFuZCB0ZWFyIGRvd24gYWRk aXRpb25hbCBmaXh0dXJlIHN0YXRlLiBTdWJjbGFzcyBUZXN0U2V0dXAgYW5kIGlu c2VydCBpdCBpbnRvIHlvdXIgdGVzdHMgd2hlbiB5b3Ugd2FudCB0byBzZXQgdXAg YWRkaXRpb25hbCBzdGF0ZSBvbmNlIGJlZm9yZSB0aGUgdGVzdHMgYXJlIHJ1bi48 L2ZvbnQ+PC9saT4gIDxsaT4gIDxmb250IGNvbG9yPSIjMDAwMDAwIj48YSBocmVm PSJqYXZhZG9jL2p1bml0L2V4dGVuc2lvbnMvRXhjZXB0aW9uVGVzdENhc2UuaHRt bCI+RXhjZXB0aW9uVGVzdENhc2U8L2E+IC0gQSBUZXN0Q2FzZSB0aGF0IGV4cGVj dHMgYSBwYXJ0aWN1bGFyIEV4Y2VwdGlvbiB0byBiZSB0aHJvd24uPC9mb250Pjwv bGk+IDwvdWw+IDxociB3aWR0aD0iMTAwJSI+IDwhLS13ZWJib3QgYm90PSJIVE1M TWFya3VwIiBzdGFydHNwYW4gLS0+PGZvbnQgY29sb3I9IiMwMDAwMDAiPjxhIGhy ZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQiPjxpbWcgc3JjPSJodHRwOi8vc291 cmNlZm9yZ2UubmV0L3NmbG9nby5waHA/Z3JvdXBfaWQ9MTUyNzgiIHdpZHRoPSI4 OCIgaGVpZ2h0PSIzMSIgYm9yZGVyPSIwIiBhbHQ9IlNvdXJjZUZvcmdlIExvZ28i PjwvYT48IS0td2ViYm90IGJvdD0iSFRNTE1hcmt1cCIgZW5kc3BhbiAtLT48L2Zv bnQ+IDwvYm9keT4gPC9odG1sPg0K --Boundary_(ID_fXWXwMGc49/VT0umsMidBA)--