Re: JDOM 2 list of elements, remove nulls out entries and fails to remove?
David Wall <[email protected]> Fri, 11 May 2012 19:17:03 -0700
| Newsgroups | gmane.comp.java.jdom.general |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
--------------080309030401080904030202
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Okay,
Attached is the XML I was parsing. In particular, I noted the null
pointer on the elements DropDown and DropDownVersion. There should be a
one-to-one correspondence between these two elements, with the
DropDownVersion containing a dropDownId that links it to the DropDown
element.
I have also attached the source code file, but it's not a nice test
case. I have a few areas with "JDOM:" comments that are geared for you.
Thanks,
David
On 5/11/2012 7:02 PM, Rolf Lear wrote:
> Please send the code.... put a comment in it where you think the
> failure is..... Under no condition should JDOM return a null value...
>
> Rolf
>
> On 11/05/2012 9:45 PM, David Wall wrote:
>> Thanks, Rolf. No, it's definitely not a threading issue. If you saw my
>> second posting, it all works as expected if I create my own
>> LinkedList<Element> from the list returned by getChildren().
>>
>> If you think it's still a possible issue, I can attached the actual
>> source code and the sample XML data I was parsing. I'm not familiar with
>> JDOM's internals, but if I remove one Element, does that cause a shift
>> for all subsequent elements? I ask this because I am actually creating
>> two lists, one is the main object, and the second is an associated
>> "version" object (the main object can have multiple versions associated
>> with it). In the XML, they are ordered like OBJ, OBJVERSION, OBJ,
>> OBJVERSION, OBJ, OBJVERSION.
>>
>> When I created to the two lists (one of OBJ and the other of
>> OBJVERSION), I noted that as soon as I deleted the OBJ from the first
>> list, the second list already showed a 'null' element at the end of its
>> list. It made me think that the elements are shifting in the live lists
>> from JDOM and thus I'm no longer working on the originally retrieved
>> lists.
>>
>> So, if that's all it is and my usage scenario was bogus before, I'm good
>> since I've changed to create my own lists now. But if you think it could
>> still be an issue, I'm happy to send the code and XML to you (it's open
>> source code anyway).
>>
>> Thanks,
>> David
>>
>>
>> On 5/11/2012 6:14 PM, Rolf Lear wrote:
>>> Hi David.
>>>
>>> This problem you describe is very concerning, and should not, in
>>> 'supported' usage ever happen....
>>>
>>> I am wracking my brains to figure out what it could be, but, the only
>>> think I can think is that you are accessing the JDOM objects from
>>> different threads.... JDOM is *not* thread safe.
>>>
>>> If this is happening in a single-threaded mechanism, would it be
>>> possible to put together a failing 'test case', any code that shows
>>> the problem?
>>>
>>> I have to admit that I thought he iteration/remove/add/etc. type code
>>> is very well tested, and I would be *very* suprised if there is a
>>> problem like this.... in fact, I know that there are test cases that
>>> cover this basic condition that you describe... and they never fail....
>>>
>>> so, if you can confirm this is all happening in one thread.... and
>>> preferably if you can put together an example of the problem, I would
>>> look in to it immediately....
>>>
>>> Rolf
>>>
>>> On 11/05/2012 8:42 PM, David Wall wrote:
>>>> I believe I've run into a problem that I don't think I had with JDOM
>>>> 1.1.3 before I upgraded to 2.0.1.
>>>>
>>>> I create a list of elements of a selected element using:
>>>>
>>>> List<?> documentVersionElements =
>>>> rootElement.getChildren("DocumentVersion", ns);
>>>>
>>>> I see that I have 6 elements as expected in my list. None are null.
>>>>
>>>> I am basically then trying to find a matching related element id in
>>>> that list using something like:
>>>>
>>>> Element found = null;
>>>> ListIterator<?> iter = documentVersionElements .listIterator();
>>>> while( iter.hasNext() ) {
>>>> Element checkElement = (Element)iter.next();
>>>> EsfUUID evParentId = new
>>>> EsfUUID(checkElement.getChildText("documentId", ns));
>>>> if ( evParentId.equals(id) ) {
>>>> found = checkElement;
>>>> break;
>>>> }
>>>> }
>>>>
>>>> Then, assuming I find it (found != null), I process it as expected.
>>>> But I then want to remove the found element from the element list so
>>>> it cannot be found again, so I use this:
>>>>
>>>> documentVersionElements.remove(found);
>>>>
>>>> Most of the time, this seems to work as expected, and the
>>>> documentVersionElements list is then shorter by 1. But there are
>>>> times when a list of 6 elements remains 6 elements after the remove
>>>> (and remove() returns false), with 4 of them now null (not removed,
>>>> but actually a null element), so in when I return to the
>>>> listIterator() above and get my next() element, the element is null.
>>>>
>>>> It's as if my Element objects are not unique in the list in terms of
>>>> equals/hashCode as my elements should never be nulled out.
>>>>
>>>> I am not sure why an element I find by iterating cannot then be
>>>> removed. How could it fail to remove? Why would it change other list
>>>> elements to NULL instead? Is this not a valid usage pattern?
>>>>
>>>> Thanks,
>>>> David
>>>> _______________________________________________
>>>> To control your jdom-interest membership:
>>>> http://www.jdom.org/mailman/options/jdom-interest/[email protected]
>>>>
>>>>
>>>
>>
>
--------------080309030401080904030202
Content-Type: text/xml;
name="Partners_Toni_Export.xml"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="Partners_Toni_Export.xml"
<LibraryExport xmlns="http://open.esignforms.com/XMLSchema/2011">
<deployId>bbfe9bed-918d-446b-9518-8ec303bafb83</deployId>
<release>Open eSignForms v12.6.2_pre0510</release>
<versionMajor>12</versionMajor>
<versionMinor>6</versionMinor>
<timestamp>2012-05-11T23:46:30Z</timestamp>
<exportedByUserId>7a4d38ce-7457-406f-9fb0-c174d2bc997c</exportedByUserId>
<libraryId>2baaae3d-fa0a-4856-95ee-a94761d0a03f</libraryId>
<libraryPathName>Partners/Toni</libraryPathName>
<Document xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>f3aaf623-4f8c-4677-a595-060254a6c67e</id>
<libraryId>2baaae3d-fa0a-4856-95ee-a94761d0a03f</libraryId>
<esfname>I9</esfname>
<displayName>I9</displayName>
<description></description>
<status>E</status>
<comments></comments>
<productionVersion>2</productionVersion>
<testVersion>2</testVersion>
</Document>
<DocumentVersion xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>4647a5d6-51b6-497e-81ee-d1134c3f8490</id>
<documentId>f3aaf623-4f8c-4677-a595-060254a6c67e</documentId>
<version>2</version>
<createdTimestamp>2011-08-17T17:53:29Z</createdTimestamp>
<createdByUserId>542770c4-c916-4f2e-97d8-c1a0002a2994</createdByUserId>
<lastUpdatedTimestamp>2012-04-25T20:40:57Z</lastUpdatedTimestamp>
<lastUpdatedByUserId>7a4d38ce-7457-406f-9fb0-c174d2bc997c</lastUpdatedByUserId>
<documentStyleEsfName>ESF_DefaultDocumentStyle</documentStyleEsfName>
<documentStyleId>9a000404-5f56-4a1c-ad4a-be6382c67d97</documentStyleId>
<pageOrientation>P</pageOrientation>
<DocumentVersionPage xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a45caa6d-83ce-449a-9c8d-51b420e7ce3d</id>
<documentVersionId>4647a5d6-51b6-497e-81ee-d1134c3f8490</documentVersionId>
<pageNumber>1</pageNumber>
<esfname>Page1</esfname>
<html><table border="0" cellpadding="0" cellspacing="0" style="margin: 0px; width: 100%">
<tbody>
<tr>
<td style="width: 251px">
<div style="padding-left: 4px">
<span style="font-family: times new roman, times, serif"><strong>Department of Homeland Security</strong><br />
U.S. Citizenship and Immigration Services</span></div>
</td>
<td style="width: 238px">
<div style="text-align: right">
<span style="font-size: 12px"><span style="font-family: times new roman, times, serif">OMB No. 1615-0047; Expires 8/31/12<br />
<span style="font-size: 18px"><strong>Form I-9, Employment</strong></span></span></span><br />
<span style="font-size: 12px"><span style="font-family: times new roman, times, serif"><span style="font-size: 18px"><strong>Eligibility Verification</strong></span></span></span></div>
</td>
</tr>
</tbody>
</table>
<div style="border-bottom: black 7px solid; margin: 0px; width: 100%; height: 7px">
&nbsp;</div>
<div style="border-bottom: black 1px solid; margin-top: 1px; width: 100%; height: 2px">
&nbsp;</div>
<div style="margin-top: 0px">
<strong><span style="font-size: 12px"><span style="font-family: times new roman, times, serif"><a href="http://www.uscis.gov/files/form/i-9.pdf" target="_blank">Read instructions carefully</a> before completing this form. The instructions must be available during completion of this form.</span></span></strong></div>
<p style="margin-bottom: 0px"><span style="font-size: 14px"><strong><span style="font-family: times new roman, times, serif">ANTI-DISCRIMINATION NOTICE: It is illegal to discriminate against work-authorized individuals. Employers CANNOT specify which document(s) they will accept from an employee. The refusal to hire an individual because the documents have a future expiration date may also constitute illegal discrimination.</span></strong></span></p>
<p style="margin: 0px; border-top: black 5px solid"><span style="font-size: 14px"><strong><span style="font-family: times new roman, times, serif">Section 1. Employee Information and Verification. </span></strong><em><span style="font-family: times new roman, times, serif">(To be completed and signed by employee at the time employment begins.)</span></em></span></p>
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%">
<tbody>
<tr>
<td style="width: 70%; border-top: black 1px solid">
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%">
<tbody>
<tr>
<td style="width: 264px; padding-right: 1em">
${lastName}</td>
<td style="width: 174px; padding-right: 1em">
${firstName}</td>
<td style="width: 64px; padding-right: 1em">
${middleInitials}</td>
</tr>
</tbody>
</table>
</td>
<td style="border-left: black 1px solid; padding-left: 1em; width: 30%; border-top: black 1px solid">
${maidenName}</td>
</tr>
<tr>
<td style="border-top: black 1px solid">
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%">
<tbody>
<tr>
<td style="width: 436px; padding-right: 1em">
${address}</td>
<td style="width: 91px; padding-right: 1em">
${apartmentNum}</td>
</tr>
</tbody>
</table>
</td>
<td style="border-left: black 1px solid; padding-left: 1em; border-top: black 1px solid">
${dob}</td>
</tr>
<tr>
<td style="border-top: black 1px solid">
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%">
<tbody>
<tr>
<td style="width: 205px; padding-right: 1em">
${city}</td>
<td style="width: 165px; padding-right: 1em">
${state}</td>
<td style="width: 77px; padding-right: 1em">
${zip}</td>
</tr>
</tbody>
</table>
</td>
<td style="border-left: black 1px solid; padding-left: 1em; border-top: black 1px solid">
${ssn}</td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%">
<tbody>
<tr>
<td style="width: 50%; white-space: nowrap; border-top: black 1px solid; border-right: black 1px solid">
<span style="font-family: times new roman, times, serif"><span style="font-size: 14px"><strong>I am aware that federal law provides for<br />
imprisonment and/or fines for false statements or<br />
use of false documents in connection with the<br />
completion of this form.</strong></span></span></td>
<td style="width: 50%; border-top: black 1px solid">
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 3px">
<span style="font-family: times new roman, times, serif"><span style="font-size: 11px">I attest, under penalty of perjury, that I am (check one of the following):</span></span></div>
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 3px">
<span style="font-family: times new roman, times, serif"><span style="font-size: 11px">${rbCitizen} </span></span></div>
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 3px">
<span style="font-family: times new roman, times, serif"><span style="font-size: 11px">${rbNonCitizen}</span></span><span style="font-family: times new roman, times, serif"><span style="font-size: 11px"> </span></span></div>
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 3px">
<span style="font-family: times new roman, times, serif"><span style="font-size: 11px">${rbPermanentAlien}</span></span><span style="font-family: times new roman, times, serif"><span style="font-size: 11px">&nbsp; ${alienNum}</span></span></div>
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 3px">
<span style="font-family: times new roman, times, serif"><span style="font-size: 11px">${rbAuthorizedAlien}</span></span><span style="font-family: times new roman, times, serif"><span style="font-size: 11px">&nbsp;&nbsp;${alienOrAdmissionNum}</span></span><br />
<span style="font-family: times new roman, times, serif; font-size: 11px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ${alienExpirationDate}</span></div>
</td>
</tr>
<tr>
<td style="border-bottom: black 3px solid; white-space: nowrap; border-top: black 1px solid">
<div style="padding-bottom: 0px; padding-left: 0px; padding-right: 1em; padding-top: 3px">
${employeeSignature}</div>
</td>
<td style="border-bottom: black 3px solid; white-space: nowrap; border-top: black 1px solid">
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 3px">
${employeeSignatureDate}</div>
</td>
</tr>
</tbody>
</table>
<p style="margin: 0px"><span style="font-size: 14px"><strong><span style="font-family: times new roman, times, serif">Preparer and/or Translator Certification</span></strong><em><span style="font-family: times new roman, times, serif"> <span style="font-size: 12px">(To be completed and signed if Section 1 is prepared by a person other than the employee.) I attest, under penalty of perjury, that I have assisted in the completion of this form and that to the best of my knowledge the information is true and correct.)</span></span></em></span></p>
<table align="center" border="0" cellpadding="0" cellspacing="0" style="margin: 0px auto; width: 80%">
<tbody>
<tr>
<td class="boT">
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%">
<tbody>
<tr>
<td style="padding-bottom: 0px; padding-left: 0px; width: 352px; padding-right: 1em; padding-top: 3px">
${preparerSignature}</td>
<td style="border-left: black 1px solid; padding-bottom: 0px; padding-left: 1em; width: 345px; padding-right: 0px; padding-top: 3px">
${preparerName}</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td class="boT">
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%">
<tbody>
<tr>
<td style="padding-bottom: 0px; padding-left: 0px; width: 535px; padding-right: 1em; padding-top: 3px">
${preparerAddress}</td>
<td style="border-left: black 1px solid; padding-bottom: 0px; padding-left: 1em; width: 162px; padding-right: 0px; padding-top: 3px">
${preparerSignatureDate}</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p style="border-bottom: black 1px solid; margin: 0px; border-top: black 3px solid"><span style="font-size: 14px"><strong><span style="font-family: times new roman, times, serif">Section 2. Employer Review and Verification</span></strong><em> (To be completed and signed by employer. Examine one document from List A OR examine one document from List B and one from List C, as listed on the reverse of this form, and record the title, number, and expiration date, if any, of the document(s).)</em></span></p>
<table align="center" border="0" cellpadding="0" cellspacing="0" style="margin: 0px; width: 100%">
<tbody>
<tr>
<td>
&nbsp;</td>
<td class="w33" style="text-align: center">
<strong><span style="font-family: times new roman, times, serif">List A</span></strong></td>
<td>
<strong><span style="font-family: times new roman, times, serif">OR</span></strong></td>
<td class="w33" style="text-align: center">
<strong><span style="font-family: times new roman, times, serif">List B</span></strong></td>
<td>
<u><strong><span style="font-family: times new roman, times, serif">AND</span></strong></u></td>
<td class="w33" style="text-align: center">
<strong><span style="font-family: times new roman, times, serif">List C</span></strong></td>
</tr>
<tr>
<td class="nowrap" style="text-align: right">
${label:documentTitleA}</td>
<td class="w33 nowrap">
<div style="padding-bottom: 0px; padding-left: 0px; padding-right: 1em; padding-top: 3px">
${field:documentTitleA}</div>
</td>
<td rowspan="6" style="background-color: gray">
&nbsp;</td>
<td class="w33 nowrap">
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 1em; padding-top: 3px">
${documentTitleB}</div>
</td>
<td>
&nbsp;</td>
<td class="w33">
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 3px">
${documentTitleC}</div>
</td>
</tr>
<tr>
<td class="nowrap" style="text-align: right">
${label:issuingAuthorityA}</td>
<td class="w33 nowrap">
<div style="padding-bottom: 0px; padding-left: 0px; padding-right: 1em; padding-top: 3px">
${field:issuingAuthorityA}</div>
</td>
<td class="w33">
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 1em; padding-top: 3px">
${issuingAuthorityB}</div>
</td>
<td>
&nbsp;</td>
<td class="w33">
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 3px">
${issuingAuthorityC}</div>
</td>
</tr>
<tr>
<td class="nowrap" style="text-align: right">
${label:documentNumA}</td>
<td class="w33 nowrap">
<div style="padding-bottom: 0px; padding-left: 0px; padding-right: 1em; padding-top: 3px">
${field:documentNumA}</div>
</td>
<td class="w33">
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 1em; padding-top: 3px">
${documentNumB}</div>
</td>
<td>
&nbsp;</td>
<td class="w33">
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 3px">
${documentNumC}</div>
</td>
</tr>
<tr>
<td class="nowrap">
<div style="text-align: right; padding-bottom: 0px; padding-left: 0px; padding-right: 1em; padding-top: 3px">
${label:documentExpireDateA} <span style="font-family: times new roman, times, serif; font-size: 8pt"><em>&nbsp;(if any)</em>:</span></div>
</td>
<td class="w33 nowrap">
<div style="padding-bottom: 0px; padding-left: 0px; padding-right: 1em; padding-top: 3px">
${field:documentExpireDateA}</div>
</td>
<td class="w33">
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 1em; padding-top: 3px">
${documentExpireDateB}</div>
</td>
<td>
&nbsp;</td>
<td class="w33">
<div style="padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 3px">
${documentExpireDateC}</div>
</td>
</tr>
<tr>
<td class="nowrap" style="text-align: right">
${label:documentNum2A}</td>
<td class="w33 nowrap">
<div style="padding-bottom: 0px; padding-left: 0px; padding-right: 1em; padding-top: 3px">
${field:documentNum2A}</div>
</td>
<td class="w33">
&nbsp;</td>
<td>
&nbsp;</td>
<td class="w33">
&nbsp;</td>
</tr>
<tr>
<td class="nowrap">
<div style="text-align: right; padding-bottom: 0px; padding-left: 0px; padding-right: 1em; padding-top: 3px">
${label:documentExpireDate2A} <span style="font-size: 8pt"><em>&nbsp;(if any)</em>:</span></div>
</td>
<td class="w33 nowrap">
<div style="padding-bottom: 1px; padding-left: 0px; padding-right: 1em; padding-top: 3px">
${field:documentExpireDate2A}</div>
</td>
<td class="w33">
&nbsp;</td>
<td>
&nbsp;</td>
<td class="w33">
&nbsp;</td>
</tr>
</tbody>
</table>
<p style="margin: 0px; border-top: black 1px solid"><span style="font-family: times new roman, times, serif"><strong><span style="font-size: 14px">CERTIFICATION:</span> I attest, under penalty of perjury, that I have examined the document(s) presented by the above-named employee, that the above-listed document(s) appear to be genuine and to relate to the employee named, that the employee began employment on </strong><em>${label:hireDate}</em> <strong>${field:hireDate} and that to the best of my knowledge the employee is authorized to work in the United States. (state employment agencies may omit the date the employee began employment.)</strong></span></p>
<table border="0" cellpadding="0" cellspacing="0" class="w100 boT">
<tbody>
<tr>
<td class="w40 boR" style="padding-bottom: 0px; padding-left: 0px; padding-right: 1em; padding-top: 3px">
${witnessSignature}</td>
<td class="w30 boR" style="padding-bottom: 0px; padding-left: 1em; padding-right: 1em; padding-top: 3px">
${witnessName}</td>
<td class="w30" style="padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 3px">
${witnessTitle}</td>
</tr>
<tr>
<td class="boR boT" colspan="2" style="padding-bottom: 0px; padding-left: 0px; padding-right: 1em; padding-top: 3px">
${businessNameAddress}</td>
<td class="boT" style="padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 3px">
${witnessSignatureDate}</td>
</tr>
</tbody>
</table>
<p style="border-bottom: black 1px solid; margin: 0px; border-top: black 3px solid"><span style="font-size: 14px"><strong><span style="font-family: times new roman, times, serif">Section 3. Updating and Reverification </span></strong><em>(To be completed and signed by employer.)</em></span></p>
<table border="0" cellpadding="0" cellspacing="0" class="w100 boT boB">
<tbody>
<tr>
<td class="boR" style="padding-bottom: 0px; padding-left: 0px; width: 264px; padding-right: 1em; padding-top: 3px">
<span style="font-size: 11px"><span style="font-family: times new roman, times, serif">A. ${label:newName} <em>(if applicable)</em></span></span><br />
${newName}</td>
<td class="boR" style="padding-bottom: 0px; padding-left: 1em; width: 174px; padding-right: 1em; padding-top: 3px">
<span style="font-size: 11px"><span style="font-family: times new roman, times, serif">B. ${label:rehireDate} <em>(month/day/year) (if applicable)</em></span></span><br />
${rehireDate}</td>
</tr>
<tr>
<td class="boT nowrap" colspan="2" style="padding-bottom: 0px; padding-left: 0px; padding-right: 1em; padding-top: 3px">
<span style="font-size: 11px"><span style="font-family: times new roman, times, serif">C. If employee's previous grant of work authorization has expired, provide the information below for the document that establishes current employment authorization.</span></span>
<table border="0" cellpadding="0" cellspacing="0" class="w90" style="margin: 0px auto">
<tbody>
<tr>
<td class="w40" style="padding-bottom: 1px; padding-left: 0px; padding-right: 1em; padding-top: 3px">
${newDocumentTitle}</td>
<td class="w30" style="padding-bottom: 1px; padding-left: 1em; padding-right: 1em; padding-top: 3px">
${newDocumentNum}</td>
<td class="w30" style="padding-bottom: 1px; padding-left: 1em; padding-right: 0px; padding-top: 3px">
${newDocumentExpireDate}</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p class="nomargin boT boB bold" style="font-family: times new roman, times, serif; font-size: 10pt">I attest, under penalty of perjury, that to the best of my knowledge, this employee is authorized to work in the United States, and if the employee presented document(s), the document(s) I have examined appear to be genuine and relate to the individual.</p>
<table border="0" cellpadding="0" cellspacing="0" class="w100 boT">
<tbody>
<tr>
<td class="boR boT" style="padding-bottom: 0px; padding-left: 0px; width: 70%; padding-right: 1em; padding-top: 3px">
${witnessSignature2}</td>
<td class="boT" style="padding-bottom: 0px; padding-left: 1em; width: 30%; padding-right: 0px; padding-top: 3px">
${witnessSignature2Date}</td>
</tr>
</tbody>
</table>
<p class="nomargin right" style="font-family: times new roman, times, serif; font-size: 10pt; border-top: black 3px solid">Form I-9 (Rev. 08/07/09) Y</p>
</html>
</DocumentVersionPage>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a3b461bf-d4c4-43f6-9eeb-16a84df48d55</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>address</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>615b0dba-5c0c-4040-a6b8-2dfb9077987b</id>
<label>Address</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>61aa33c3-0eb0-4a21-a691-a4707a27d3c4</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>alienExpirationDate</esfname>
<type>d</type>
<width>10</width>
<widthUnit>M</widthUnit>
<ignoreWidthOnOutput>Y</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>%m/%d/%Y</inputFormatSpec>
<outputFormatSpec>M/d/yy</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>3b04d739-ab1f-43d1-840c-63c0d6a7de60</id>
<label>until (expiration date, if applicable - month/day/year)</label>
<position>L</position>
<separator> </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>02ebbf02-6a3a-4580-90f2-2c1bfbefe132</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>alienNum</esfname>
<type>I</type>
<width>10</width>
<widthUnit>M</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>2e2ebb47-2f3d-4c09-88d7-82720350fd36</id>
<label>(Alien #)</label>
<position>L</position>
<separator> </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>e0c7c335-4288-47ee-a040-7f0ef87ebc1b</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>alienOrAdmissionNum</esfname>
<type>I</type>
<width>10</width>
<widthUnit>M</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>134a3049-1271-4f28-a482-b955eda7f35c</id>
<label>authorized to work</label>
<position>L</position>
<separator> </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>212d5643-1009-41c4-85ef-d486b1321778</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>apartmentNum</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>eb295c82-a321-46a8-94bb-d09747a8569c</id>
<label>Apt. #</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>af253bec-0f24-455d-b116-4248885c9b0f</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>businessNameAddress</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>58ea743d-274f-4b96-ac34-7797b2a50de8</id>
<label>Business or Organization and Address (Street Name and Number, City, State, Zip Code)</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>9efc84de-806b-4c93-90d0-d29c0d3f3425</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>city</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>77a8d5fa-63f6-44f7-98de-4a1b9746206a</id>
<label>City</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>7b6c328f-26a3-4062-874b-f6bed1c4dd1c</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>dob</esfname>
<type>d</type>
<width>10</width>
<widthUnit>M</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>%m/%d/%Y</inputFormatSpec>
<outputFormatSpec>M/d/yy</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>9f49469d-18c9-46a4-8d15-6a2623cb3974</id>
<label>Date of Birth (month/day/year)</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a86ea8ed-02d1-4210-a7c3-bfef95c98770</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>2</containerReferenceCount>
<esfname>documentExpireDate2A</esfname>
<type>d</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>%m/%d/%Y</inputFormatSpec>
<outputFormatSpec>M/d/yy</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>c433b7bc-3b7c-4886-8ab4-af3bb16e54e2</id>
<label>Expiration Date</label>
<position>L</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>2c0f8dbe-d3c0-4d9d-9583-1a6cbc803ef3</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>2</containerReferenceCount>
<esfname>documentExpireDateA</esfname>
<type>d</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>%m/%d/%Y</inputFormatSpec>
<outputFormatSpec>M/d/yy</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>4fd3d81e-a610-41b5-9dea-ba4c65e48687</id>
<label>Expiration date</label>
<position>L</position>
<separator> </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>951d1ae8-8aea-4cdc-afb3-a60e06c34fdc</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>documentExpireDateB</esfname>
<type>d</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>%m/%d/%Y</inputFormatSpec>
<outputFormatSpec>M/d/yy</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>baf16774-0c07-41f3-b52f-a33dcf74872d</id>
<label>DocumentExpireDateB</label>
<position>N</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>b13701b2-7575-4302-adba-b6b3aa3af2da</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>documentExpireDateC</esfname>
<type>d</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>%m/%d/%Y</inputFormatSpec>
<outputFormatSpec>M/d/yy</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>33c805ca-61be-4bba-b5a4-4ec1ea71ce94</id>
<label>DocumentExpireDateC</label>
<position>N</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>50ed5d5f-9dfd-4ad3-837b-8fd92d53ca54</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>2</containerReferenceCount>
<esfname>documentNum2A</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>97aebc49-22fd-4abd-94dd-b4b425dca3db</id>
<label>Document #</label>
<position>L</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a5734137-2467-4be6-8df5-524a693b74cd</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>2</containerReferenceCount>
<esfname>documentNumA</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>47ed2077-09a5-498d-a8aa-51e860c1dbb3</id>
<label>Document #</label>
<position>L</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>0353c940-06ec-43d4-9dfc-d0edbef76ab6</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>documentNumB</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>9be21ec7-31d0-4d81-b6d1-fc5b769975dd</id>
<label>DocumentNumB</label>
<position>N</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>f8793810-8e1f-4dfd-93fa-1dad12fa5995</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>documentNumC</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>3ca70e0a-86e6-42fa-847e-e187825ac210</id>
<label>DocumentNumC</label>
<position>N</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>dec57cf1-205a-479d-a752-8c11796893b2</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>2</containerReferenceCount>
<esfname>documentTitleA</esfname>
<type>S</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>I9_List_A_Document_Titles</inputFormatSpec>
<outputFormatSpec>value</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>7661ac4e-b37f-413e-886d-33723d715cfe</id>
<label>Document title</label>
<position>L</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>35453a73-70fd-4dff-9956-f98b618faf70</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>documentTitleB</esfname>
<type>S</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>I9_List_B_Document_Titles</inputFormatSpec>
<outputFormatSpec>value</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>c3ec345d-9d1a-4d0e-bfbb-dae65dc586a2</id>
<label>Short</label>
<position>N</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>28a5e01c-3b43-4216-8aba-4f6937c538eb</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>documentTitleC</esfname>
<type>S</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>I9_List_C_Document_Titles</inputFormatSpec>
<outputFormatSpec>value</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>d59c8464-42df-4536-a864-ef01f31dada8</id>
<label>DocumentTitleC</label>
<position>N</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>1886a06d-17ba-4a62-877a-336c5aaf5a81</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>employeeSignature</esfname>
<type>s</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>N</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec></outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>326813b0-38ad-4274-81e5-c252aba385c6</id>
<label>Employee's Signature</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a52e135d-71e1-4e32-9b57-e35afb40813a</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>employeeSignatureDate</esfname>
<type>D</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>N</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>dd-MMM-yyyy</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>bb7a1396-e82c-4673-94b2-41ab2475880b</id>
<label>Date (month/day/year)</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>da266e59-8df7-4b61-aa0b-17b332c97983</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>firstName</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>b0d9dbc9-1241-4a0d-8f25-af6eb8925388</id>
<label>First</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>1f8c642d-cb84-48bf-a80e-2a6fa02dd92a</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>2</containerReferenceCount>
<esfname>hireDate</esfname>
<type>d</type>
<width>10</width>
<widthUnit>A</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>%m/%d/%Y</inputFormatSpec>
<outputFormatSpec>M/d/yy</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>3681f33d-67cc-4662-84c7-5008fa3c58a0</id>
<label>(month/day/year)</label>
<position>L</position>
<separator> </separator>
<size>N</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>8502f257-1866-409c-ab8d-211669a6c492</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>2</containerReferenceCount>
<esfname>issuingAuthorityA</esfname>
<type>S</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>I9_List_A_Document_Issuing_Authority</inputFormatSpec>
<outputFormatSpec>value</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>fe19034c-e38c-4963-8414-9ada506b7fb3</id>
<label>Issuing authority</label>
<position>L</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>bd62bbf7-e0be-458d-8338-865517b01d90</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>issuingAuthorityB</esfname>
<type>S</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>I9_List_B_Document_Issuing_Authority</inputFormatSpec>
<outputFormatSpec>value</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>ac384d27-888a-4410-94de-f1177b55b807</id>
<label>IssuingAuthorityB</label>
<position>N</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>cb30a6d7-f706-4617-97d9-56461020f730</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>issuingAuthorityC</esfname>
<type>S</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>I9_List_C_Document_Issuing_Authority</inputFormatSpec>
<outputFormatSpec>value</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>b328f9e0-16d2-4d4f-8aa9-7028cdaffc97</id>
<label>IssuingAuthorityC</label>
<position>N</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>c7feb697-a7d8-46e2-ba5c-88223bfeaba3</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>lastName</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>1c1a5f50-137b-4f0e-99d7-2d82849ffcba</id>
<label>Print Name: Last</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a8243ac8-c4cf-4a14-83c0-8d1186ab8538</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>maidenName</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>c662f220-42f1-4b7b-b8b4-a78b8894cff8</id>
<label>Maiden Name</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>1c17ab55-8cac-4252-9a6a-a81824c092c8</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>middleInitials</esfname>
<type>I</type>
<width>4</width>
<widthUnit>M</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>47989f8e-c223-4e34-84a3-939321a095d9</id>
<label>Middle Initial</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>21cc6266-71d5-41ce-adc1-935a52cef107</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>newDocumentExpireDate</esfname>
<type>I</type>
<width>10</width>
<widthUnit>M</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>f0c8b285-ea4f-4159-a2bf-d7d0304ff710</id>
<label>Expiration Date</label>
<position>L</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>10a7008b-afe1-4597-a2d2-983bb018d7ee</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>newDocumentNum</esfname>
<type>I</type>
<width>15</width>
<widthUnit>M</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>f05d170c-f3d3-4e13-8efb-c08ed7a16dca</id>
<label>Document #</label>
<position>L</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>3341b881-1503-4726-b449-5192b4646c57</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>newDocumentTitle</esfname>
<type>I</type>
<width>20</width>
<widthUnit>M</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNYN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>de12d949-5857-4a7a-911c-564612f1b27a</id>
<label>Document Title</label>
<position>L</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a8899e82-0a21-4065-b145-48de980dec1f</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>2</containerReferenceCount>
<esfname>newName</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>2eab0de2-efdf-42b4-a95c-753a51ae8c68</id>
<label>New Name</label>
<position>N</position>
<separator> </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>da78368d-f5d3-4d31-8d1a-f855865a7b2b</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>preparerAddress</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>4d3349de-a4ed-418d-8523-a6aab18083ee</id>
<label>Address (Street Name and Number, City, State, Zip Code)</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>2b64ab68-7aaf-4253-92c8-1c88350cf1fb</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>preparerName</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>5273316e-da4f-4662-b173-70e020afed0f</id>
<label>Print Name</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>2bef3ef3-87ce-4e20-a58d-a1e579d01caf</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>preparerSignature</esfname>
<type>s</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>N</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec></outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>243626dc-d8a7-4268-a71d-39abe4425cae</id>
<label>Preparer's/Translator's Signature</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>09e75f48-0c52-4420-9b9c-b140e5c1b0cb</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>preparerSignatureDate</esfname>
<type>D</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>N</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>dd-MMM-yyyy</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>db945d7a-ebf9-450a-bd47-a03f6879f050</id>
<label>Date (month/day/year)</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a247f510-adaf-413d-bb55-16bbd73a97f8</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>rbAuthorizedAlien</esfname>
<type>R</type>
<width>100</width>
<widthUnit>A</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>authorizedAlien</inputFormatSpec>
<outputFormatSpec>rbCitizenshipType</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>00219e0f-cd0d-4946-b992-2d1f5f8f14ee</id>
<label>An alien</label>
<position>R</position>
<separator> </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a3a97c7c-fb53-4065-a9a2-6d5cce447e26</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>rbCitizen</esfname>
<type>R</type>
<width>3</width>
<widthUnit>A</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>US</inputFormatSpec>
<outputFormatSpec>rbCitizenshipType</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>d163a663-e62b-482c-b8aa-beb7e69d0ffc</id>
<label>A citizen of the United States</label>
<position>R</position>
<separator> </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>8ab50fc0-4365-4f3f-a61e-7452bd035c64</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>4</containerReferenceCount>
<esfname>rbCitizenshipType</esfname>
<type>G</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec></outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>0659593b-1e25-46e0-807f-5aa7c3772875</id>
<label>CREATED_NEW</label>
<position>TL</position>
<separator>: </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>5bb48da6-7635-453e-a279-c65b9e13a457</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>rbNonCitizen</esfname>
<type>R</type>
<width>3</width>
<widthUnit>A</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>nonCitizen</inputFormatSpec>
<outputFormatSpec>rbCitizenshipType</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>8f8df02a-4b34-4097-a136-954275e4b691</id>
<label>A noncitizen national of the United States (see instructions)</label>
<position>R</position>
<separator> </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>ed8c64de-8208-4065-8455-38a60e991d71</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>rbPermanentAlien</esfname>
<type>R</type>
<width>3</width>
<widthUnit>A</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>1</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>permanentAlien</inputFormatSpec>
<outputFormatSpec>rbCitizenshipType</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>c9594bcf-0a70-4283-aede-8b15788e6135</id>
<label>A lawful permanent resident</label>
<position>R</position>
<separator> </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>21eb850f-a7b3-4bf1-a5a7-dbc3e2d78869</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>2</containerReferenceCount>
<esfname>rehireDate</esfname>
<type>d</type>
<width>100</width>
<widthUnit>A</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>%m/%d/%Y</inputFormatSpec>
<outputFormatSpec>yyyy-MM-dd</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>dcf4d222-1322-47b2-94b2-cad5dab6e813</id>
<label>Date of Rehire</label>
<position>N</position>
<separator> </separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>9ec1fe05-392c-4ba9-a49d-05988e2e3102</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>ssn</esfname>
<type>n</type>
<width>100</width>
<widthUnit>A</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>N</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>normal</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>89a5f0d9-e80c-405d-a5c3-611b07932779</id>
<label>Social Security #</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>1e9272ce-ebc9-4d66-a502-97321431a29b</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>state</esfname>
<type>S</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec>ESF_USA_PostalStates</inputFormatSpec>
<outputFormatSpec>value</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>004c672d-409a-4e08-969f-661f433fc42d</id>
<label>State</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>f916c477-d9f5-40eb-9b5f-d1577c4e041d</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>witnessName</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>8444d509-2223-4bb9-94fc-520d90ec839c</id>
<label>Print Name</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>6e5cdfe1-14c9-4233-b223-a84bbd85eca6</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>witnessSignature</esfname>
<type>s</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>N</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec></outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>e4653817-50f0-4995-92f7-9f383243371d</id>
<label>Signature of Employer or Authorized Representative</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>6897016f-c9e9-4c72-92ee-08211bcca4e2</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>witnessSignature2</esfname>
<type>s</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>N</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec></outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>96a5b85b-9ca3-40e6-b6de-c935108874dc</id>
<label>Signature of Employer or Authorized Representative</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>61b826b7-1b00-4d48-872f-ca0a5a36233a</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>witnessSignature2Date</esfname>
<type>D</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>N</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>N</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>dd-MMM-yyyy</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>499707c6-0b98-43ee-9978-73935389c26d</id>
<label>Date (month/day/year)</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>71176389-ac92-45ad-a5e5-e75d73132332</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>witnessSignatureDate</esfname>
<type>D</type>
<width>10</width>
<widthUnit>M</widthUnit>
<ignoreWidthOnOutput>Y</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>N</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>dd-MMM-yyyy</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>53ca63f5-1d6b-4b6f-8f2c-b101d568e5b8</id>
<label>Date (month/day/year)</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>6094d34d-c598-465e-8249-9791e9fac79a</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>witnessTitle</esfname>
<type>I</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec>standard</outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>d3449399-3429-4495-a2d8-01287d85658c</id>
<label>Title</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<FieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a771a7ec-7852-4fa6-a5f1-f300cd33e939</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<containerReferenceCount>1</containerReferenceCount>
<esfname>zip</esfname>
<type>z</type>
<width>100</width>
<widthUnit>%</widthUnit>
<ignoreWidthOnOutput>N</ignoreWidthOnOutput>
<border>NNNN</border>
<align>I</align>
<required>Y</required>
<autoComplete>Y</autoComplete>
<maskInDataSnapshot>N</maskInDataSnapshot>
<cloneAllowed>Y</cloneAllowed>
<minLength>0</minLength>
<maxLength>100</maxLength>
<initialValue></initialValue>
<displayEmptyValueEnabled>N</displayEmptyValueEnabled>
<displayEmptyValue></displayEmptyValue>
<inputFormatSpec></inputFormatSpec>
<outputFormatSpec></outputFormatSpec>
<extraOptions></extraOptions>
<tooltip></tooltip>
<LabelTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>f3044a9a-2e60-4a0e-9b0a-33c3a8e1c7b0</id>
<label>Zip Code</label>
<position>TL</position>
<separator></separator>
<size>S</size>
<suppressNonInput>N</suppressNonInput>
</LabelTemplate>
</FieldTemplate>
<PartyTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<esfname>employee</esfname>
<displayName>Employee</displayName>
<processOrder>1</processOrder>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>a8243ac8-c4cf-4a14-83c0-8d1186ab8538</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>09e75f48-0c52-4420-9b9c-b140e5c1b0cb</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>1c17ab55-8cac-4252-9a6a-a81824c092c8</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>61aa33c3-0eb0-4a21-a691-a4707a27d3c4</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>da266e59-8df7-4b61-aa0b-17b332c97983</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>a771a7ec-7852-4fa6-a5f1-f300cd33e939</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>a52e135d-71e1-4e32-9b57-e35afb40813a</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>c7feb697-a7d8-46e2-ba5c-88223bfeaba3</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>1886a06d-17ba-4a62-877a-336c5aaf5a81</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>2b64ab68-7aaf-4253-92c8-1c88350cf1fb</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>8ab50fc0-4365-4f3f-a61e-7452bd035c64</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>a3b461bf-d4c4-43f6-9eeb-16a84df48d55</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>9ec1fe05-392c-4ba9-a49d-05988e2e3102</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>e0c7c335-4288-47ee-a040-7f0ef87ebc1b</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>02ebbf02-6a3a-4580-90f2-2c1bfbefe132</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>212d5643-1009-41c4-85ef-d486b1321778</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>9efc84de-806b-4c93-90d0-d29c0d3f3425</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>da78368d-f5d3-4d31-8d1a-f855865a7b2b</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>1e9272ce-ebc9-4d66-a502-97321431a29b</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>7b6c328f-26a3-4062-874b-f6bed1c4dd1c</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>4e820d82-b1bb-4972-b90c-ae58abf9ba3c</partyTemplateId>
<fieldTemplateId>2bef3ef3-87ce-4e20-a58d-a1e579d01caf</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
</PartyTemplate>
<PartyTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</id>
<containerId>4647a5d6-51b6-497e-81ee-d1134c3f8490</containerId>
<esfname>employer</esfname>
<displayName>Employer</displayName>
<processOrder>2</processOrder>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>bd62bbf7-e0be-458d-8338-865517b01d90</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>8502f257-1866-409c-ab8d-211669a6c492</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>cb30a6d7-f706-4617-97d9-56461020f730</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>f916c477-d9f5-40eb-9b5f-d1577c4e041d</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>a86ea8ed-02d1-4210-a7c3-bfef95c98770</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>71176389-ac92-45ad-a5e5-e75d73132332</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>35453a73-70fd-4dff-9956-f98b618faf70</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>50ed5d5f-9dfd-4ad3-837b-8fd92d53ca54</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>2c0f8dbe-d3c0-4d9d-9583-1a6cbc803ef3</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>dec57cf1-205a-479d-a752-8c11796893b2</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>0353c940-06ec-43d4-9dfc-d0edbef76ab6</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>f8793810-8e1f-4dfd-93fa-1dad12fa5995</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>a5734137-2467-4be6-8df5-524a693b74cd</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>951d1ae8-8aea-4cdc-afb3-a60e06c34fdc</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>6897016f-c9e9-4c72-92ee-08211bcca4e2</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>6e5cdfe1-14c9-4233-b223-a84bbd85eca6</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>6094d34d-c598-465e-8249-9791e9fac79a</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>af253bec-0f24-455d-b116-4248885c9b0f</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>61b826b7-1b00-4d48-872f-ca0a5a36233a</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>1f8c642d-cb84-48bf-a80e-2a6fa02dd92a</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>b13701b2-7575-4302-adba-b6b3aa3af2da</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
<PartyTemplateFieldTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<partyTemplateId>5c4d9494-adb0-4cc9-8abd-03cc6bdf16b4</partyTemplateId>
<fieldTemplateId>28a5e01c-3b43-4216-8aba-4f6937c538eb</fieldTemplateId>
<keepRequired>Y</keepRequired>
</PartyTemplateFieldTemplate>
</PartyTemplate>
</DocumentVersion>
<DropDown xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>bcfd3e31-2d73-4183-b1ca-b3c5c7d1b0a1</id>
<containerId>2baaae3d-fa0a-4856-95ee-a94761d0a03f</containerId>
<esfname>I9_List_B_Document_Titles</esfname>
<description>These are titles that are selected in column A on the I9</description>
<status>E</status>
<comments></comments>
<productionVersion>1</productionVersion>
<testVersion>1</testVersion>
</DropDown>
<DropDownVersion xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>3b2d7820-c82e-47ea-9b10-7aa0193b2617</id>
<dropDownId>bcfd3e31-2d73-4183-b1ca-b3c5c7d1b0a1</dropDownId>
<version>1</version>
<createdTimestamp>2011-06-01T00:22:46Z</createdTimestamp>
<createdByUserId>c62c87fd-744c-40a5-aa16-fa060e051cc1</createdByUserId>
<lastUpdatedTimestamp>2011-06-01T00:23:32Z</lastUpdatedTimestamp>
<lastUpdatedByUserId>c62c87fd-744c-40a5-aa16-fa060e051cc1</lastUpdatedByUserId>
<allowMultiSelection>N</allowMultiSelection>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>70f62462-b9ba-42a1-bf4c-134a74d80daf</id>
<dropDownVersionId>3b2d7820-c82e-47ea-9b10-7aa0193b2617</dropDownVersionId>
<listOrder>1</listOrder>
<option>--SELECT--</option>
<value>--SELECT--</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a30a33ed-0cf9-447e-968b-377e15777f2b</id>
<dropDownVersionId>3b2d7820-c82e-47ea-9b10-7aa0193b2617</dropDownVersionId>
<listOrder>2</listOrder>
<option>State Drivers License</option>
<value>State Drivers License</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>eb42de84-703c-46e8-b4e5-6dfa9257a255</id>
<dropDownVersionId>3b2d7820-c82e-47ea-9b10-7aa0193b2617</dropDownVersionId>
<listOrder>3</listOrder>
<option>State or Federal ID Card</option>
<value>State or Federal ID Card</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>3e96b8ef-7ac9-4693-af84-12b9efa530da</id>
<dropDownVersionId>3b2d7820-c82e-47ea-9b10-7aa0193b2617</dropDownVersionId>
<listOrder>4</listOrder>
<option>School ID Card</option>
<value>School ID Card</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>e7d65708-7c81-4a7f-9bdf-99153f81ba1a</id>
<dropDownVersionId>3b2d7820-c82e-47ea-9b10-7aa0193b2617</dropDownVersionId>
<listOrder>5</listOrder>
<option>Voters Registration Card</option>
<value>Voters Registration Card</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>29ad5f26-68d6-48f0-b3bc-f8c4070f8752</id>
<dropDownVersionId>3b2d7820-c82e-47ea-9b10-7aa0193b2617</dropDownVersionId>
<listOrder>6</listOrder>
<option>US Military Card</option>
<value>US Military Card</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>db5ded32-2e76-4236-ba0c-64cda5e06dbc</id>
<dropDownVersionId>3b2d7820-c82e-47ea-9b10-7aa0193b2617</dropDownVersionId>
<listOrder>7</listOrder>
<option>Military Dependents ID Card</option>
<value>Military Dependents ID Card</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>06e1d585-78ca-4d9b-8907-0408d60e1e18</id>
<dropDownVersionId>3b2d7820-c82e-47ea-9b10-7aa0193b2617</dropDownVersionId>
<listOrder>8</listOrder>
<option>US Coast Guard Merchant Mariner Card</option>
<value>US Coast Guard Merchant Mariner Card</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>177a81d6-e32d-4e43-8d98-ff1d2a09b0b0</id>
<dropDownVersionId>3b2d7820-c82e-47ea-9b10-7aa0193b2617</dropDownVersionId>
<listOrder>9</listOrder>
<option>Native American Tribal Document</option>
<value>Native American Tribal Document</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>268add29-9ce8-410d-b506-a78cff658fb4</id>
<dropDownVersionId>3b2d7820-c82e-47ea-9b10-7aa0193b2617</dropDownVersionId>
<listOrder>10</listOrder>
<option>Canadian Drivers License</option>
<value>Canadian Drivers License</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>be35c644-40b1-49b2-b0f4-6957f0b17828</id>
<dropDownVersionId>3b2d7820-c82e-47ea-9b10-7aa0193b2617</dropDownVersionId>
<listOrder>11</listOrder>
<option>School Report Card or Record</option>
<value>School Report Card or Record</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>8df3d935-ecdd-466b-ac24-c9b4fbe619ac</id>
<dropDownVersionId>3b2d7820-c82e-47ea-9b10-7aa0193b2617</dropDownVersionId>
<listOrder>12</listOrder>
<option>Clinic, Doctor or Hospital Record</option>
<value>Clinic, Doctor or Hospital Record</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>cef2ad11-94a4-4e91-a15f-e2e470c04400</id>
<dropDownVersionId>3b2d7820-c82e-47ea-9b10-7aa0193b2617</dropDownVersionId>
<listOrder>13</listOrder>
<option>Day Care or Nursery School Record</option>
<value>Day Care or Nursery School Record</value>
</DropDownVersionOption>
</DropDownVersion>
<DropDown xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>68566bb8-d166-4ef9-abd4-718cfddd5e39</id>
<containerId>2baaae3d-fa0a-4856-95ee-a94761d0a03f</containerId>
<esfname>I9_List_A_Document_Issuing_Authority</esfname>
<description>These are titles that are selected in column A on the I9</description>
<status>E</status>
<comments></comments>
<productionVersion>1</productionVersion>
<testVersion>1</testVersion>
</DropDown>
<DropDownVersion xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>34d34ec5-7eb9-420c-8698-52d35f6b972a</id>
<dropDownId>68566bb8-d166-4ef9-abd4-718cfddd5e39</dropDownId>
<version>1</version>
<createdTimestamp>2011-06-01T00:17:24Z</createdTimestamp>
<createdByUserId>c62c87fd-744c-40a5-aa16-fa060e051cc1</createdByUserId>
<lastUpdatedTimestamp>2011-06-01T00:20:08Z</lastUpdatedTimestamp>
<lastUpdatedByUserId>c62c87fd-744c-40a5-aa16-fa060e051cc1</lastUpdatedByUserId>
<allowMultiSelection>N</allowMultiSelection>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>fa2defc8-85b5-49cc-b26b-887020c3795e</id>
<dropDownVersionId>34d34ec5-7eb9-420c-8698-52d35f6b972a</dropDownVersionId>
<listOrder>1</listOrder>
<option>--SELECT--</option>
<value>--SELECT--</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>0543231f-48ba-43ac-9b6a-a70965cab545</id>
<dropDownVersionId>34d34ec5-7eb9-420c-8698-52d35f6b972a</dropDownVersionId>
<listOrder>2</listOrder>
<option>US Department of State</option>
<value>US Department of State </value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>e8b78189-ad0c-4275-ac49-54dff5e71859</id>
<dropDownVersionId>34d34ec5-7eb9-420c-8698-52d35f6b972a</dropDownVersionId>
<listOrder>3</listOrder>
<option>Immigration and Naturalization Service</option>
<value>Immigration and Naturalization Service</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>3ee8de62-a0eb-473f-a1f2-f608a1318b97</id>
<dropDownVersionId>34d34ec5-7eb9-420c-8698-52d35f6b972a</dropDownVersionId>
<listOrder>4</listOrder>
<option>National Passport Center</option>
<value>National Passport Center</value>
</DropDownVersionOption>
</DropDownVersion>
<DropDown xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>621d20d0-2576-4b8a-8b69-e9cecf12542d</id>
<containerId>2baaae3d-fa0a-4856-95ee-a94761d0a03f</containerId>
<esfname>I9_List_B_Document_Issuing_Authority</esfname>
<description>These are titles that are selected in column A on the I9</description>
<status>E</status>
<comments></comments>
<productionVersion>1</productionVersion>
<testVersion>1</testVersion>
</DropDown>
<DropDownVersion xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>42d8594a-1910-4661-aa88-772756b7e5ff</id>
<dropDownId>621d20d0-2576-4b8a-8b69-e9cecf12542d</dropDownId>
<version>1</version>
<createdTimestamp>2011-06-01T00:23:45Z</createdTimestamp>
<createdByUserId>c62c87fd-744c-40a5-aa16-fa060e051cc1</createdByUserId>
<lastUpdatedTimestamp>2011-06-01T00:37:11Z</lastUpdatedTimestamp>
<lastUpdatedByUserId>542770c4-c916-4f2e-97d8-c1a0002a2994</lastUpdatedByUserId>
<allowMultiSelection>N</allowMultiSelection>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>30bdf0d9-8964-41cb-b8ba-e7d937473b17</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>1</listOrder>
<option>--SELECT--</option>
<value>--SELECT--</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>84df73d8-b526-4659-8c47-b175568afe1b</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>2</listOrder>
<option>Alabama Motor Vehicle Division</option>
<value>Alabama Motor Vehicle Division</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>d36d0c01-1602-4106-996c-14acc6a16b6c</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>3</listOrder>
<option>Alaska Division of Motor Vehicles</option>
<value>Alaska Division of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>b86529ab-f922-4d36-b87f-a2a67034de1a</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>4</listOrder>
<option>Arizona Department of Transportation Motor Vehicle</option>
<value>Arizona Department of Transportation Motor Vehicle Division</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>13c78fe6-82b8-4e9e-85e9-e22212950e85</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>5</listOrder>
<option>Arkansas Office of Motor Vehicles</option>
<value>Arkansas Office of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>51b68fbe-e119-441e-89a6-b992c5aed83f</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>6</listOrder>
<option>California Department of Motor Vehicles</option>
<value>California Department of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>f6dcc7f6-08af-4506-991c-b92fe59ba6db</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>7</listOrder>
<option>Colorado Division of Motor Vehicles</option>
<value>Colorado Division of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>2cebd328-00b8-4773-85a6-ac37157078a0</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>8</listOrder>
<option>Connecticut Department of Motor Vehicles</option>
<value>Connecticut Department of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>5bcd8b0a-16b7-40b0-8241-6fd9c3f9e73a</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>9</listOrder>
<option>Delaware Department of Transportation Division of</option>
<value>Delaware Department of Transportation Division of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>8ac93d0b-0b53-4d50-aabd-7608c7d4d71e</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>10</listOrder>
<option>Department of Defense</option>
<value>Department of Defense</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>7c306e43-77a2-42d6-b4f2-58728f7a7927</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>11</listOrder>
<option>District of Columbia Department of Motor Vehicles</option>
<value>District of Columbia Department of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>8590a7c4-a2ae-4363-a37d-97ecbe198921</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>12</listOrder>
<option>Florida Department of Highway Safety and Motor Veh</option>
<value>Florida Department of Highway Safety and Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>ec966358-a9b0-444d-ac13-20ed462de8ba</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>13</listOrder>
<option>Georgia Department of Driver Services</option>
<value>Georgia Department of Driver Services</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>cc7c538b-d9d5-4bc5-aaf4-e6689e7bbe14</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>14</listOrder>
<option>Hawaii Department of Transportation</option>
<value>Hawaii Department of Transportation</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>1d575a14-906c-4160-aa88-98f497791cee</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>15</listOrder>
<option>Idaho Division of Motor Vehicles</option>
<value>Idaho Division of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>faf8d720-7a35-4a9e-8408-44b234373b1f</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>16</listOrder>
<option>Secretary of State of Illinois, Vehicle Services D</option>
<value>Secretary of State of Illinois, Vehicle Services Departmenta nd Driver Services Department</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>fdd124b8-4001-4c74-9690-131bc9f2b12e</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>17</listOrder>
<option>Indiana Bureau of Motor Vehicles</option>
<value>Indiana Bureau of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>63ae218f-23d1-4362-bb37-1fceb6f1daf3</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>18</listOrder>
<option>Iowa Department of Transportation</option>
<value>Iowa Department of Transportation</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>da802edf-8a23-4be2-98f8-9539c0de3720</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>19</listOrder>
<option>Kansas Division of Motor Vehicles</option>
<value>Kansas Division of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>58726068-a018-417e-b3d7-0d598d8da1fd</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>20</listOrder>
<option>Kentucky Tansportation Cabinet, Division of Driver</option>
<value>Kentucky Tansportation Cabinet, Division of Driver Licensing</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>d5a36a61-031b-473c-b590-af818142ca79</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>21</listOrder>
<option>Louisiana Office of Motor Vehicles</option>
<value>Louisiana Office of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>319f5dc3-f963-4d0d-82ee-5871c90006db</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>22</listOrder>
<option>Maine Bureau of Motor Vehicles</option>
<value>Maine Bureau of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>36ecb59a-7bff-4d23-a3b1-7a9ad0ad6d23</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>23</listOrder>
<option>Maryland Motor Vehicle Administration</option>
<value>Maryland Motor Vehicle Administration</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>1235e5e5-055e-4b09-8c4f-f01a24f0a9dd</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>24</listOrder>
<option>Massachusetts Registry of Motor Vehicles or Massac</option>
<value>Massachusetts Registry of Motor Vehicles or Massachusetts Department of Transportation</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>98b13589-b1f6-4452-8996-0897aea2a6a5</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>25</listOrder>
<option>Michigan Secretary of State</option>
<value>Michigan Secretary of State</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>7cade382-89b9-4774-8ed8-d7893b6c062c</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>26</listOrder>
<option>Minnesota Department of Public Safety - Division o</option>
<value>Minnesota Department of Public Safety - Division of Driver and Vehicle Services</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>ff766499-21a1-44ab-9d41-64cbc971b127</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>27</listOrder>
<option>Mississippi Department of Driver and Vehicle Servi</option>
<value>Mississippi Department of Driver and Vehicle Services</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>73191a7f-8589-4278-b866-30f37adfe628</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>28</listOrder>
<option>Missouri Department of Driver and Vehicle Services</option>
<value>Missouri Department of Driver and Vehicle Services</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>94ca486a-2cf8-4b89-ac98-eb38bfe83790</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>29</listOrder>
<option>Montana Department of Justice Driver Services</option>
<value>Montana Department of Justice Driver Services</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>c4297d21-ddd8-4a9b-a1e0-ee4d2981f72c</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>30</listOrder>
<option>Nebraska Department of Motor Vehicles</option>
<value>Nebraska Department of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>c8f556ff-7ecf-42fb-8dce-13d8368efe5f</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>31</listOrder>
<option>Nevada Department of Motor Vehicles</option>
<value>Nevada Department of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>38c62971-4396-49b7-ab5f-8a2e1a79a8e3</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>32</listOrder>
<option>New Hampshire Division of Motor Vehicles</option>
<value>New Hampshire Division of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>3c1d33d5-ec48-4274-b8ad-c239e98e5257</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>33</listOrder>
<option>New Jersey Motor Vehicle Commission</option>
<value>New Jersey Motor Vehicle Commission</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>c2b30da4-e2a1-4a12-a2f2-35a76758dd77</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>34</listOrder>
<option>New Mexico Motor Vehicle Division</option>
<value>New Mexico Motor Vehicle Division</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>05fea743-b18f-4951-ac70-06868d5d5aa7</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>35</listOrder>
<option>New York State Deparment of Motor Vehicles</option>
<value>New York State Deparment of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>13226b64-4c7b-49d7-901c-30fb8560b4c2</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>36</listOrder>
<option>North Carolina Division of Motor Vehicles</option>
<value>North Carolina Division of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a20e97fc-1e54-4e3e-950d-024f3873eef5</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>37</listOrder>
<option>North Dakota Drivers License and Traffic Safety Di</option>
<value>North Dakota Drivers License and Traffic Safety Division</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>8a783790-cb0d-41ca-bd7e-23decb8b1e48</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>38</listOrder>
<option>Ohio Department of Public Safety Bureau of Motor V</option>
<value>Ohio Department of Public Safety Bureau of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>29db1b42-057b-4dd5-a207-a6372afff127</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>39</listOrder>
<option>Oklahoma Department of Public Safety</option>
<value>Oklahoma Department of Public Safety</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>fd07824a-c27e-43f1-a228-760882029457</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>40</listOrder>
<option>Oregon Department of Transportation and Motor Vehi</option>
<value>Oregon Department of Transportation and Motor Vehicle Services Division</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>5acc1114-d56e-47cb-adf6-74d6389166f2</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>41</listOrder>
<option>Pennsylvania Department of Transportation</option>
<value>Pennsylvania Department of Transportation</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>795ca011-7b0b-4276-8445-a82570d189d2</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>42</listOrder>
<option>Rhode Island Division of Motor Vehicles</option>
<value>Rhode Island Division of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>6a85d6ce-c45b-429c-9701-be314bca6a42</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>43</listOrder>
<option>South Carolina Department of Motor Vehicles</option>
<value>South Carolina Department of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>e55cf8d0-7edd-4ee1-93ff-227b51e3f170</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>44</listOrder>
<option>South Dakota DMV</option>
<value>South Dakota DMV</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>8548afed-e47b-46f7-a4c9-4c2dd071cdf0</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>45</listOrder>
<option>Tennessee Department of Revenue, Taxpayer and Vehi</option>
<value>Tennessee Department of Revenue, Taxpayer and Vehicle Services Division</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a19bc705-1e76-4b6a-a7c8-c82734e3ae10</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>46</listOrder>
<option>Texas Department of Motor Vehicles (TxDMV)</option>
<value>Texas Department of Motor Vehicles (TxDMV)</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>e814097a-762a-425b-b39a-a8f4d2b0c5fa</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>47</listOrder>
<option>Utah Division of Motor Vehicles</option>
<value>Utah Division of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>fc6076c3-6389-4e3e-838b-4f2fff553332</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>48</listOrder>
<option>Vermont Department of Motor Vehicles</option>
<value>Vermont Department of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>d8742758-7b96-4021-a01c-31e05d713d40</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>49</listOrder>
<option>Virginia Department of Motor Vehicles</option>
<value>Virginia Department of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>242f566d-5aaa-4bad-9fd6-40657aa0bd0b</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>50</listOrder>
<option>Washington Department of Licensing</option>
<value>Washington Department of Licensing</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>66d26f28-fb0a-4f63-9f5b-b1a377bdefac</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>51</listOrder>
<option>West Virginia DMV Department of Motor Vehicle</option>
<value>West Virginia DMV Department of Motor Vehicle</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>ef0b7b8c-ee6c-4c4a-82a1-dc85729a3c80</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>52</listOrder>
<option>Wisconsin Division of Motor Vehicles</option>
<value>Wisconsin Division of Motor Vehicles</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>e7a7f840-753b-4118-90fa-4a872c5d5baf</id>
<dropDownVersionId>42d8594a-1910-4661-aa88-772756b7e5ff</dropDownVersionId>
<listOrder>53</listOrder>
<option>Wyoming DMV Department of Motor Vehicle</option>
<value>Wyoming DMV Department of Motor Vehicle</value>
</DropDownVersionOption>
</DropDownVersion>
<DropDown xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>4de81b99-43fb-4bff-b2ef-7c02cff1a61b</id>
<containerId>2baaae3d-fa0a-4856-95ee-a94761d0a03f</containerId>
<esfname>I9_List_C_Document_Issuing_Authority</esfname>
<description>These are titles that are selected in column A on the I9</description>
<status>E</status>
<comments></comments>
<productionVersion>1</productionVersion>
<testVersion>1</testVersion>
</DropDown>
<DropDownVersion xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>531ed09a-134a-42b2-9b35-7b804f0e864d</id>
<dropDownId>4de81b99-43fb-4bff-b2ef-7c02cff1a61b</dropDownId>
<version>1</version>
<createdTimestamp>2011-06-01T00:42:16Z</createdTimestamp>
<createdByUserId>542770c4-c916-4f2e-97d8-c1a0002a2994</createdByUserId>
<lastUpdatedTimestamp>2011-06-01T00:43:09Z</lastUpdatedTimestamp>
<lastUpdatedByUserId>542770c4-c916-4f2e-97d8-c1a0002a2994</lastUpdatedByUserId>
<allowMultiSelection>N</allowMultiSelection>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>8bc9adee-06fc-4b55-b7d8-0d726ff74c58</id>
<dropDownVersionId>531ed09a-134a-42b2-9b35-7b804f0e864d</dropDownVersionId>
<listOrder>1</listOrder>
<option>--SELECT--</option>
<value>--SELECT--</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>481938da-1006-4dc4-8e1c-5e91ca04824e</id>
<dropDownVersionId>531ed09a-134a-42b2-9b35-7b804f0e864d</dropDownVersionId>
<listOrder>2</listOrder>
<option>Social Security Administration</option>
<value>Social Security Administration</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>9b7a78ba-ff0f-416c-b631-50ea3f6391ae</id>
<dropDownVersionId>531ed09a-134a-42b2-9b35-7b804f0e864d</dropDownVersionId>
<listOrder>3</listOrder>
<option>Department Of Records</option>
<value>Department Of Records</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>cfcb73fb-c934-48e6-8941-deb833138b43</id>
<dropDownVersionId>531ed09a-134a-42b2-9b35-7b804f0e864d</dropDownVersionId>
<listOrder>4</listOrder>
<option>Tribal Council</option>
<value>Tribal Council</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>7e2cfe72-7fa8-4cc7-8910-092065a6385d</id>
<dropDownVersionId>531ed09a-134a-42b2-9b35-7b804f0e864d</dropDownVersionId>
<listOrder>5</listOrder>
<option>Immigration and Naturalization Service</option>
<value>Immigration and Naturalization Service</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>16594f27-5556-4a1b-9b30-09b90a3de465</id>
<dropDownVersionId>531ed09a-134a-42b2-9b35-7b804f0e864d</dropDownVersionId>
<listOrder>6</listOrder>
<option>Employment Authorization Document Issued by DHS</option>
<value>Employment Authorization Document Issued by DHS</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>219f32af-683b-4889-840e-61aa2f1dc2c3</id>
<dropDownVersionId>531ed09a-134a-42b2-9b35-7b804f0e864d</dropDownVersionId>
<listOrder>7</listOrder>
<option>Department of Health & Human Services USA</option>
<value>Department of Health & Human Services USA</value>
</DropDownVersionOption>
</DropDownVersion>
<DropDown xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>e2e6c3d2-a7c4-4a7a-819b-0d86e2c68f09</id>
<containerId>2baaae3d-fa0a-4856-95ee-a94761d0a03f</containerId>
<esfname>I9_List_C_Document_Titles</esfname>
<description>These are titles that are selected in column A on the I9</description>
<status>E</status>
<comments></comments>
<productionVersion>1</productionVersion>
<testVersion>1</testVersion>
</DropDown>
<DropDownVersion xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>5ff879a8-12f3-4078-b7bb-f9fc15247d2a</id>
<dropDownId>e2e6c3d2-a7c4-4a7a-819b-0d86e2c68f09</dropDownId>
<version>1</version>
<createdTimestamp>2011-06-01T00:40:27Z</createdTimestamp>
<createdByUserId>542770c4-c916-4f2e-97d8-c1a0002a2994</createdByUserId>
<lastUpdatedTimestamp>2011-06-01T00:41:59Z</lastUpdatedTimestamp>
<lastUpdatedByUserId>542770c4-c916-4f2e-97d8-c1a0002a2994</lastUpdatedByUserId>
<allowMultiSelection>N</allowMultiSelection>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>d7a1d98c-0e2e-42d6-a6ba-c17c1d7ff3ca</id>
<dropDownVersionId>5ff879a8-12f3-4078-b7bb-f9fc15247d2a</dropDownVersionId>
<listOrder>1</listOrder>
<option>--SELECT--</option>
<value>--SELECT--</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>8e2b24ec-5445-4d2a-a94a-729a59380db6</id>
<dropDownVersionId>5ff879a8-12f3-4078-b7bb-f9fc15247d2a</dropDownVersionId>
<listOrder>2</listOrder>
<option>US Social Security Card</option>
<value>US Social Security Card</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>0155e490-8d11-4ded-a4d0-96300f2ec599</id>
<dropDownVersionId>5ff879a8-12f3-4078-b7bb-f9fc15247d2a</dropDownVersionId>
<listOrder>3</listOrder>
<option>Certification of Birth Abroad</option>
<value>Certification of Birth Abroad</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>1bd37f8c-3ee1-48bc-97a1-5bd0a5b30ad6</id>
<dropDownVersionId>5ff879a8-12f3-4078-b7bb-f9fc15247d2a</dropDownVersionId>
<listOrder>4</listOrder>
<option>Original or Certified copy of Birth Certificate</option>
<value>Original or Certified copy of Birth Certificate</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>f445ca03-81fe-437e-b3c9-5a0c3c30b377</id>
<dropDownVersionId>5ff879a8-12f3-4078-b7bb-f9fc15247d2a</dropDownVersionId>
<listOrder>5</listOrder>
<option>Native American Tribal Document</option>
<value>Native American Tribal Document</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>1019f93a-c22c-498a-a8a1-5e81fb3d9590</id>
<dropDownVersionId>5ff879a8-12f3-4078-b7bb-f9fc15247d2a</dropDownVersionId>
<listOrder>6</listOrder>
<option>US Citizen ID Card</option>
<value>US Citizen ID Card</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>19868c4e-8c61-4f2b-8775-26628d5043e6</id>
<dropDownVersionId>5ff879a8-12f3-4078-b7bb-f9fc15247d2a</dropDownVersionId>
<listOrder>7</listOrder>
<option>ID Card for use of Resident Citizens of US</option>
<value>ID Card for use of Resident Citizens of US</value>
</DropDownVersionOption>
</DropDownVersion>
<DropDown xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>b589bd37-5492-42c8-aa1e-c45c82468e19</id>
<containerId>2baaae3d-fa0a-4856-95ee-a94761d0a03f</containerId>
<esfname>I9_List_A_Document_Titles</esfname>
<description>These are titles that are selected in column A on the I9</description>
<status>E</status>
<comments></comments>
<productionVersion>1</productionVersion>
<testVersion>1</testVersion>
</DropDown>
<DropDownVersion xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>0f6aba84-3e47-44a0-91ed-9fc55a215c94</id>
<dropDownId>b589bd37-5492-42c8-aa1e-c45c82468e19</dropDownId>
<version>1</version>
<createdTimestamp>2011-06-01T00:11:07Z</createdTimestamp>
<createdByUserId>c62c87fd-744c-40a5-aa16-fa060e051cc1</createdByUserId>
<lastUpdatedTimestamp>2011-06-01T00:20:49Z</lastUpdatedTimestamp>
<lastUpdatedByUserId>c62c87fd-744c-40a5-aa16-fa060e051cc1</lastUpdatedByUserId>
<allowMultiSelection>N</allowMultiSelection>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>8eaafc9c-670a-4204-9d02-e64626911d36</id>
<dropDownVersionId>0f6aba84-3e47-44a0-91ed-9fc55a215c94</dropDownVersionId>
<listOrder>1</listOrder>
<option>--SELECT--</option>
<value>--SELECT--</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>ad60bf54-fade-406c-b825-5a6f5233ef76</id>
<dropDownVersionId>0f6aba84-3e47-44a0-91ed-9fc55a215c94</dropDownVersionId>
<listOrder>2</listOrder>
<option>US Passport </option>
<value>US Passport </value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>bdf1cfed-1e7d-4e47-a658-7a49030e210a</id>
<dropDownVersionId>0f6aba84-3e47-44a0-91ed-9fc55a215c94</dropDownVersionId>
<listOrder>3</listOrder>
<option>US Passport Card</option>
<value>US Passport Card</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>e33376a6-cfd6-4034-839c-13fc432e9fbf</id>
<dropDownVersionId>0f6aba84-3e47-44a0-91ed-9fc55a215c94</dropDownVersionId>
<listOrder>4</listOrder>
<option>Permanent Resident Card</option>
<value>Permanent Resident Card</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>6677efe2-8950-4b54-9150-0561bc07e7a3</id>
<dropDownVersionId>0f6aba84-3e47-44a0-91ed-9fc55a215c94</dropDownVersionId>
<listOrder>5</listOrder>
<option>Alien Registration Receipt Card</option>
<value>Alien Registration Receipt Card</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>a73724d8-c524-40a3-afee-e961b8bf6ddc</id>
<dropDownVersionId>0f6aba84-3e47-44a0-91ed-9fc55a215c94</dropDownVersionId>
<listOrder>6</listOrder>
<option>Foreign Passport I-551 Stamp</option>
<value>Foreign Passport I-551 Stamp</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>e11c3b2a-d827-485e-9630-ae62d67ce4ff</id>
<dropDownVersionId>0f6aba84-3e47-44a0-91ed-9fc55a215c94</dropDownVersionId>
<listOrder>7</listOrder>
<option>Employment Authorization Document</option>
<value>Employment Authorization Document</value>
</DropDownVersionOption>
<DropDownVersionOption xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>87336a9c-2668-40a7-909c-a34ca9880a05</id>
<dropDownVersionId>0f6aba84-3e47-44a0-91ed-9fc55a215c94</dropDownVersionId>
<listOrder>8</listOrder>
<option>Foreign Passport Form I-94</option>
<value>Foreign Passport Form I-94</value>
</DropDownVersionOption>
</DropDownVersion>
<EmailTemplate xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>2d09c123-de9f-4db0-8126-5e13ca066d8b</id>
<containerId>2baaae3d-fa0a-4856-95ee-a94761d0a03f</containerId>
<esfname>I9WitnessNotification</esfname>
<description>I9 Witness Notification email</description>
<status>E</status>
<comments></comments>
<productionVersion>1</productionVersion>
<testVersion>1</testVersion>
</EmailTemplate>
<EmailTemplateVersion xmlns="http://open.esignforms.com/XMLSchema/2011">
<id>df2b7eb6-1fe6-4be8-990b-ecc5d60db654</id>
<emailTemplateId>2d09c123-de9f-4db0-8126-5e13ca066d8b</emailTemplateId>
<version>1</version>
<createdTimestamp>2011-05-05T00:43:13Z</createdTimestamp>
<createdByUserId>542770c4-c916-4f2e-97d8-c1a0002a2994</createdByUserId>
<lastUpdatedTimestamp>2011-06-27T18:15:34Z</lastUpdatedTimestamp>
<lastUpdatedByUserId>c62c87fd-744c-40a5-aa16-fa060e051cc1</lastUpdatedByUserId>
<emailFrom>${property:ESF.SendEmailFrom}</emailFrom>
<emailTo>${EMAIL}</emailTo>
<emailCc></emailCc>
<emailBcc></emailBcc>
<emailSubject>I9 Needs your attention</emailSubject>
<emailText>Dear Witness,
Here's the link to the I9.
${LINK}
Thank you,
${property:Company.Name}
${property:Company.Address}</emailText>
<emailHtml><p>Dear Witness,<br />
<br />
<a href="${LINK}">Click here</a> to retrieve the I9.&nbsp;<br />
<br />
Thank you,<br />
${property:Company.Name}<br />
${property:Company.Address}</p></emailHtml>
</EmailTemplateVersion>
</LibraryExport>
--------------080309030401080904030202
Content-Type: text/plain; charset=windows-1252;
name="ImportView.java"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="ImportView.java"
Ly8gQ29weXJpZ2h0IChDKSAyMDExLTIwMTIgWW96b25zLCBJbmMuDQovLyBPcGVuIGVTaWdu
Rm9ybXMgLSBXZWItYmFzZWQgZWxlY3Ryb25pYyBjb250cmFjdGluZyBzb2Z0d2FyZQ0KLy8N
Ci8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVy
byBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIA0KLy8gYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQovLw0KLy8gVGhpcyBw
cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgDQovLyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgDQovLyBTZWUgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KLy8NCi8vIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIA0KLy8gSWYgbm90LCBzZWUgPGh0dHA6Ly9v
cGVuLmVzaWduZm9ybXMuY29tL2FncGwudHh0PiBvciA8aHR0cDovL3d3dy5nbnUub3JnL2xp
Y2Vuc2VzLz4uDQovLyBDb250YWN0IGluZm9ybWF0aW9uIGlzIHZpYSB0aGUgcHVibGljIGZv
cnVtcyBhdCBodHRwOi8vb3Blbi5lc2lnbmZvcm1zLmNvbSBvciB2aWEgcHJpdmF0ZSBlbWFp
bCB0byBvcGVuLWVzaWduQHlvem9ucy5jb20uDQovLw0KcGFja2FnZSBjb20uZXNpZ25mb3Jt
cy5vcGVuLnZhYWRpbi5jb25maWcubGlicmFyeTsNCg0KaW1wb3J0IGphdmEuaW8uU3RyaW5n
UmVhZGVyOw0KaW1wb3J0IGphdmEuc3FsLkNvbm5lY3Rpb247DQppbXBvcnQgamF2YS5zcWwu
U1FMRXhjZXB0aW9uOw0KaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0Ow0KaW1wb3J0IGphdmEu
dXRpbC5MaW5rZWRMaXN0Ow0KaW1wb3J0IGphdmEudXRpbC5MaXN0Ow0KaW1wb3J0IGphdmEu
dXRpbC5MaXN0SXRlcmF0b3I7DQppbXBvcnQgamF2YS51dGlsLlNldDsNCg0KaW1wb3J0IG9y
Zy5qZG9tMi5FbGVtZW50Ow0KaW1wb3J0IG9yZy5qZG9tMi5KRE9NRXhjZXB0aW9uOw0KaW1w
b3J0IG9yZy5qZG9tMi5OYW1lc3BhY2U7DQppbXBvcnQgb3JnLmpkb20yLmlucHV0LlNBWEJ1
aWxkZXI7DQppbXBvcnQgb3JnLmpkb20yLmlucHV0LnNheC5YTUxSZWFkZXJzOw0KDQppbXBv
cnQgY29tLmVzaWduZm9ybXMub3Blbi5FcnJvcnM7DQppbXBvcnQgY29tLmVzaWduZm9ybXMu
b3Blbi5WZXJzaW9uOw0KaW1wb3J0IGNvbS5lc2lnbmZvcm1zLm9wZW4uZGF0YS5Fc2ZEYXRl
VGltZTsNCmltcG9ydCBjb20uZXNpZ25mb3Jtcy5vcGVuLmRhdGEuRXNmSW50ZWdlcjsNCmlt
cG9ydCBjb20uZXNpZ25mb3Jtcy5vcGVuLmRhdGEuRXNmTmFtZTsNCmltcG9ydCBjb20uZXNp
Z25mb3Jtcy5vcGVuLmRhdGEuRXNmUGF0aE5hbWU7DQppbXBvcnQgY29tLmVzaWduZm9ybXMu
b3Blbi5kYXRhLkVzZlN0cmluZzsNCmltcG9ydCBjb20uZXNpZ25mb3Jtcy5vcGVuLmRhdGEu
RXNmVVVJRDsNCmltcG9ydCBjb20uZXNpZ25mb3Jtcy5vcGVuLmRiLkNvbm5lY3Rpb25Qb29s
Ow0KaW1wb3J0IGNvbS5lc2lnbmZvcm1zLm9wZW4uZXhjZXB0aW9uLkVzZkV4Y2VwdGlvbjsN
CmltcG9ydCBjb20uZXNpZ25mb3Jtcy5vcGVuLnByb2cuRG9jdW1lbnQ7DQppbXBvcnQgY29t
LmVzaWduZm9ybXMub3Blbi5wcm9nLkRvY3VtZW50U3R5bGU7DQppbXBvcnQgY29tLmVzaWdu
Zm9ybXMub3Blbi5wcm9nLkRvY3VtZW50U3R5bGVWZXJzaW9uOw0KaW1wb3J0IGNvbS5lc2ln
bmZvcm1zLm9wZW4ucHJvZy5Eb2N1bWVudFZlcnNpb247DQppbXBvcnQgY29tLmVzaWduZm9y
bXMub3Blbi5wcm9nLkRyb3BEb3duOw0KaW1wb3J0IGNvbS5lc2lnbmZvcm1zLm9wZW4ucHJv
Zy5Ecm9wRG93blZlcnNpb247DQppbXBvcnQgY29tLmVzaWduZm9ybXMub3Blbi5wcm9nLkVt
YWlsVGVtcGxhdGU7DQppbXBvcnQgY29tLmVzaWduZm9ybXMub3Blbi5wcm9nLkVtYWlsVGVt
cGxhdGVWZXJzaW9uOw0KaW1wb3J0IGNvbS5lc2lnbmZvcm1zLm9wZW4ucHJvZy5GaWxlOw0K
aW1wb3J0IGNvbS5lc2lnbmZvcm1zLm9wZW4ucHJvZy5GaWxlVmVyc2lvbjsNCmltcG9ydCBj
b20uZXNpZ25mb3Jtcy5vcGVuLnByb2cuSW1hZ2U7DQppbXBvcnQgY29tLmVzaWduZm9ybXMu
b3Blbi5wcm9nLkltYWdlVmVyc2lvbjsNCmltcG9ydCBjb20uZXNpZ25mb3Jtcy5vcGVuLnBy
b2cuTGlicmFyeTsNCmltcG9ydCBjb20uZXNpZ25mb3Jtcy5vcGVuLnByb2cuUHJvcGVydHlT
ZXQ7DQppbXBvcnQgY29tLmVzaWduZm9ybXMub3Blbi5wcm9nLlByb3BlcnR5U2V0VmVyc2lv
bjsNCmltcG9ydCBjb20uZXNpZ25mb3Jtcy5vcGVuLnV0aWwuWG1sVXRpbDsNCmltcG9ydCBj
b20uZXNpZ25mb3Jtcy5vcGVuLnZhYWRpbi5Fc2ZWYWFkaW5BcHBsaWNhdGlvbjsNCmltcG9y
dCBjb20uZXNpZ25mb3Jtcy5vcGVuLnZhYWRpbi5tYWluLkVzZlZpZXc7DQppbXBvcnQgY29t
LmVzaWduZm9ybXMub3Blbi52YWFkaW4ud2lkZ2V0Lkxpc3RTZWxlY3RWYWxpZDsNCmltcG9y
dCBjb20uZXNpZ25mb3Jtcy5vcGVuLnZhYWRpbi53aWRnZXQuVXBsb2FkRmlsZTsNCmltcG9y
dCBjb20udmFhZGluLnVpLkJ1dHRvbjsNCmltcG9ydCBjb20udmFhZGluLnVpLkNoZWNrQm94
Ow0KaW1wb3J0IGNvbS52YWFkaW4udWkuSG9yaXpvbnRhbExheW91dDsNCmltcG9ydCBjb20u
dmFhZGluLnVpLkxhYmVsOw0KaW1wb3J0IGNvbS52YWFkaW4udWkuTGlzdFNlbGVjdDsNCmlt
cG9ydCBjb20udmFhZGluLnVpLlBhbmVsOw0KaW1wb3J0IGNvbS52YWFkaW4udWkuVmVydGlj
YWxMYXlvdXQ7DQppbXBvcnQgY29tLnZhYWRpbi51aS5CdXR0b24uQ2xpY2tFdmVudDsNCmlt
cG9ydCBjb20udmFhZGluLnVpLnRoZW1lcy5DaGFtZWxlb25UaGVtZTsNCg0KcHVibGljIGNs
YXNzIEltcG9ydFZpZXcgZXh0ZW5kcyBQYW5lbCBpbXBsZW1lbnRzIEVzZlZpZXcgew0KCXBy
aXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC01MzQ2Mjg4OTUx
MDQ4OTUwMzgzTDsNCg0KCXByaXZhdGUgc3RhdGljIGNvbS5lc2lnbmZvcm1zLm9wZW4ubG9n
LkxvZ2dlciBfbG9nZ2VyID0gbmV3IGNvbS5lc2lnbmZvcm1zLm9wZW4ubG9nLkxvZ2dlcihJ
bXBvcnRWaWV3LmNsYXNzKTsNCgkNCiAgICBFc2ZWYWFkaW5BcHBsaWNhdGlvbiB2YWFkaW5B
cHA7DQoJDQogICAgZmluYWwgSW1wb3J0VmlldyB0aGlzVmlldzsNCiAgICBmaW5hbCBMaWJy
YXJ5IGxpYnJhcnk7DQogICAgDQogICAgVXBsb2FkRmlsZSB1cGxvYWRGaWxlOw0KCU5hbWVz
cGFjZSBucyA9IE5hbWVzcGFjZS5nZXROYW1lc3BhY2UoWG1sVXRpbC5nZXRYbWxOYW1lc3Bh
Y2UyMDExKCkpOw0KICAgIC8vIFVwbG9hZGVkIGRhdGENCiAgICBFc2ZVVUlEIGRlcGxveUlk
Ow0KICAgIFN0cmluZyByZWxlYXNlOw0KICAgIGludCB2ZXJzaW9uTWFqb3I7DQogICAgaW50
IHZlcnNpb25NaW5vcjsNCiAgICBFc2ZEYXRlVGltZSB0aW1lc3RhbXA7DQogICAgRXNmUGF0
aE5hbWUgbGlicmFyeVBhdGhOYW1lOw0KCQ0KICAgIENoZWNrQm94IG92ZXJ3cml0ZVRlc3RW
ZXJzaW9uOw0KICAgIA0KICAgIExpc3Q8RWxlbWVudD4gZG9jdW1lbnRFbGVtZW50czsNCiAg
ICBMaXN0PEVsZW1lbnQ+IGRvY3VtZW50VmVyc2lvbkVsZW1lbnRzOw0KCUxpc3RTZWxlY3Qg
ZG9jdW1lbnRTZWxlY3Q7DQoNCiAgICBMaXN0PEVsZW1lbnQ+IGRvY3VtZW50U3R5bGVFbGVt
ZW50czsNCiAgICBMaXN0PEVsZW1lbnQ+IGRvY3VtZW50U3R5bGVWZXJzaW9uRWxlbWVudHM7
DQoJTGlzdFNlbGVjdCBkb2N1bWVudFN0eWxlU2VsZWN0Ow0KCQ0KICAgIExpc3Q8RWxlbWVu
dD4gZHJvcERvd25FbGVtZW50czsNCiAgICBMaXN0PEVsZW1lbnQ+IGRyb3BEb3duVmVyc2lv
bkVsZW1lbnRzOw0KCUxpc3RTZWxlY3QgZHJvcERvd25TZWxlY3Q7DQoJDQogICAgTGlzdDxF
bGVtZW50PiBlbWFpbEVsZW1lbnRzOw0KICAgIExpc3Q8RWxlbWVudD4gZW1haWxWZXJzaW9u
RWxlbWVudHM7DQoJTGlzdFNlbGVjdCBlbWFpbFNlbGVjdDsNCgkNCiAgICBMaXN0PEVsZW1l
bnQ+IGZpbGVFbGVtZW50czsNCiAgICBMaXN0PEVsZW1lbnQ+IGZpbGVWZXJzaW9uRWxlbWVu
dHM7DQoJTGlzdFNlbGVjdCBmaWxlU2VsZWN0Ow0KCQ0KICAgIExpc3Q8RWxlbWVudD4gaW1h
Z2VFbGVtZW50czsNCiAgICBMaXN0PEVsZW1lbnQ+IGltYWdlVmVyc2lvbkVsZW1lbnRzOw0K
CUxpc3RTZWxlY3QgaW1hZ2VTZWxlY3Q7DQoJDQogICAgTGlzdDxFbGVtZW50PiBwcm9wZXJ0
eVNldEVsZW1lbnRzOw0KICAgIExpc3Q8RWxlbWVudD4gcHJvcGVydHlTZXRWZXJzaW9uRWxl
bWVudHM7DQoJTGlzdFNlbGVjdCBwcm9wZXJ0eVNldFNlbGVjdDsNCiAgICANCglwdWJsaWMg
SW1wb3J0VmlldyhMaWJyYXJ5IGxpYnJhcnkpIHsNCgkJc3VwZXIoKTsNCgkJdGhpc1ZpZXcg
PSB0aGlzOw0KCQl0aGlzLmxpYnJhcnkgPSBsaWJyYXJ5Ow0KCQlzZXRTdHlsZU5hbWUoIkxp
YnJhcnlGb3JtSW1wb3J0VmlldyIpOw0KCQlzZXRTaXplRnVsbCgpOw0KCX0NCg0KCXByb3Rl
Y3RlZCB2b2lkIGJ1aWxkVXBsb2FkTGF5b3V0KCkgew0KCQl0cnkgew0KCQkJVmVydGljYWxM
YXlvdXQgbGF5b3V0ID0gKFZlcnRpY2FsTGF5b3V0KXN1cGVyLmdldENvbnRlbnQoKTsNCgkJ
CWxheW91dC5zZXRTaXplVW5kZWZpbmVkKCk7DQoJCQlsYXlvdXQuc2V0U3BhY2luZyh0cnVl
KTsNCgkJCWxheW91dC5zZXRNYXJnaW4odHJ1ZSk7DQoJCQkNCgkJCWxheW91dC5hZGRDb21w
b25lbnQoIG5ldyBMYWJlbCh2YWFkaW5BcHAuZ2V0TXNnKCIiKSkgKTsNCg0KCQkJdXBsb2Fk
RmlsZSA9IG5ldyBVcGxvYWRGaWxlKHZhYWRpbkFwcCxudWxsLHZhYWRpbkFwcC5nZXRNc2co
IkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuYnV0dG9uLnVwbG9hZC5sYWJlbCIpLDEwMDAwKjEw
MjQpIHsNCgkJCQlwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQg
PSAtNzQ3MjIyODY0NDE3MjYxMDU0OEw7DQoNCgkJCQlAT3ZlcnJpZGUNCgkJCQlwdWJsaWMg
dm9pZCBhZnRlclVwbG9hZFN1Y2NlZWRlZCgpIHsNCgkJCQkJU3RyaW5nIHhtbERhdGEgPSBF
c2ZTdHJpbmcuYnl0ZXNUb1N0cmluZyh1cGxvYWRGaWxlLmdldEZpbGVEYXRhKCkpOw0KCQkJ
CQlFcnJvcnMgZXJyb3JzID0gcHJvY2Vzc0ltcG9ydGVkWG1sKHhtbERhdGEpOw0KCQkJCQlp
ZiAoIGVycm9ycy5oYXNFcnJvcigpICkgew0KCQkJCQkJdmFhZGluQXBwLnNob3coZ2V0V2lu
ZG93KCksIGVycm9ycyk7DQoJCQkJCX0gIGVsc2Ugew0KCQkJCQkJdmFhZGluQXBwLnNob3dT
dGF0dXMoZ2V0V2luZG93KCksIHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9y
dFZpZXcudXBsb2FkLnN1Y2Nlc3NmdWwiLHVwbG9hZEZpbGUuZ2V0RmlsZU5hbWUoKSxFc2ZJ
bnRlZ2VyLmJ5dGVTaXplSW5Vbml0cyh1cGxvYWRGaWxlLmdldEZpbGVEYXRhKCkubGVuZ3Ro
KSApKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlAT3ZlcnJpZGUNCgkJCQlwdWJsaWMgdm9pZCBh
ZnRlclVwbG9hZEZhaWxlZChTdHJpbmcgZmlsZU5hbWUsIGJvb2xlYW4gd2FzQ2FuY2VsZWQs
IGJvb2xlYW4gd2FzSW52YWxpZE1pbWVUeXBlLCBib29sZWFuIHdhc1Rvb0JpZywgaW50IGNv
bnRlbnRMZW5ndGgsIGludCBtYXhTaXplKSB7DQoJCQkJCWlmICggd2FzVG9vQmlnICkgew0K
CQkJCQkJdmFhZGluQXBwLnNob3dFcnJvcihnZXRXaW5kb3coKSwgDQoJCQkJCQkJCXZhYWRp
bkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuZmlsZVRvb0xhcmdlLmNhcHRp
b24iKSwgDQoJCQkJCQkJCXZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZp
ZXcuZmlsZVRvb0xhcmdlLm1lc3NhZ2UiLEVzZkludGVnZXIuYnl0ZVNpemVJblVuaXRzKGNv
bnRlbnRMZW5ndGgpLEVzZkludGVnZXIuYnl0ZVNpemVJblVuaXRzKG1heFNpemUpKQ0KCQkJ
CQkJCQkpOw0KCQkJCQl9IGVsc2UgaWYgKCB3YXNDYW5jZWxlZCApIHsNCgkJCQkJCXZhYWRp
bkFwcC5zaG93U3RhdHVzKGdldFdpbmRvdygpLCB2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5
Rm9ybS5JbXBvcnRWaWV3LnVwbG9hZC5jYW5jZWxlZCIpKTsNCgkJCQkJfSBlbHNlIGlmICgg
d2FzSW52YWxpZE1pbWVUeXBlICkgew0KCQkJCQkJdmFhZGluQXBwLnNob3dFcnJvcihnZXRX
aW5kb3coKSwgDQoJCQkJCQkJCXZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9y
dFZpZXcuaW52YWxpZFR5cGUuY2FwdGlvbiIpLCANCgkJCQkJCQkJdmFhZGluQXBwLmdldE1z
ZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy5pbnZhbGlkVHlwZS5tZXNzYWdlIixFc2ZTdHJp
bmcuaXNCbGFuayhmaWxlTmFtZSk/Iih1bmtub3duKSI6ZmlsZU5hbWUpDQoJCQkJCQkJCSk7
DQoJCQkJCX0NCgkJCQl9DQoJCQl9OyANCgkJCXVwbG9hZEZpbGUuc2V0RGVzY3JpcHRpb24o
dmFhZGluQXBwLmdldE1zZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy5idXR0b24udXBsb2Fk
LnRvb2x0aXAiKSk7DQoJCQl1cGxvYWRGaWxlLnNldEFsbG93ZWRNaW1lVHlwZXNGb3JYbWwo
KTsNCgkJCWxheW91dC5hZGRDb21wb25lbnQodXBsb2FkRmlsZSk7DQoNCgkgICAgCV9sb2dn
ZXIuZGVidWcoImJ1aWxkVXBsb2FkTGF5b3V0KCkgY29tcGxldGVkIik7DQoJCX0gY2F0Y2go
IEV4Y2VwdGlvbiBlICkgew0KCQkJX2xvZ2dlci5kZWJ1ZygiRmFpbGVkIHRvIGJ1aWxkIHVw
bG9hZCB2aWV3IiwgZSk7DQoJCQl2YWFkaW5BcHAuc2hvd0Vycm9yKGdldFdpbmRvdygpLCAi
TGlicmFyeSBJbXBvcnRWaWV3IHZpZXcgZXhjZXB0aW9uIiwgZS5nZXRNZXNzYWdlKCkpOw0K
CQl9DQoJfQ0KCQ0KCXByb3RlY3RlZCB2b2lkIGJ1aWxkSW1wb3J0TGF5b3V0KCkgew0KCQl0
cnkgew0KCQkJVmVydGljYWxMYXlvdXQgbGF5b3V0ID0gKFZlcnRpY2FsTGF5b3V0KXN1cGVy
LmdldENvbnRlbnQoKTsNCgkJCWxheW91dC5yZW1vdmVBbGxDb21wb25lbnRzKCk7IC8vIHJl
bW92ZSB0aGUgdXBsb2FkIGxheW91dCdzIGNvbXBvbmVudHMNCgkJCWxheW91dC5zZXRTaXpl
VW5kZWZpbmVkKCk7DQoJCQlsYXlvdXQuc2V0U3BhY2luZyh0cnVlKTsNCgkJCWxheW91dC5z
ZXRNYXJnaW4oZmFsc2UpOw0KDQoJICAgIAlWZXJ0aWNhbExheW91dCBvcHRpb25zTGF5b3V0
ID0gbmV3IFZlcnRpY2FsTGF5b3V0KCk7DQoJICAgIAlvcHRpb25zTGF5b3V0LmFkZFN0eWxl
TmFtZSgib3B0aW9uc0xheW91dCIpOw0KCSAgICAJb3B0aW9uc0xheW91dC5zZXRTcGFjaW5n
KHRydWUpOw0KCSAgICAJb3B0aW9uc0xheW91dC5zZXRNYXJnaW4oZmFsc2UsdHJ1ZSxmYWxz
ZSx0cnVlKTsNCgkgICAgCQ0KCSAgICAJTGFiZWwgaW5mbyA9IG5ldyBMYWJlbCh2YWFkaW5B
cHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3LmluZm8ubGFiZWwiLGxpYnJhcnlQ
YXRoTmFtZSxkZXBsb3lJZCxyZWxlYXNlLHRpbWVzdGFtcCkpOw0KCSAgICAJb3B0aW9uc0xh
eW91dC5hZGRDb21wb25lbnQoaW5mbyk7DQoNCgkgICAgCW92ZXJ3cml0ZVRlc3RWZXJzaW9u
ID0gbmV3IENoZWNrQm94KHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZp
ZXcub3ZlcndyaXRlVGVzdFZlcnNpb24uY2hlY2tib3gubGFiZWwiKSk7DQoJICAgIAlvdmVy
d3JpdGVUZXN0VmVyc2lvbi5zZXRWYWx1ZSh0cnVlKTsNCgkgICAgCW9wdGlvbnNMYXlvdXQu
YWRkQ29tcG9uZW50KG92ZXJ3cml0ZVRlc3RWZXJzaW9uKTsNCgkgICAgCQ0KCSAgICAJSG9y
aXpvbnRhbExheW91dCBsaXN0U2VsZWN0TGF5b3V0ID0gbmV3IEhvcml6b250YWxMYXlvdXQo
KTsNCgkgICAgCWxpc3RTZWxlY3RMYXlvdXQuYWRkU3R5bGVOYW1lKCJsaXN0U2VsZWN0TGF5
b3V0Iik7DQoJICAgIAlsaXN0U2VsZWN0TGF5b3V0LnNldFNwYWNpbmcodHJ1ZSk7DQoJICAg
IAlsaXN0U2VsZWN0TGF5b3V0LnNldE1hcmdpbihmYWxzZSx0cnVlLGZhbHNlLHRydWUpOw0K
CSAgICAJDQoJICAgIAlpZiAoIGRvY3VtZW50RWxlbWVudHMgIT0gbnVsbCAmJiBkb2N1bWVu
dEVsZW1lbnRzLnNpemUoKSA+IDAgKSB7DQoJCQkJZG9jdW1lbnRTZWxlY3QgPSBuZXcgTGlz
dFNlbGVjdFZhbGlkKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcu
ZG9jdW1lbnQuc2VsZWN0LmxhYmVsIikpOw0KCQkJCWRvY3VtZW50U2VsZWN0LnNldERlc2Ny
aXB0aW9uKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuZG9jdW1l
bnQuc2VsZWN0LnRvb2x0aXAiKSk7DQoJCQkJZG9jdW1lbnRTZWxlY3Quc2V0UmVxdWlyZWQo
ZmFsc2UpOw0KCQkJCWRvY3VtZW50U2VsZWN0LnNldE11bHRpU2VsZWN0KHRydWUpOw0KCQkJ
CWRvY3VtZW50U2VsZWN0LnNldE51bGxTZWxlY3Rpb25BbGxvd2VkKHRydWUpOw0KCQkJCWRv
Y3VtZW50U2VsZWN0LnNldFJvd3MoMjApOw0KCQkJCWxpc3RTZWxlY3RMYXlvdXQuYWRkQ29t
cG9uZW50KGRvY3VtZW50U2VsZWN0KTsNCgkgICAgCX0NCgkJCQ0KCSAgICAJaWYgKCBkb2N1
bWVudFN0eWxlRWxlbWVudHMgIT0gbnVsbCAmJiBkb2N1bWVudFN0eWxlRWxlbWVudHMuc2l6
ZSgpID4gMCApIHsNCgkJCQlkb2N1bWVudFN0eWxlU2VsZWN0ID0gbmV3IExpc3RTZWxlY3RW
YWxpZCh2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3LmRvY3VtZW50
U3R5bGUuc2VsZWN0LmxhYmVsIikpOw0KCQkJCWRvY3VtZW50U3R5bGVTZWxlY3Quc2V0RGVz
Y3JpcHRpb24odmFhZGluQXBwLmdldE1zZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy5kb2N1
bWVudFN0eWxlLnNlbGVjdC50b29sdGlwIikpOw0KCQkJCWRvY3VtZW50U3R5bGVTZWxlY3Qu
c2V0UmVxdWlyZWQoZmFsc2UpOw0KCQkJCWRvY3VtZW50U3R5bGVTZWxlY3Quc2V0TXVsdGlT
ZWxlY3QodHJ1ZSk7DQoJCQkJZG9jdW1lbnRTdHlsZVNlbGVjdC5zZXROdWxsU2VsZWN0aW9u
QWxsb3dlZCh0cnVlKTsNCgkJCQlkb2N1bWVudFN0eWxlU2VsZWN0LnNldFJvd3MoMjApOw0K
CQkJCWxpc3RTZWxlY3RMYXlvdXQuYWRkQ29tcG9uZW50KGRvY3VtZW50U3R5bGVTZWxlY3Qp
Ow0KCSAgICAJfQ0KCQkJDQoJICAgIAlpZiAoIGRyb3BEb3duRWxlbWVudHMgIT0gbnVsbCAm
JiBkcm9wRG93bkVsZW1lbnRzLnNpemUoKSA+IDAgKSB7DQoJCQkJZHJvcERvd25TZWxlY3Qg
PSBuZXcgTGlzdFNlbGVjdFZhbGlkKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLklt
cG9ydFZpZXcuZHJvcERvd24uc2VsZWN0LmxhYmVsIikpOw0KCQkJCWRyb3BEb3duU2VsZWN0
LnNldERlc2NyaXB0aW9uKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZp
ZXcuZHJvcERvd24uc2VsZWN0LnRvb2x0aXAiKSk7DQoJCQkJZHJvcERvd25TZWxlY3Quc2V0
UmVxdWlyZWQoZmFsc2UpOw0KCQkJCWRyb3BEb3duU2VsZWN0LnNldE11bHRpU2VsZWN0KHRy
dWUpOw0KCQkJCWRyb3BEb3duU2VsZWN0LnNldE51bGxTZWxlY3Rpb25BbGxvd2VkKHRydWUp
Ow0KCQkJCWRyb3BEb3duU2VsZWN0LnNldFJvd3MoMjApOw0KCQkJCWxpc3RTZWxlY3RMYXlv
dXQuYWRkQ29tcG9uZW50KGRyb3BEb3duU2VsZWN0KTsNCgkgICAgCX0NCgkJCQ0KCSAgICAJ
aWYgKCBlbWFpbEVsZW1lbnRzICE9IG51bGwgJiYgZW1haWxFbGVtZW50cy5zaXplKCkgPiAw
ICkgew0KCQkJCWVtYWlsU2VsZWN0ID0gbmV3IExpc3RTZWxlY3RWYWxpZCh2YWFkaW5BcHAu
Z2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3LmVtYWlsLnNlbGVjdC5sYWJlbCIpKTsN
CgkJCQllbWFpbFNlbGVjdC5zZXREZXNjcmlwdGlvbih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJy
YXJ5Rm9ybS5JbXBvcnRWaWV3LmVtYWlsLnNlbGVjdC50b29sdGlwIikpOw0KCQkJCWVtYWls
U2VsZWN0LnNldFJlcXVpcmVkKGZhbHNlKTsNCgkJCQllbWFpbFNlbGVjdC5zZXRNdWx0aVNl
bGVjdCh0cnVlKTsNCgkJCQllbWFpbFNlbGVjdC5zZXROdWxsU2VsZWN0aW9uQWxsb3dlZCh0
cnVlKTsNCgkJCQllbWFpbFNlbGVjdC5zZXRSb3dzKDIwKTsNCgkJCQlsaXN0U2VsZWN0TGF5
b3V0LmFkZENvbXBvbmVudChlbWFpbFNlbGVjdCk7DQoJICAgIAl9DQoNCgkgICAgCWlmICgg
ZmlsZUVsZW1lbnRzICE9IG51bGwgJiYgZmlsZUVsZW1lbnRzLnNpemUoKSA+IDAgKSB7DQoJ
CQkJZmlsZVNlbGVjdCA9IG5ldyBMaXN0U2VsZWN0VmFsaWQodmFhZGluQXBwLmdldE1zZygi
TGlicmFyeUZvcm0uSW1wb3J0Vmlldy5maWxlLnNlbGVjdC5sYWJlbCIpKTsNCgkJCQlmaWxl
U2VsZWN0LnNldERlc2NyaXB0aW9uKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLklt
cG9ydFZpZXcuZmlsZS5zZWxlY3QudG9vbHRpcCIpKTsNCgkJCQlmaWxlU2VsZWN0LnNldFJl
cXVpcmVkKGZhbHNlKTsNCgkJCQlmaWxlU2VsZWN0LnNldE11bHRpU2VsZWN0KHRydWUpOw0K
CQkJCWZpbGVTZWxlY3Quc2V0TnVsbFNlbGVjdGlvbkFsbG93ZWQodHJ1ZSk7DQoJCQkJZmls
ZVNlbGVjdC5zZXRSb3dzKDIwKTsNCgkJCQlsaXN0U2VsZWN0TGF5b3V0LmFkZENvbXBvbmVu
dChmaWxlU2VsZWN0KTsNCgkgICAgCX0NCg0KCSAgICAJaWYgKCBpbWFnZUVsZW1lbnRzICE9
IG51bGwgJiYgaW1hZ2VFbGVtZW50cy5zaXplKCkgPiAwICkgew0KCQkJCWltYWdlU2VsZWN0
ID0gbmV3IExpc3RTZWxlY3RWYWxpZCh2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5J
bXBvcnRWaWV3LmltYWdlLnNlbGVjdC5sYWJlbCIpKTsNCgkJCQlpbWFnZVNlbGVjdC5zZXRE
ZXNjcmlwdGlvbih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3Lmlt
YWdlLnNlbGVjdC50b29sdGlwIikpOw0KCQkJCWltYWdlU2VsZWN0LnNldFJlcXVpcmVkKGZh
bHNlKTsNCgkJCQlpbWFnZVNlbGVjdC5zZXRNdWx0aVNlbGVjdCh0cnVlKTsNCgkJCQlpbWFn
ZVNlbGVjdC5zZXROdWxsU2VsZWN0aW9uQWxsb3dlZCh0cnVlKTsNCgkJCQlpbWFnZVNlbGVj
dC5zZXRSb3dzKDIwKTsNCgkJCQlsaXN0U2VsZWN0TGF5b3V0LmFkZENvbXBvbmVudChpbWFn
ZVNlbGVjdCk7DQoJICAgIAl9DQoJCQkNCgkgICAgCWlmICggcHJvcGVydHlTZXRFbGVtZW50
cyAhPSBudWxsICYmIHByb3BlcnR5U2V0RWxlbWVudHMuc2l6ZSgpID4gMCApIHsNCgkJCQlw
cm9wZXJ0eVNldFNlbGVjdCA9IG5ldyBMaXN0U2VsZWN0VmFsaWQodmFhZGluQXBwLmdldE1z
ZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy5wcm9wZXJ0eVNldC5zZWxlY3QubGFiZWwiKSk7
DQoJCQkJcHJvcGVydHlTZXRTZWxlY3Quc2V0RGVzY3JpcHRpb24odmFhZGluQXBwLmdldE1z
ZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy5wcm9wZXJ0eVNldC5zZWxlY3QudG9vbHRpcCIp
KTsNCgkJCQlwcm9wZXJ0eVNldFNlbGVjdC5zZXRSZXF1aXJlZChmYWxzZSk7DQoJCQkJcHJv
cGVydHlTZXRTZWxlY3Quc2V0TXVsdGlTZWxlY3QodHJ1ZSk7DQoJCQkJcHJvcGVydHlTZXRT
ZWxlY3Quc2V0TnVsbFNlbGVjdGlvbkFsbG93ZWQodHJ1ZSk7DQoJCQkJcHJvcGVydHlTZXRT
ZWxlY3Quc2V0Um93cygyMCk7DQoJCQkJbGlzdFNlbGVjdExheW91dC5hZGRDb21wb25lbnQo
cHJvcGVydHlTZXRTZWxlY3QpOw0KCSAgICAJfQ0KCSAgICAJDQoJICAgIAkvLyBJZiB3ZSBo
YXZlIGZldyBzZWxlY3RzLCB3ZSdsbCBzZXQgdGhlIHdpZHRoIHRvIGhlbHAgb3VyICdpbmZv
JyBlbGVtZW50IG5vdCBiZSB0b28gbmFycm93Lg0KCSAgICAJaWYgKCBsaXN0U2VsZWN0TGF5
b3V0LmdldENvbXBvbmVudENvdW50KCkgPCA0ICkNCgkgICAgCQlsYXlvdXQuc2V0V2lkdGgo
ODUwLCBVTklUU19QSVhFTFMpOw0KDQoJICAgIAlIb3Jpem9udGFsTGF5b3V0IGJ1dHRvbkxh
eW91dCA9IG5ldyBIb3Jpem9udGFsTGF5b3V0KCk7DQoJICAgIAlidXR0b25MYXlvdXQuYWRk
U3R5bGVOYW1lKCJidXR0b25MYXlvdXQiKTsNCgkgICAgCWJ1dHRvbkxheW91dC5zZXRTcGFj
aW5nKHRydWUpOw0KCSAgICAJYnV0dG9uTGF5b3V0LnNldE1hcmdpbihmYWxzZSx0cnVlLGZh
bHNlLHRydWUpOw0KCSAgICAJDQoJCQlCdXR0b24gaW1wb3J0QnV0dG9uID0gbmV3IEJ1dHRv
bih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3LmJ1dHRvbi5pbXBv
cnQubGFiZWwiKSk7DQoJCQkvL2ltcG9ydEJ1dHRvbi5zZXRJY29uKG5ldyBUaGVtZVJlc291
cmNlKHZhYWRpbkFwcC5nZXRNc2coImJ1dHRvbi5yZWZyZXNoLmljb24iKSkpOw0KCQkJaW1w
b3J0QnV0dG9uLnNldERlc2NyaXB0aW9uKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3Jt
LkltcG9ydFZpZXcuYnV0dG9uLmltcG9ydC50b29sdGlwIikpOw0KCQkJaW1wb3J0QnV0dG9u
LnNldFN0eWxlTmFtZShDaGFtZWxlb25UaGVtZS5CVVRUT05fU01BTEwpOw0KCQkJaW1wb3J0
QnV0dG9uLmFkZFN0eWxlTmFtZShDaGFtZWxlb25UaGVtZS5CVVRUT05fREVGQVVMVCk7DQoJ
CQlpbXBvcnRCdXR0b24uYWRkTGlzdGVuZXIoIG5ldyBCdXR0b24uQ2xpY2tMaXN0ZW5lcigp
IHsJCQkNCgkJCQlwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQg
PSAzMjU1NzQ4NDc5ODcyMjc2NDg4TDsNCg0KCQkJCUBPdmVycmlkZQ0KCQkJCXB1YmxpYyB2
b2lkIGJ1dHRvbkNsaWNrKENsaWNrRXZlbnQgZXZlbnQpIHsNCgkJCQkJRXJyb3JzIGVycm9y
cyA9IG5ldyBFcnJvcnMoKTsNCgkJCQkJZG9JbXBvcnQoZXJyb3JzKTsNCgkJCQkJaWYgKCBl
cnJvcnMuZ2V0TnVtRXJyb3JFbnRyaWVzKCkgPT0gMCApDQoJCQkJCQllcnJvcnMuYWRkV2Fy
bmluZyh2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3LmltcG9ydE5v
RWxlbWVudHMubWVzc2FnZSIpKTsNCgkJCQkJdmFhZGluQXBwLnNob3coZ2V0V2luZG93KCks
IGVycm9ycyk7DQoJCQkJCXJlZnJlc2hTZWxlY3Rpb25zKCk7DQoJCQkJfQ0KCQkJfSk7DQoJ
ICAgIAlidXR0b25MYXlvdXQuYWRkQ29tcG9uZW50KGltcG9ydEJ1dHRvbik7DQoNCgkgICAg
CWxheW91dC5hZGRDb21wb25lbnQob3B0aW9uc0xheW91dCk7DQoJICAgIAlsYXlvdXQuYWRk
Q29tcG9uZW50KGxpc3RTZWxlY3RMYXlvdXQpOw0KCSAgICAJbGF5b3V0LmFkZENvbXBvbmVu
dChidXR0b25MYXlvdXQpOw0KCSAgICAJDQoJICAgIAlyZWZyZXNoU2VsZWN0aW9ucygpOw0K
CQkJDQoJICAgIAlfbG9nZ2VyLmRlYnVnKCJidWlsZEltcG9ydExheW91dCgpIGNvbXBsZXRl
ZCIpOw0KCQl9IGNhdGNoKCBFeGNlcHRpb24gZSApIHsNCgkJCV9sb2dnZXIuZGVidWcoIkZh
aWxlZCB0byBidWlsZCB2aWV3IiwgZSk7DQoJCQl2YWFkaW5BcHAuc2hvd0Vycm9yKGdldFdp
bmRvdygpLCAiTGlicmFyeSBJbXBvcnRWaWV3IHZpZXcgZXhjZXB0aW9uIiwgZS5nZXRNZXNz
YWdlKCkpOw0KCQl9DQoJfQ0KCQ0KCXZvaWQgcmVmcmVzaFNlbGVjdGlvbnMoKSB7DQoJCWlm
ICggZG9jdW1lbnRTZWxlY3QgIT0gbnVsbCApIHsNCgkJCWRvY3VtZW50U2VsZWN0LnJlbW92
ZUFsbEl0ZW1zKCk7DQoJCQlpZiAoIGRvY3VtZW50RWxlbWVudHMgIT0gbnVsbCApIHsNCgkJ
CQlIYXNoU2V0PEVsZW1lbnQ+IHNlbGVjdGVkVmFsdWVzID0gbmV3IEhhc2hTZXQ8RWxlbWVu
dD4oKTsNCgkJCQlMaXN0SXRlcmF0b3I8RWxlbWVudD4gaXRlciA9IGRvY3VtZW50RWxlbWVu
dHMubGlzdEl0ZXJhdG9yKCk7DQoJCQkJd2hpbGUoIGl0ZXIuaGFzTmV4dCgpICkgew0KCQkJ
CQlFbGVtZW50IGUgPSBpdGVyLm5leHQoKTsNCgkJCQkJRXNmTmFtZSBlc2ZuYW1lID0gRXNm
TmFtZS5jcmVhdGVGcm9tVG9YbWwoZS5nZXRDaGlsZFRleHQoImVzZm5hbWUiLG5zKSk7DQoJ
CQkJCWlmICggZXNmbmFtZS5pc1ZhbGlkKCkgKSB7DQoJCQkJCQlzZWxlY3RlZFZhbHVlcy5h
ZGQoZSk7DQoJCQkJCQlkb2N1bWVudFNlbGVjdC5hZGRJdGVtKGUpOw0KCQkJCQkJZG9jdW1l
bnRTZWxlY3Quc2V0SXRlbUNhcHRpb24oZSwgZXNmbmFtZS50b1N0cmluZygpKTsNCgkJCQkJ
fQ0KCQkJCX0NCgkJCQlkb2N1bWVudFNlbGVjdC5zZXRWYWx1ZSggc2VsZWN0ZWRWYWx1ZXMg
KTsgLy8gc2VsZWN0IGFsbA0KCQkJfQ0KCQl9DQoNCgkJaWYgKCBkb2N1bWVudFN0eWxlU2Vs
ZWN0ICE9IG51bGwgKSB7DQoJCQlkb2N1bWVudFN0eWxlU2VsZWN0LnJlbW92ZUFsbEl0ZW1z
KCk7DQoJCQlpZiAoIGRvY3VtZW50U3R5bGVFbGVtZW50cyAhPSBudWxsICkgew0KCQkJCUhh
c2hTZXQ8RWxlbWVudD4gc2VsZWN0ZWRWYWx1ZXMgPSBuZXcgSGFzaFNldDxFbGVtZW50Pigp
Ow0KCQkJCUxpc3RJdGVyYXRvcjxFbGVtZW50PiBpdGVyID0gZG9jdW1lbnRTdHlsZUVsZW1l
bnRzLmxpc3RJdGVyYXRvcigpOw0KCQkJCXdoaWxlKCBpdGVyLmhhc05leHQoKSApIHsNCgkJ
CQkJRWxlbWVudCBlID0gaXRlci5uZXh0KCk7DQoJCQkJCUVzZk5hbWUgZXNmbmFtZSA9IEVz
Zk5hbWUuY3JlYXRlRnJvbVRvWG1sKGUuZ2V0Q2hpbGRUZXh0KCJlc2ZuYW1lIixucykpOw0K
CQkJCQlpZiAoIGVzZm5hbWUuaXNWYWxpZCgpICkgew0KCQkJCQkJc2VsZWN0ZWRWYWx1ZXMu
YWRkKGUpOw0KCQkJCQkJZG9jdW1lbnRTdHlsZVNlbGVjdC5hZGRJdGVtKGUpOw0KCQkJCQkJ
ZG9jdW1lbnRTdHlsZVNlbGVjdC5zZXRJdGVtQ2FwdGlvbihlLCBlc2ZuYW1lLnRvU3RyaW5n
KCkpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWRvY3VtZW50U3R5bGVTZWxlY3Quc2V0VmFsdWUo
IHNlbGVjdGVkVmFsdWVzICk7IC8vIHNlbGVjdCBhbGwNCgkJCX0NCgkJfQ0KCQkNCgkJaWYg
KCBkcm9wRG93blNlbGVjdCAhPSBudWxsICkgew0KCQkJZHJvcERvd25TZWxlY3QucmVtb3Zl
QWxsSXRlbXMoKTsNCgkJCWlmICggZHJvcERvd25FbGVtZW50cyAhPSBudWxsICkgew0KCQkJ
CUhhc2hTZXQ8RWxlbWVudD4gc2VsZWN0ZWRWYWx1ZXMgPSBuZXcgSGFzaFNldDxFbGVtZW50
PigpOw0KCQkJCUxpc3RJdGVyYXRvcjxFbGVtZW50PiBpdGVyID0gZHJvcERvd25FbGVtZW50
cy5saXN0SXRlcmF0b3IoKTsNCgkJCQl3aGlsZSggaXRlci5oYXNOZXh0KCkgKSB7DQoJCQkJ
CUVsZW1lbnQgZSA9IGl0ZXIubmV4dCgpOw0KCQkJCQlFc2ZOYW1lIGVzZm5hbWUgPSBFc2ZO
YW1lLmNyZWF0ZUZyb21Ub1htbChlLmdldENoaWxkVGV4dCgiZXNmbmFtZSIsbnMpKTsNCgkJ
CQkJaWYgKCBlc2ZuYW1lLmlzVmFsaWQoKSApIHsNCgkJCQkJCXNlbGVjdGVkVmFsdWVzLmFk
ZChlKTsNCgkJCSAgICAJCWRyb3BEb3duU2VsZWN0LmFkZEl0ZW0oZSk7DQoJCQkgICAgCQlk
cm9wRG93blNlbGVjdC5zZXRJdGVtQ2FwdGlvbihlLCBlc2ZuYW1lLnRvU3RyaW5nKCkpOw0K
CQkJCQl9DQoJCQkJfQ0KCQkJCWRyb3BEb3duU2VsZWN0LnNldFZhbHVlKCBzZWxlY3RlZFZh
bHVlcyApOyAvLyBzZWxlY3QgYWxsDQoJCQl9DQoJCX0NCg0KCQlpZiAoIGVtYWlsU2VsZWN0
ICE9IG51bGwgKSB7DQoJCQllbWFpbFNlbGVjdC5yZW1vdmVBbGxJdGVtcygpOw0KCQkJaWYg
KCBlbWFpbEVsZW1lbnRzICE9IG51bGwgKSB7DQoJCQkJSGFzaFNldDxFbGVtZW50PiBzZWxl
Y3RlZFZhbHVlcyA9IG5ldyBIYXNoU2V0PEVsZW1lbnQ+KCk7DQoJCQkJTGlzdEl0ZXJhdG9y
PEVsZW1lbnQ+IGl0ZXIgPSBlbWFpbEVsZW1lbnRzLmxpc3RJdGVyYXRvcigpOw0KCQkJCXdo
aWxlKCBpdGVyLmhhc05leHQoKSApIHsNCgkJCQkJRWxlbWVudCBlID0gaXRlci5uZXh0KCk7
DQoJCQkJCUVzZk5hbWUgZXNmbmFtZSA9IEVzZk5hbWUuY3JlYXRlRnJvbVRvWG1sKGUuZ2V0
Q2hpbGRUZXh0KCJlc2ZuYW1lIixucykpOw0KCQkJCQlpZiAoIGVzZm5hbWUuaXNWYWxpZCgp
ICkgew0KCQkJCQkJc2VsZWN0ZWRWYWx1ZXMuYWRkKGUpOw0KCQkJCQkJZW1haWxTZWxlY3Qu
YWRkSXRlbShlKTsNCgkJCQkJCWVtYWlsU2VsZWN0LnNldEl0ZW1DYXB0aW9uKGUsIGVzZm5h
bWUudG9TdHJpbmcoKSk7DQoJCQkJCX0NCgkJCQl9DQoJCQkJZW1haWxTZWxlY3Quc2V0VmFs
dWUoIHNlbGVjdGVkVmFsdWVzICk7IC8vIHNlbGVjdCBhbGwNCgkJCX0NCgkJfQ0KDQoJCWlm
ICggZmlsZVNlbGVjdCAhPSBudWxsICkgew0KCQkJZmlsZVNlbGVjdC5yZW1vdmVBbGxJdGVt
cygpOw0KCQkJaWYgKCBmaWxlRWxlbWVudHMgIT0gbnVsbCApIHsNCgkJCQlIYXNoU2V0PEVs
ZW1lbnQ+IHNlbGVjdGVkVmFsdWVzID0gbmV3IEhhc2hTZXQ8RWxlbWVudD4oKTsNCgkJCQlM
aXN0SXRlcmF0b3I8RWxlbWVudD4gaXRlciA9IGZpbGVFbGVtZW50cy5saXN0SXRlcmF0b3Io
KTsNCgkJCQl3aGlsZSggaXRlci5oYXNOZXh0KCkgKSB7DQoJCQkJCUVsZW1lbnQgZSA9IGl0
ZXIubmV4dCgpOw0KCQkJCQlFc2ZOYW1lIGVzZm5hbWUgPSBFc2ZOYW1lLmNyZWF0ZUZyb21U
b1htbChlLmdldENoaWxkVGV4dCgiZXNmbmFtZSIsbnMpKTsNCgkJCQkJaWYgKCBlc2ZuYW1l
LmlzVmFsaWQoKSApIHsNCgkJCQkJCXNlbGVjdGVkVmFsdWVzLmFkZChlKTsNCgkJCQkJCWZp
bGVTZWxlY3QuYWRkSXRlbShlKTsNCgkJCQkJCWZpbGVTZWxlY3Quc2V0SXRlbUNhcHRpb24o
ZSwgZXNmbmFtZS50b1N0cmluZygpKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlmaWxlU2VsZWN0
LnNldFZhbHVlKCBzZWxlY3RlZFZhbHVlcyApOyAvLyBzZWxlY3QgYWxsDQoJCQl9DQoJCX0N
Cg0KCQlpZiAoIGltYWdlU2VsZWN0ICE9IG51bGwgKSB7DQoJCQlpbWFnZVNlbGVjdC5yZW1v
dmVBbGxJdGVtcygpOw0KCQkJaWYgKCBpbWFnZUVsZW1lbnRzICE9IG51bGwgKSB7DQoJCQkJ
SGFzaFNldDxFbGVtZW50PiBzZWxlY3RlZFZhbHVlcyA9IG5ldyBIYXNoU2V0PEVsZW1lbnQ+
KCk7DQoJCQkJTGlzdEl0ZXJhdG9yPEVsZW1lbnQ+IGl0ZXIgPSBpbWFnZUVsZW1lbnRzLmxp
c3RJdGVyYXRvcigpOw0KCQkJCXdoaWxlKCBpdGVyLmhhc05leHQoKSApIHsNCgkJCQkJRWxl
bWVudCBlID0gaXRlci5uZXh0KCk7DQoJCQkJCUVzZk5hbWUgZXNmbmFtZSA9IEVzZk5hbWUu
Y3JlYXRlRnJvbVRvWG1sKGUuZ2V0Q2hpbGRUZXh0KCJlc2ZuYW1lIixucykpOw0KCQkJCQlp
ZiAoIGVzZm5hbWUuaXNWYWxpZCgpICkgew0KCQkJCQkJc2VsZWN0ZWRWYWx1ZXMuYWRkKGUp
Ow0KCQkJCQkJaW1hZ2VTZWxlY3QuYWRkSXRlbShlKTsNCgkJCQkJCWltYWdlU2VsZWN0LnNl
dEl0ZW1DYXB0aW9uKGUsIGVzZm5hbWUudG9TdHJpbmcoKSk7DQoJCQkJCX0NCgkJCQl9DQoJ
CQkJaW1hZ2VTZWxlY3Quc2V0VmFsdWUoIHNlbGVjdGVkVmFsdWVzICk7IC8vIHNlbGVjdCBh
bGwNCgkJCX0NCgkJfQ0KDQoJCWlmICggcHJvcGVydHlTZXRTZWxlY3QgIT0gbnVsbCApIHsN
CgkJCXByb3BlcnR5U2V0U2VsZWN0LnJlbW92ZUFsbEl0ZW1zKCk7DQoJCQlpZiAoIHByb3Bl
cnR5U2V0RWxlbWVudHMgIT0gbnVsbCApIHsNCgkJCQlIYXNoU2V0PEVsZW1lbnQ+IHNlbGVj
dGVkVmFsdWVzID0gbmV3IEhhc2hTZXQ8RWxlbWVudD4oKTsNCgkJCQlMaXN0SXRlcmF0b3I8
RWxlbWVudD4gaXRlciA9IHByb3BlcnR5U2V0RWxlbWVudHMubGlzdEl0ZXJhdG9yKCk7DQoJ
CQkJd2hpbGUoIGl0ZXIuaGFzTmV4dCgpICkgew0KCQkJCQlFbGVtZW50IGUgPSBpdGVyLm5l
eHQoKTsNCgkJCQkJRXNmTmFtZSBlc2ZuYW1lID0gRXNmTmFtZS5jcmVhdGVGcm9tVG9YbWwo
ZS5nZXRDaGlsZFRleHQoImVzZm5hbWUiLG5zKSk7DQoJCQkJCWlmICggZXNmbmFtZS5pc1Zh
bGlkKCkgKSB7DQoJCQkJCQlzZWxlY3RlZFZhbHVlcy5hZGQoZSk7DQoJCQkJCQlwcm9wZXJ0
eVNldFNlbGVjdC5hZGRJdGVtKGUpOw0KCQkJCQkJcHJvcGVydHlTZXRTZWxlY3Quc2V0SXRl
bUNhcHRpb24oZSwgZXNmbmFtZS50b1N0cmluZygpKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlw
cm9wZXJ0eVNldFNlbGVjdC5zZXRWYWx1ZSggc2VsZWN0ZWRWYWx1ZXMgKTsgLy8gc2VsZWN0
IGFsbA0KCQkJfQ0KCQl9DQoNCgl9DQoJDQoJRXJyb3JzIHByb2Nlc3NJbXBvcnRlZFhtbChT
dHJpbmcgeG1sRGF0YSkgew0KCQlFcnJvcnMgZXJyb3JzID0gbmV3IEVycm9ycygpOw0KCQkN
CgkJU3RyaW5nUmVhZGVyIHNyID0gbnVsbDsNCg0KCQlTQVhCdWlsZGVyIHNheEJ1aWxkZXIg
PSBuZXcgU0FYQnVpbGRlcihYTUxSZWFkZXJzLk5PTlZBTElEQVRJTkcpOw0KCQlzYXhCdWls
ZGVyLnNldElnbm9yaW5nRWxlbWVudENvbnRlbnRXaGl0ZXNwYWNlKHRydWUpOw0KDQoJCXRy
eSB7DQoJCQlzciA9IG5ldyBTdHJpbmdSZWFkZXIoeG1sRGF0YSk7DQoNCgkJCW9yZy5qZG9t
Mi5Eb2N1bWVudCBkb2MgPSBzYXhCdWlsZGVyLmJ1aWxkKHNyKTsNCgkJCUVsZW1lbnQgcm9v
dEVsZW1lbnQgPSBkb2MuZ2V0Um9vdEVsZW1lbnQoKTsNCgkJCQ0KCQkJbG9hZFhtbEZyb21K
ZG9tKHJvb3RFbGVtZW50LCB4bWxEYXRhKTsNCgkJCQ0KCQkJYnVpbGRJbXBvcnRMYXlvdXQo
KTsNCgkJfSBjYXRjaCAoRXNmRXhjZXB0aW9uIGUpIHsNCgkJCWVycm9ycy5hZGRFcnJvcihl
LmdldE1lc3NhZ2UoKSk7DQoJCX0gY2F0Y2ggKGphdmEuaW8uSU9FeGNlcHRpb24gZSkgew0K
CQkJX2xvZ2dlci5lcnJvcigicHJvY2Vzc0ltcG9ydGVkWG1sKCkgLSBjb3VsZCBub3QgcmVh
ZCBkYXRhIGZyb20gdGhlIFhNTCBzdHJpbmc6ICIgKyB4bWxEYXRhLGUpOw0KCQkJZXJyb3Jz
LmFkZEVycm9yKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcueG1s
RXJyb3IuaW9leGNlcHRpb24iKSk7DQoJCX0gY2F0Y2ggKEpET01FeGNlcHRpb24gZSkgew0K
CQkJX2xvZ2dlci5lcnJvcigicHJvY2Vzc0ltcG9ydGVkWG1sKCkgLSBjb3VsZCBub3QgWE1M
IHBhcnNlIGRhdGEgZnJvbSB0aGUgWE1MIHN0cmluZzogIiArIHhtbERhdGEsIGUpOw0KCQkJ
ZXJyb3JzLmFkZEVycm9yKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZp
ZXcueG1sRXJyb3IuamRvbWV4Y2VwdGlvbiIpKTsNCgkJfSBmaW5hbGx5IHsNCgkJCWlmIChz
ciAhPSBudWxsKSB7DQoJCQkJdHJ5IHsgc3IuY2xvc2UoKTsgfSBjYXRjaCAoRXhjZXB0aW9u
IGUpIHt9DQoJCQl9DQoJCX0NCgkJDQoJCXJldHVybiBlcnJvcnM7DQoJfQ0KCQ0KCXByb3Rl
Y3RlZCB2b2lkIGxvYWRYbWxGcm9tSmRvbShFbGVtZW50IHJvb3RFbGVtZW50LCBTdHJpbmcg
ZGF0YVhtbCkgdGhyb3dzIEVzZkV4Y2VwdGlvbiB7DQoJCVN0cmluZyByb290TmFtZSA9IHJv
b3RFbGVtZW50LmdldE5hbWUoKTsNCgkJaWYgKCFyb290TmFtZS5lcXVhbHMoIkxpYnJhcnlF
eHBvcnQiKSkgew0KCQkJX2xvZ2dlci5lcnJvcigibG9hZFhtbEZyb21KZG9tKCk6IFJvb3Qg
ZWxlbWVudCBpcyBub3QgTGlicmFyeUV4cG9ydC4gIEZvdW5kIGluc3RlYWQ6ICIgKyByb290
TmFtZSArICI7IGluIFhNTDogIg0KCQkJCQkrIGRhdGFYbWwpOw0KCQkJdGhyb3cgbmV3IEVz
ZkV4Y2VwdGlvbih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3Lnht
bEVycm9yLmludmFsaWRSb290IikpOw0KCQl9DQoNCgkJZGVwbG95SWQgPSBuZXcgRXNmVVVJ
RChyb290RWxlbWVudC5nZXRDaGlsZFRleHQoImRlcGxveUlkIiwgbnMpKTsNCgkJaWYgKGRl
cGxveUlkLmlzTnVsbCgpKSB7DQoJCQlfbG9nZ2VyLmVycm9yKCJsb2FkWG1sRnJvbUpkb20o
KTogcmVxdWlyZWQgZGVwbG95SWQgZWxlbWVudCBpcyBtaXNzaW5nIGluIFhNTDogIiArIGRh
dGFYbWwpOw0KCQkJdGhyb3cgbmV3IEVzZkV4Y2VwdGlvbih2YWFkaW5BcHAuZ2V0TXNnKCJM
aWJyYXJ5Rm9ybS5JbXBvcnRWaWV3LnhtbEVycm9yLm1pc3NpbmdFbGVtZW50IiwiZGVwbG95
SWQiKSk7DQoJCX0NCg0KCQlyZWxlYXNlID0gcm9vdEVsZW1lbnQuZ2V0Q2hpbGRUZXh0KCJy
ZWxlYXNlIiwgbnMpOw0KCQlpZiAoRXNmU3RyaW5nLmlzQmxhbmsocmVsZWFzZSkpIHsNCgkJ
CV9sb2dnZXIuZXJyb3IoImxvYWRYbWxGcm9tSmRvbSgpOiByZXF1aXJlZCByZWxlYXNlIGVs
ZW1lbnQgaXMgbWlzc2luZyBpbiBYTUw6ICIgKyBkYXRhWG1sKTsNCgkJCXRocm93IG5ldyBF
c2ZFeGNlcHRpb24odmFhZGluQXBwLmdldE1zZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy54
bWxFcnJvci5taXNzaW5nRWxlbWVudCIsInJlbGVhc2UiKSk7DQoJCX0NCg0KCQl2ZXJzaW9u
TWFqb3IgPSB2YWFkaW5BcHAuZ2V0RXNmYXBwKCkuc3RyaW5nVG9JbnQocm9vdEVsZW1lbnQu
Z2V0Q2hpbGRUZXh0KCJ2ZXJzaW9uTWFqb3IiLCBucyksMCk7DQoJCWlmICh2ZXJzaW9uTWFq
b3IgPCAxKSB7DQoJCQlfbG9nZ2VyLmVycm9yKCJsb2FkWG1sRnJvbUpkb20oKTogcmVxdWly
ZWQgdmVyc2lvbk1ham9yIGVsZW1lbnQgaXMgbWlzc2luZyBpbiBYTUw6ICIgKyBkYXRhWG1s
KTsNCgkJCXRocm93IG5ldyBFc2ZFeGNlcHRpb24odmFhZGluQXBwLmdldE1zZygiTGlicmFy
eUZvcm0uSW1wb3J0Vmlldy54bWxFcnJvci5taXNzaW5nRWxlbWVudCIsInZlcnNpb25NYWpv
ciIpKTsNCgkJfQ0KCQl2ZXJzaW9uTWlub3IgPSB2YWFkaW5BcHAuZ2V0RXNmYXBwKCkuc3Ry
aW5nVG9JbnQocm9vdEVsZW1lbnQuZ2V0Q2hpbGRUZXh0KCJ2ZXJzaW9uTWlub3IiLCBucyks
MCk7DQoJCWlmICh2ZXJzaW9uTWlub3IgPCAxKSB7DQoJCQlfbG9nZ2VyLmVycm9yKCJsb2Fk
WG1sRnJvbUpkb20oKTogcmVxdWlyZWQgdmVyc2lvbk1pbm9yIGVsZW1lbnQgaXMgbWlzc2lu
ZyBpbiBYTUw6ICIgKyBkYXRhWG1sKTsNCgkJCXRocm93IG5ldyBFc2ZFeGNlcHRpb24odmFh
ZGluQXBwLmdldE1zZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy54bWxFcnJvci5taXNzaW5n
RWxlbWVudCIsInZlcnNpb25NaW5vciIpKTsNCgkJfQ0KCQlpZiAoIHZlcnNpb25NYWpvciA+
IFZlcnNpb24uZ2V0TWFqb3IoKSB8fCAodmVyc2lvbk1ham9yID09IFZlcnNpb24uZ2V0TWFq
b3IoKSAmJiB2ZXJzaW9uTWlub3IgPiBWZXJzaW9uLmdldE1pbm9yKCkpICkgew0KCQkJX2xv
Z2dlci5lcnJvcigibG9hZFhtbEZyb21KZG9tKCk6IHZlcnNpb25NYWpvciAiICsgdmVyc2lv
bk1ham9yICsgImFuZCB2ZXJzaW9uTWlub3IgIiArIHZlcnNpb25NaW5vciArICIgaXMgZ3Jl
YXRlciB0aGFuIG91ciBvd24gdmVyc2lvbjogIiArIFZlcnNpb24uZ2V0TWFqb3IoKSArICIu
IiArIFZlcnNpb24uZ2V0TWlub3IoKSArICI7IGluIFhNTDogIiArIGRhdGFYbWwpOw0KCQkJ
dGhyb3cgbmV3IEVzZkV4Y2VwdGlvbih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5J
bXBvcnRWaWV3LnhtbEVycm9yLm1ham9yVmVyc2lvbk1pc21hdGNoIix2ZXJzaW9uTWFqb3Is
dmVyc2lvbk1pbm9yLFZlcnNpb24uZ2V0TWFqb3IoKSxWZXJzaW9uLmdldE1pbm9yKCkpKTsN
CgkJfQ0KDQoJCWxpYnJhcnlQYXRoTmFtZSA9IG5ldyBFc2ZQYXRoTmFtZShyb290RWxlbWVu
dC5nZXRDaGlsZFRleHQoImxpYnJhcnlQYXRoTmFtZSIsIG5zKSk7DQoJCWlmICghIGxpYnJh
cnlQYXRoTmFtZS5pc1ZhbGlkKCkpIHsNCgkJCV9sb2dnZXIuZXJyb3IoImxvYWRYbWxGcm9t
SmRvbSgpOiByZXF1aXJlZCBsaWJyYXJ5UGF0aE5hbWUgZWxlbWVudCBpcyBtaXNzaW5nIGlu
IFhNTDogIiArIGRhdGFYbWwpOw0KCQkJdGhyb3cgbmV3IEVzZkV4Y2VwdGlvbih2YWFkaW5B
cHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3LnhtbEVycm9yLm1pc3NpbmdFbGVt
ZW50IiwibGlicmFyeVBhdGhOYW1lIikpOw0KCQl9DQoJCQ0KCQl0aW1lc3RhbXAgPSAgRXNm
RGF0ZVRpbWUuY3JlYXRlRnJvbVRvWG1sKHJvb3RFbGVtZW50LmdldENoaWxkVGV4dCgidGlt
ZXN0YW1wIiwgbnMpKTsNCgkJaWYgKCB0aW1lc3RhbXAuaXNOdWxsKCkgKSB7DQoJCQlfbG9n
Z2VyLmVycm9yKCJsb2FkWG1sRnJvbUpkb20oKTogcmVxdWlyZWQgdGltZXN0YW1wIGVsZW1l
bnQgaXMgbWlzc2luZyBpbiBYTUw6ICIgKyBkYXRhWG1sKTsNCgkJCXRocm93IG5ldyBFc2ZF
eGNlcHRpb24odmFhZGluQXBwLmdldE1zZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy54bWxF
cnJvci5taXNzaW5nRWxlbWVudCIsInRpbWVzdGFtcCIpKTsNCgkJfQ0KCQkNCgkJYm9vbGVh
biBoYXNTb21ldGhpbmdUb0ltcG9ydCA9IGZhbHNlOw0KCQkNCgkJLy8gSkRPTTogVGhpcyBp
cyB3aGVyZSBJIGdldCBteSBlbGVtZW50IGxpc3RzIGZyb20gdGhlIFhNTC4gKEluIG15IG5l
dyBjb2RlLCBJJ20gYWN0dWFsbHkgcHV0dGluZyB0aGVzZSBpbnRvIG15IG93biBMaW5rZWRM
aXN0PEVsZW1lbnQ+IHRvIGF2b2lkIHRoZSANCgkJLy8gaXNzdWUgSSB3YXMgaGF2aW5nLiBp
LmUuICAgZG9jdW1lbnRFbGVtZW50cyA9IG5ldyBMaW5rZWRMaXN0PEVsZW1lbnQ+KHJvb3RF
bGVtZW50LmdldENoaWxkcmVuKCJEb2N1bWVudCIsIG5zKSk7DQoJCWRvY3VtZW50RWxlbWVu
dHMgPSByb290RWxlbWVudC5nZXRDaGlsZHJlbigiRG9jdW1lbnQiLCBucyk7DQoJCWRvY3Vt
ZW50VmVyc2lvbkVsZW1lbnRzID0gcm9vdEVsZW1lbnQuZ2V0Q2hpbGRyZW4oIkRvY3VtZW50
VmVyc2lvbiIsIG5zKTsNCgkJaWYgKCBkb2N1bWVudEVsZW1lbnRzICE9IG51bGwgfHwgZG9j
dW1lbnRWZXJzaW9uRWxlbWVudHMgIT0gbnVsbCApIHsNCgkJCWludCBjb3VudCA9IGRvY3Vt
ZW50RWxlbWVudHMgPT0gbnVsbCA/IDAgOiBkb2N1bWVudEVsZW1lbnRzLnNpemUoKTsNCgkJ
CWludCBjb3VudFZlcnNpb24gPSBkb2N1bWVudFZlcnNpb25FbGVtZW50cyA9PSBudWxsID8g
MCA6IGRvY3VtZW50VmVyc2lvbkVsZW1lbnRzLnNpemUoKTsNCgkJCWlmICggDQoJCQkJKGRv
Y3VtZW50RWxlbWVudHMgPT0gbnVsbCAmJiBkb2N1bWVudFZlcnNpb25FbGVtZW50cyAhPSBu
dWxsKSAgfHwNCgkJCQkoZG9jdW1lbnRFbGVtZW50cyAhPSBudWxsICYmIGRvY3VtZW50VmVy
c2lvbkVsZW1lbnRzID09IG51bGwpICB8fA0KCQkJCShkb2N1bWVudEVsZW1lbnRzICE9IG51
bGwgJiYgZG9jdW1lbnRWZXJzaW9uRWxlbWVudHMgIT0gbnVsbCAmJiBkb2N1bWVudEVsZW1l
bnRzLnNpemUoKSAhPSBkb2N1bWVudFZlcnNpb25FbGVtZW50cy5zaXplKCkpDQoJCQkgICAp
IHsNCgkJCQlfbG9nZ2VyLmVycm9yKCJsb2FkWG1sRnJvbUpkb20oKTogTWlzbWF0Y2hlZCBu
dW1iZXIgb2YgRG9jdW1lbnQvRG9jdW1lbnRWZXJzaW9uIGVsZW1lbnRzIGluIFhNTDogIiAr
IGRhdGFYbWwpOw0KCQkJCXRocm93IG5ldyBFc2ZFeGNlcHRpb24odmFhZGluQXBwLmdldE1z
ZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy54bWxFcnJvci5vYmplY3RDb3VudHNNaXNtYXRj
aCIsY291bnQsIkRvY3VtZW50Iixjb3VudFZlcnNpb24sIkRvY3VtZW50VmVyc2lvbiIpKTsN
CgkJCX0NCgkJCWhhc1NvbWV0aGluZ1RvSW1wb3J0ID0gaGFzU29tZXRoaW5nVG9JbXBvcnQg
fHwgY291bnQgPiAwOw0KCQl9DQoJCQ0KCQlkb2N1bWVudFN0eWxlRWxlbWVudHMgPSByb290
RWxlbWVudC5nZXRDaGlsZHJlbigiRG9jdW1lbnRTdHlsZSIsIG5zKTsNCgkJZG9jdW1lbnRT
dHlsZVZlcnNpb25FbGVtZW50cyA9IHJvb3RFbGVtZW50LmdldENoaWxkcmVuKCJEb2N1bWVu
dFN0eWxlVmVyc2lvbiIsIG5zKTsNCgkJaWYgKCBkb2N1bWVudFN0eWxlRWxlbWVudHMgIT0g
bnVsbCB8fCBkb2N1bWVudFN0eWxlVmVyc2lvbkVsZW1lbnRzICE9IG51bGwgKSB7DQoJCQlp
bnQgY291bnQgPSBkb2N1bWVudFN0eWxlRWxlbWVudHMgPT0gbnVsbCA/IDAgOiBkb2N1bWVu
dFN0eWxlRWxlbWVudHMuc2l6ZSgpOw0KCQkJaW50IGNvdW50VmVyc2lvbiA9IGRvY3VtZW50
U3R5bGVWZXJzaW9uRWxlbWVudHMgPT0gbnVsbCA/IDAgOiBkb2N1bWVudFN0eWxlVmVyc2lv
bkVsZW1lbnRzLnNpemUoKTsNCgkJCWlmICggDQoJCQkJKGRvY3VtZW50U3R5bGVFbGVtZW50
cyA9PSBudWxsICYmIGRvY3VtZW50U3R5bGVWZXJzaW9uRWxlbWVudHMgIT0gbnVsbCkgIHx8
DQoJCQkJKGRvY3VtZW50U3R5bGVFbGVtZW50cyAhPSBudWxsICYmIGRvY3VtZW50U3R5bGVW
ZXJzaW9uRWxlbWVudHMgPT0gbnVsbCkgIHx8DQoJCQkJKGRvY3VtZW50U3R5bGVFbGVtZW50
cyAhPSBudWxsICYmIGRvY3VtZW50U3R5bGVWZXJzaW9uRWxlbWVudHMgIT0gbnVsbCAmJiBk
b2N1bWVudFN0eWxlRWxlbWVudHMuc2l6ZSgpICE9IGRvY3VtZW50U3R5bGVWZXJzaW9uRWxl
bWVudHMuc2l6ZSgpKQ0KCQkJICAgKSB7DQoJCQkJX2xvZ2dlci5lcnJvcigibG9hZFhtbEZy
b21KZG9tKCk6IE1pc21hdGNoZWQgbnVtYmVyIG9mIERvY3VtZW50U3R5bGUvRG9jdW1lbnRT
dHlsZVZlcnNpb24gZWxlbWVudHMgaW4gWE1MOiAiICsgZGF0YVhtbCk7DQoJCQkJdGhyb3cg
bmV3IEVzZkV4Y2VwdGlvbih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRW
aWV3LnhtbEVycm9yLm9iamVjdENvdW50c01pc21hdGNoIixjb3VudCwiRG9jdW1lbnRTdHls
ZSIsY291bnRWZXJzaW9uLCJEb2N1bWVudFN0eWxlVmVyc2lvbiIpKTsNCgkJCX0NCgkJCWhh
c1NvbWV0aGluZ1RvSW1wb3J0ID0gaGFzU29tZXRoaW5nVG9JbXBvcnQgfHwgY291bnQgPiAw
Ow0KCQl9DQoJCQ0KCQkvLyBKRE9NOiBUaGVzZSBhcmUgdGhlIGVsZW1lbnRzIHRoYXQgd2Vy
ZSBnaXZpbmcgbWUgdGhlIHByb2JsZW0uICBXaGVuIEkgcGFyc2VkIHRoZSBYTUwsIEkgZ290
IDYgZWxlbWVudHMgaW4gZWFjaCBsaXN0IGFzIGV4cGVjdGVkLg0KCQlkcm9wRG93bkVsZW1l
bnRzID0gcm9vdEVsZW1lbnQuZ2V0Q2hpbGRyZW4oIkRyb3BEb3duIiwgbnMpOw0KCQlkcm9w
RG93blZlcnNpb25FbGVtZW50cyA9IHJvb3RFbGVtZW50LmdldENoaWxkcmVuKCJEcm9wRG93
blZlcnNpb24iLCBucyk7DQoJCWlmICggZHJvcERvd25FbGVtZW50cyAhPSBudWxsIHx8IGRy
b3BEb3duVmVyc2lvbkVsZW1lbnRzICE9IG51bGwgKSB7DQoJCQlpbnQgY291bnQgPSBkcm9w
RG93bkVsZW1lbnRzID09IG51bGwgPyAwIDogZHJvcERvd25FbGVtZW50cy5zaXplKCk7DQoJ
CQlpbnQgY291bnRWZXJzaW9uID0gZHJvcERvd25WZXJzaW9uRWxlbWVudHMgPT0gbnVsbCA/
IDAgOiBkcm9wRG93blZlcnNpb25FbGVtZW50cy5zaXplKCk7DQoJCQlpZiAoIA0KCQkJCShk
cm9wRG93bkVsZW1lbnRzID09IG51bGwgJiYgZHJvcERvd25WZXJzaW9uRWxlbWVudHMgIT0g
bnVsbCkgIHx8DQoJCQkJKGRyb3BEb3duRWxlbWVudHMgIT0gbnVsbCAmJiBkcm9wRG93blZl
cnNpb25FbGVtZW50cyA9PSBudWxsKSAgfHwNCgkJCQkoZHJvcERvd25FbGVtZW50cyAhPSBu
dWxsICYmIGRyb3BEb3duVmVyc2lvbkVsZW1lbnRzICE9IG51bGwgJiYgZHJvcERvd25FbGVt
ZW50cy5zaXplKCkgIT0gZHJvcERvd25WZXJzaW9uRWxlbWVudHMuc2l6ZSgpKQ0KCQkJICAg
KSB7DQoJCQkJX2xvZ2dlci5lcnJvcigibG9hZFhtbEZyb21KZG9tKCk6IE1pc21hdGNoZWQg
bnVtYmVyIG9mIERyb3BEb3duL0Ryb3BEb3duVmVyc2lvbiBlbGVtZW50cyBpbiBYTUw6ICIg
KyBkYXRhWG1sKTsNCgkJCQl0aHJvdyBuZXcgRXNmRXhjZXB0aW9uKHZhYWRpbkFwcC5nZXRN
c2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcueG1sRXJyb3Iub2JqZWN0Q291bnRzTWlzbWF0
Y2giLGNvdW50LCJEcm9wRG93biIsY291bnRWZXJzaW9uLCJEcm9wRG93blZlcnNpb24iKSk7
DQoJCQl9DQoJCQloYXNTb21ldGhpbmdUb0ltcG9ydCA9IGhhc1NvbWV0aGluZ1RvSW1wb3J0
IHx8IGNvdW50ID4gMDsNCgkJfQ0KCQkNCgkJZW1haWxFbGVtZW50cyA9IHJvb3RFbGVtZW50
LmdldENoaWxkcmVuKCJFbWFpbFRlbXBsYXRlIiwgbnMpOw0KCQllbWFpbFZlcnNpb25FbGVt
ZW50cyA9IHJvb3RFbGVtZW50LmdldENoaWxkcmVuKCJFbWFpbFRlbXBsYXRlVmVyc2lvbiIs
IG5zKTsNCgkJaWYgKCBlbWFpbEVsZW1lbnRzICE9IG51bGwgfHwgZW1haWxWZXJzaW9uRWxl
bWVudHMgIT0gbnVsbCApIHsNCgkJCWludCBjb3VudCA9IGVtYWlsRWxlbWVudHMgPT0gbnVs
bCA/IDAgOiBlbWFpbEVsZW1lbnRzLnNpemUoKTsNCgkJCWludCBjb3VudFZlcnNpb24gPSBl
bWFpbFZlcnNpb25FbGVtZW50cyA9PSBudWxsID8gMCA6IGVtYWlsVmVyc2lvbkVsZW1lbnRz
LnNpemUoKTsNCgkJCWlmICggDQoJCQkJKGVtYWlsRWxlbWVudHMgPT0gbnVsbCAmJiBlbWFp
bFZlcnNpb25FbGVtZW50cyAhPSBudWxsKSAgfHwNCgkJCQkoZW1haWxFbGVtZW50cyAhPSBu
dWxsICYmIGVtYWlsVmVyc2lvbkVsZW1lbnRzID09IG51bGwpICB8fA0KCQkJCShlbWFpbEVs
ZW1lbnRzICE9IG51bGwgJiYgZW1haWxWZXJzaW9uRWxlbWVudHMgIT0gbnVsbCAmJiBlbWFp
bEVsZW1lbnRzLnNpemUoKSAhPSBlbWFpbFZlcnNpb25FbGVtZW50cy5zaXplKCkpDQoJCQkg
ICApIHsNCgkJCQlfbG9nZ2VyLmVycm9yKCJsb2FkWG1sRnJvbUpkb20oKTogTWlzbWF0Y2hl
ZCBudW1iZXIgb2YgRW1haWxUZW1wbGF0ZS9FbWFpbFRlbXBsYXRlVmVyc2lvbiBlbGVtZW50
cyBpbiBYTUw6ICIgKyBkYXRhWG1sKTsNCgkJCQl0aHJvdyBuZXcgRXNmRXhjZXB0aW9uKHZh
YWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcueG1sRXJyb3Iub2JqZWN0
Q291bnRzTWlzbWF0Y2giLGNvdW50LCJFbWFpbFRlbXBsYXRlIixjb3VudFZlcnNpb24sIkVt
YWlsVGVtcGxhdGVWZXJzaW9uIikpOw0KCQkJfQ0KCQkJaGFzU29tZXRoaW5nVG9JbXBvcnQg
PSBoYXNTb21ldGhpbmdUb0ltcG9ydCB8fCBjb3VudCA+IDA7DQoJCX0NCgkJDQoJCWZpbGVF
bGVtZW50cyA9IHJvb3RFbGVtZW50LmdldENoaWxkcmVuKCJGaWxlIiwgbnMpOw0KCQlmaWxl
VmVyc2lvbkVsZW1lbnRzID0gcm9vdEVsZW1lbnQuZ2V0Q2hpbGRyZW4oIkZpbGVWZXJzaW9u
IiwgbnMpOw0KCQlpZiAoIGZpbGVFbGVtZW50cyAhPSBudWxsIHx8IGZpbGVWZXJzaW9uRWxl
bWVudHMgIT0gbnVsbCApIHsNCgkJCWludCBjb3VudCA9IGZpbGVFbGVtZW50cyA9PSBudWxs
ID8gMCA6IGZpbGVFbGVtZW50cy5zaXplKCk7DQoJCQlpbnQgY291bnRWZXJzaW9uID0gZmls
ZVZlcnNpb25FbGVtZW50cyA9PSBudWxsID8gMCA6IGZpbGVWZXJzaW9uRWxlbWVudHMuc2l6
ZSgpOw0KCQkJaWYgKCANCgkJCQkoZmlsZUVsZW1lbnRzID09IG51bGwgJiYgZmlsZVZlcnNp
b25FbGVtZW50cyAhPSBudWxsKSAgfHwNCgkJCQkoZmlsZUVsZW1lbnRzICE9IG51bGwgJiYg
ZmlsZVZlcnNpb25FbGVtZW50cyA9PSBudWxsKSAgfHwNCgkJCQkoZmlsZUVsZW1lbnRzICE9
IG51bGwgJiYgZmlsZVZlcnNpb25FbGVtZW50cyAhPSBudWxsICYmIGZpbGVFbGVtZW50cy5z
aXplKCkgIT0gZmlsZVZlcnNpb25FbGVtZW50cy5zaXplKCkpDQoJCQkgICApIHsNCgkJCQlf
bG9nZ2VyLmVycm9yKCJsb2FkWG1sRnJvbUpkb20oKTogTWlzbWF0Y2hlZCBudW1iZXIgb2Yg
RmlsZS9GaWxlVmVyc2lvbiBlbGVtZW50cyBpbiBYTUw6ICIgKyBkYXRhWG1sKTsNCgkJCQl0
aHJvdyBuZXcgRXNmRXhjZXB0aW9uKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLklt
cG9ydFZpZXcueG1sRXJyb3Iub2JqZWN0Q291bnRzTWlzbWF0Y2giLGNvdW50LCJGaWxlIixj
b3VudFZlcnNpb24sIkZpbGVWZXJzaW9uIikpOw0KCQkJfQ0KCQkJaGFzU29tZXRoaW5nVG9J
bXBvcnQgPSBoYXNTb21ldGhpbmdUb0ltcG9ydCB8fCBjb3VudCA+IDA7DQoJCX0NCgkJDQoJ
CWltYWdlRWxlbWVudHMgPSByb290RWxlbWVudC5nZXRDaGlsZHJlbigiSW1hZ2UiLCBucyk7
DQoJCWltYWdlVmVyc2lvbkVsZW1lbnRzID0gcm9vdEVsZW1lbnQuZ2V0Q2hpbGRyZW4oIklt
YWdlVmVyc2lvbiIsIG5zKTsNCgkJaWYgKCBpbWFnZUVsZW1lbnRzICE9IG51bGwgfHwgaW1h
Z2VWZXJzaW9uRWxlbWVudHMgIT0gbnVsbCApIHsNCgkJCWludCBjb3VudCA9IGltYWdlRWxl
bWVudHMgPT0gbnVsbCA/IDAgOiBpbWFnZUVsZW1lbnRzLnNpemUoKTsNCgkJCWludCBjb3Vu
dFZlcnNpb24gPSBpbWFnZVZlcnNpb25FbGVtZW50cyA9PSBudWxsID8gMCA6IGltYWdlVmVy
c2lvbkVsZW1lbnRzLnNpemUoKTsNCgkJCWlmICggDQoJCQkJKGltYWdlRWxlbWVudHMgPT0g
bnVsbCAmJiBpbWFnZVZlcnNpb25FbGVtZW50cyAhPSBudWxsKSAgfHwNCgkJCQkoaW1hZ2VF
bGVtZW50cyAhPSBudWxsICYmIGltYWdlVmVyc2lvbkVsZW1lbnRzID09IG51bGwpICB8fA0K
CQkJCShpbWFnZUVsZW1lbnRzICE9IG51bGwgJiYgaW1hZ2VWZXJzaW9uRWxlbWVudHMgIT0g
bnVsbCAmJiBpbWFnZUVsZW1lbnRzLnNpemUoKSAhPSBpbWFnZVZlcnNpb25FbGVtZW50cy5z
aXplKCkpDQoJCQkgICApIHsNCgkJCQlfbG9nZ2VyLmVycm9yKCJsb2FkWG1sRnJvbUpkb20o
KTogTWlzbWF0Y2hlZCBudW1iZXIgb2YgSW1hZ2UvSW1hZ2VWZXJzaW9uIGVsZW1lbnRzIGlu
IFhNTDogIiArIGRhdGFYbWwpOw0KCQkJCXRocm93IG5ldyBFc2ZFeGNlcHRpb24odmFhZGlu
QXBwLmdldE1zZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy54bWxFcnJvci5vYmplY3RDb3Vu
dHNNaXNtYXRjaCIsY291bnQsIkltYWdlIixjb3VudFZlcnNpb24sIkltYWdlVmVyc2lvbiIp
KTsNCgkJCX0NCgkJCWhhc1NvbWV0aGluZ1RvSW1wb3J0ID0gaGFzU29tZXRoaW5nVG9JbXBv
cnQgfHwgY291bnQgPiAwOw0KCQl9DQoJCQ0KCQlwcm9wZXJ0eVNldEVsZW1lbnRzID0gcm9v
dEVsZW1lbnQuZ2V0Q2hpbGRyZW4oIlByb3BlcnR5U2V0IiwgbnMpOw0KCQlwcm9wZXJ0eVNl
dFZlcnNpb25FbGVtZW50cyA9IHJvb3RFbGVtZW50LmdldENoaWxkcmVuKCJQcm9wZXJ0eVNl
dFZlcnNpb24iLCBucyk7DQoJCWlmICggcHJvcGVydHlTZXRFbGVtZW50cyAhPSBudWxsIHx8
IHByb3BlcnR5U2V0VmVyc2lvbkVsZW1lbnRzICE9IG51bGwgKSB7DQoJCQlpbnQgY291bnQg
PSBwcm9wZXJ0eVNldEVsZW1lbnRzID09IG51bGwgPyAwIDogcHJvcGVydHlTZXRFbGVtZW50
cy5zaXplKCk7DQoJCQlpbnQgY291bnRWZXJzaW9uID0gcHJvcGVydHlTZXRWZXJzaW9uRWxl
bWVudHMgPT0gbnVsbCA/IDAgOiBwcm9wZXJ0eVNldFZlcnNpb25FbGVtZW50cy5zaXplKCk7
DQoJCQlpZiAoIA0KCQkJCShwcm9wZXJ0eVNldEVsZW1lbnRzID09IG51bGwgJiYgcHJvcGVy
dHlTZXRWZXJzaW9uRWxlbWVudHMgIT0gbnVsbCkgIHx8DQoJCQkJKHByb3BlcnR5U2V0RWxl
bWVudHMgIT0gbnVsbCAmJiBwcm9wZXJ0eVNldFZlcnNpb25FbGVtZW50cyA9PSBudWxsKSAg
fHwNCgkJCQkocHJvcGVydHlTZXRFbGVtZW50cyAhPSBudWxsICYmIHByb3BlcnR5U2V0VmVy
c2lvbkVsZW1lbnRzICE9IG51bGwgJiYgcHJvcGVydHlTZXRFbGVtZW50cy5zaXplKCkgIT0g
cHJvcGVydHlTZXRWZXJzaW9uRWxlbWVudHMuc2l6ZSgpKQ0KCQkJICAgKSB7DQoJCQkJX2xv
Z2dlci5lcnJvcigibG9hZFhtbEZyb21KZG9tKCk6IE1pc21hdGNoZWQgbnVtYmVyIG9mIFBy
b3BlcnR5U2V0L1Byb3BlcnR5U2V0VmVyc2lvbiBlbGVtZW50cyBpbiBYTUw6ICIgKyBkYXRh
WG1sKTsNCgkJCQl0aHJvdyBuZXcgRXNmRXhjZXB0aW9uKHZhYWRpbkFwcC5nZXRNc2coIkxp
YnJhcnlGb3JtLkltcG9ydFZpZXcueG1sRXJyb3Iub2JqZWN0Q291bnRzTWlzbWF0Y2giLGNv
dW50LCJQcm9wZXJ0eVNldCIsY291bnRWZXJzaW9uLCJQcm9wZXJ0eVNldFZlcnNpb24iKSk7
DQoJCQl9DQoJCQloYXNTb21ldGhpbmdUb0ltcG9ydCA9IGhhc1NvbWV0aGluZ1RvSW1wb3J0
IHx8IGNvdW50ID4gMDsNCgkJfQ0KCQkNCgkJaWYgKCAhIGhhc1NvbWV0aGluZ1RvSW1wb3J0
ICkgew0KCQkJdGhyb3cgbmV3IEVzZkV4Y2VwdGlvbih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJy
YXJ5Rm9ybS5JbXBvcnRWaWV3LnhtbEVycm9yLm5vdGhpbmd0b2RvIikpOw0KCQl9DQoJfQ0K
DQoJdm9pZCBkb0ltcG9ydChFcnJvcnMgZXJyb3JzKSB7DQoJCWJvb2xlYW4gZG9PdmVyd3Jp
dGVUZXN0VmVyc2lvbiA9IG92ZXJ3cml0ZVRlc3RWZXJzaW9uLmJvb2xlYW5WYWx1ZSgpOw0K
CQlpbXBvcnREb2N1bWVudFN0eWxlcyhkb092ZXJ3cml0ZVRlc3RWZXJzaW9uLGVycm9ycyk7
DQoJCWltcG9ydERyb3BEb3ducyhkb092ZXJ3cml0ZVRlc3RWZXJzaW9uLGVycm9ycyk7DQoJ
CWltcG9ydEVtYWlscyhkb092ZXJ3cml0ZVRlc3RWZXJzaW9uLGVycm9ycyk7DQoJCWltcG9y
dEZpbGVzKGRvT3ZlcndyaXRlVGVzdFZlcnNpb24sZXJyb3JzKTsNCgkJaW1wb3J0SW1hZ2Vz
KGRvT3ZlcndyaXRlVGVzdFZlcnNpb24sZXJyb3JzKTsNCgkJaW1wb3J0UHJvcGVydHlTZXRz
KGRvT3ZlcndyaXRlVGVzdFZlcnNpb24sZXJyb3JzKTsNCgkJaW1wb3J0RG9jdW1lbnRzKGRv
T3ZlcndyaXRlVGVzdFZlcnNpb24sZXJyb3JzKTsgLy8gd2UgZG8gdGhpcyBsYXN0IHNpbmNl
IGl0IG1heSByZWZlcmVuY2UgaW1wb3J0ZWQgZG9jdW1lbnQgc3R5bGVzLCBmb3IgZXhhbXBs
ZQ0KCX0NCgkNCgl2b2lkIGltcG9ydERvY3VtZW50cyhib29sZWFuIGRvT3ZlcndyaXRlVGVz
dFZlcnNpb24sRXJyb3JzIGVycm9ycykgew0KCQlpZiAoIGRvY3VtZW50U2VsZWN0ID09IG51
bGwgKSByZXR1cm47DQoJCQ0KICAgICAgICBDb25uZWN0aW9uUG9vbCAgICBwb29sID0gdmFh
ZGluQXBwLmdldEVzZmFwcCgpLmdldENvbm5lY3Rpb25Qb29sKCk7DQogICAgICAgIENvbm5l
Y3Rpb24gICAgICAgIGNvbiAgPSBwb29sLmdldENvbm5lY3Rpb24oKTsNCiAgICAgICAgdHJ5
DQogICAgICAgIHsNCiAgICAJCUBTdXBwcmVzc1dhcm5pbmdzKCJ1bmNoZWNrZWQiKQ0KICAg
IAkJU2V0PEVsZW1lbnQ+IGVsZW1lbnRTZXQgPSAoU2V0PEVsZW1lbnQ+KWRvY3VtZW50U2Vs
ZWN0LmdldFZhbHVlKCk7DQogICAgCQkNCiAgICAJCS8vIEltcG9ydCBlYWNoIG9mIHRoZSBz
ZWxlY3RlZCBvYmplY3RzDQogICAgCQlmb3IoIEVsZW1lbnQgZSA6IGVsZW1lbnRTZXQgKSB7
DQogICAgCQkJRXNmVVVJRCBpZCA9IG5ldyBFc2ZVVUlEKGUuZ2V0Q2hpbGRUZXh0KCJpZCIs
IG5zKSk7DQogICAgCQkJaWYgKCBpZC5pc051bGwoKSApIHsNCiAgICAJCQkJZXJyb3JzLmFk
ZEVycm9yKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuaW1wb3J0
RXJyb3IubWlzc2luZ0VsZW1lbnQiLGUuZ2V0TmFtZSgpLCJpZCIpKTsNCiAgICAJCQkJY29u
dGludWU7DQogICAgCQkJfQ0KICAgIAkJCUVzZk5hbWUgZXNmbmFtZSA9IG5ldyBFc2ZOYW1l
KGUuZ2V0Q2hpbGRUZXh0KCJlc2ZuYW1lIiwgbnMpKTsNCiAgICAJCQlpZiAoICEgZXNmbmFt
ZS5pc1ZhbGlkKCkgKSB7DQogICAgCQkJCWVycm9ycy5hZGRFcnJvcih2YWFkaW5BcHAuZ2V0
TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3LmltcG9ydEVycm9yLm1pc3NpbmdFbGVtZW50
IixlLmdldE5hbWUoKSwiZXNmbmFtZSIpKTsNCiAgICAJCQkJY29udGludWU7DQogICAgCQkJ
fQ0KICAgIAkJCQ0KICAgIAkJCS8vIENoZWNrIGlmIHdlIGtub3cgdGhpcyBvYmplY3QgYWxy
ZWFkeQ0KICAgIAkJCURvY3VtZW50IGRvY3VtZW50ID0gRG9jdW1lbnQuTWFuYWdlci5nZXRC
eU5hbWUobGlicmFyeSwgZXNmbmFtZSk7DQogICAgCQkJDQoJCQkJLy8gRmluZCB0aGUgaW1w
b3J0ZWQgdmVyc2lvbiBvYmplY3QgdGhhdCBnb2VzIHdpdGggdGhpcyBieSBtYXRjaGluZyBv
biB0aGUgZW1iZWRkZWQgaWRzDQoJCQkJRWxlbWVudCBldiA9IG51bGw7DQoJCQkJTGlzdEl0
ZXJhdG9yPEVsZW1lbnQ+IGl0ZXIgPSBkb2N1bWVudFZlcnNpb25FbGVtZW50cy5saXN0SXRl
cmF0b3IoKTsNCgkJCQl3aGlsZSggaXRlci5oYXNOZXh0KCkgKSB7DQoJCQkJCUVsZW1lbnQg
Y2hlY2tFdiA9IGl0ZXIubmV4dCgpOw0KCQkJCQlFc2ZVVUlEIGV2UGFyZW50SWQgPSBuZXcg
RXNmVVVJRChjaGVja0V2LmdldENoaWxkVGV4dCgiZG9jdW1lbnRJZCIsIG5zKSk7DQoJCQkJ
CWlmICggZXZQYXJlbnRJZC5lcXVhbHMoaWQpICkgew0KCQkJCQkJZXYgPSBjaGVja0V2Ow0K
CQkJCQkJYnJlYWs7DQoJCQkJCX0NCgkJCQl9DQoJCQkJaWYgKCBldiA9PSBudWxsICkgew0K
CQkJCQllcnJvcnMuYWRkRXJyb3IodmFhZGluQXBwLmdldE1zZygiTGlicmFyeUZvcm0uSW1w
b3J0Vmlldy5pbXBvcnRFcnJvci5taXNzaW5nVmVyc2lvbkVsZW1lbnQiLGUuZ2V0TmFtZSgp
LGVzZm5hbWUudG9TdHJpbmcoKSkpOw0KCQkJCQljb250aW51ZTsNCgkJCQl9IA0KCQkJCQ0K
CQkJCS8vIElmIHdlIGhhdmUgdGhlIGRyb3AgZG93biBhbHJlYWR5LCBhbmQgaXQgaGFzIGEg
dGVzdCB2ZXJzaW9uIGFscmVhZHksIGJ1dCB3ZSdyZSBub3QgYWxsb3dlZCB0byBvdmVyd3Jp
dGUgaXQsIHdlJ2xsIGhhdmUgdG8gc2tpcCB0aGlzIGltcG9ydA0KCQkJCWlmICggZG9jdW1l
bnQgIT0gbnVsbCAmJiBkb2N1bWVudC5oYXNUZXN0VmVyc2lvbigpICYmICEgZG9PdmVyd3Jp
dGVUZXN0VmVyc2lvbiApIHsNCgkJCQkJZXJyb3JzLmFkZEVycm9yKHZhYWRpbkFwcC5nZXRN
c2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuaW1wb3J0RXJyb3IuaGFzVGVzdFZlcnNpb25C
dXRDYW5ub3RPdmVyd3JpdGUiLGUuZ2V0TmFtZSgpLGVzZm5hbWUudG9TdHJpbmcoKSkpOw0K
CQkJCQljb250aW51ZTsNCgkJCQl9DQoJCQkJDQoJCQkJLy8gSWYgd2UgZG9uJ3Qga25vdyB0
aGlzIGRyb3AgZG93biwgbGV0J3MgY3JlYXRlIG9uZS4NCgkJCQkvLyBPdGhlcndpc2UsIGlm
IHRoZSBleGlzdGluZyBvbmUgaGFzIGEgdGVzdCB2ZXJzaW9uLCBsZXQncyBkZWxldGUgdGhh
dCB0ZXN0IHZlcnNpb24gc2luY2Ugd2UnbGwgYmUgdXNpbmcgb3VyIGltcG9ydGVkIGluc3Rl
YWQuDQoJCQkJaWYgKCBkb2N1bWVudCA9PSBudWxsICkNCgkJCQkJZG9jdW1lbnQgPSBEb2N1
bWVudC5NYW5hZ2VyLmNyZWF0ZUZyb21KRE9NKGxpYnJhcnkuZ2V0SWQoKSwgZSk7DQoJCQkJ
ZWxzZSBpZiAoIGRvY3VtZW50Lmhhc1Rlc3RWZXJzaW9uKCkgKSB7DQoJCQkJCURvY3VtZW50
VmVyc2lvbiBwcmV2VGVzdFZlcnNpb24gPSBkb2N1bWVudC5nZXRUZXN0RG9jdW1lbnRWZXJz
aW9uKCk7DQoJCQkJCXByZXZUZXN0VmVyc2lvbi5kZWxldGUoY29uLCBlcnJvcnMsIHZhYWRp
bkFwcC5nZXRVc2VyKCkpOw0KCQkJCX0NCgkJCQkNCgkJCQlEb2N1bWVudFZlcnNpb24gZG9j
dW1lbnRWZXJzaW9uID0gRG9jdW1lbnRWZXJzaW9uLk1hbmFnZXIuY3JlYXRlRnJvbUpET00o
ZG9jdW1lbnQsIGV2KTsNCgkJCQkNCgkJCQlpZiAoIGRvY3VtZW50LnNhdmUoY29uLCB2YWFk
aW5BcHAuZ2V0VXNlcigpKSAmJiBkb2N1bWVudFZlcnNpb24uc2F2ZShjb24sIHZhYWRpbkFw
cC5nZXRVc2VyKCkpICkNCgkJCQl7DQoJCQkJCWVycm9ycy5hZGRTdWNjZXNzKHZhYWRpbkFw
cC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuaW1wb3J0T2theS5tZXNzYWdlIixl
LmdldE5hbWUoKSxlc2ZuYW1lLnRvU3RyaW5nKCkpKTsNCg0KCQkJCQlkb2N1bWVudEVsZW1l
bnRzLnJlbW92ZShlKTsgLy8gZG9uJ3Qgd2FudCB0byBwcm9jZXNzIHRoaXMgb2JqZWN0IGFn
YWluLg0KCQkJCQlkb2N1bWVudFZlcnNpb25FbGVtZW50cy5yZW1vdmUoZXYpOw0KCQkJCX0g
DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJZXJyb3JzLmFkZEVycm9yKHZhYWRpbkFwcC5nZXRN
c2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuaW1wb3J0RXJyb3Iuc2F2ZUZhaWxlZCIsZS5n
ZXROYW1lKCksZXNmbmFtZS50b1N0cmluZygpKSk7DQoJCQkJfQ0KICAgIAkJfQ0KICAgICAg
ICAgICAgY29uLmNvbW1pdCgpOw0KICAgICAgICB9DQogICAgICAgIGNhdGNoKFNRTEV4Y2Vw
dGlvbiBlKSANCiAgICAgICAgew0KICAgICAgICAJX2xvZ2dlci5zcWxlcnIoZSwiaW1wb3J0
RG9jdW1lbnRzKCkiKTsNCiAgICAgICAgICAgIHBvb2wucm9sbGJhY2tJZ25vcmVFeGNlcHRp
b24oY29uLGUpOw0KICAgICAgICB9DQogICAgICAgIGZpbmFsbHkNCiAgICAgICAgew0KICAg
ICAgICAgICAgdmFhZGluQXBwLmdldEVzZmFwcCgpLmNsZWFudXBQb29sKHBvb2wsY29uLG51
bGwpOw0KICAgICAgICB9DQoJfQ0KCQ0KCXZvaWQgaW1wb3J0RG9jdW1lbnRTdHlsZXMoYm9v
bGVhbiBkb092ZXJ3cml0ZVRlc3RWZXJzaW9uLEVycm9ycyBlcnJvcnMpIHsNCgkJaWYgKCBk
b2N1bWVudFN0eWxlU2VsZWN0ID09IG51bGwgKSByZXR1cm47DQoJCQ0KICAgICAgICBDb25u
ZWN0aW9uUG9vbCAgICBwb29sID0gdmFhZGluQXBwLmdldEVzZmFwcCgpLmdldENvbm5lY3Rp
b25Qb29sKCk7DQogICAgICAgIENvbm5lY3Rpb24gICAgICAgIGNvbiAgPSBwb29sLmdldENv
bm5lY3Rpb24oKTsNCiAgICAgICAgdHJ5DQogICAgICAgIHsNCiAgICAJCUBTdXBwcmVzc1dh
cm5pbmdzKCJ1bmNoZWNrZWQiKQ0KICAgIAkJU2V0PEVsZW1lbnQ+IGVsZW1lbnRTZXQgPSAo
U2V0PEVsZW1lbnQ+KWRvY3VtZW50U3R5bGVTZWxlY3QuZ2V0VmFsdWUoKTsNCiAgICAJCQ0K
ICAgIAkJLy8gSW1wb3J0IGVhY2ggb2YgdGhlIHNlbGVjdGVkIG9iamVjdHMNCiAgICAJCWZv
ciggRWxlbWVudCBlIDogZWxlbWVudFNldCApIHsNCiAgICAJCQlFc2ZVVUlEIGlkID0gbmV3
IEVzZlVVSUQoZS5nZXRDaGlsZFRleHQoImlkIiwgbnMpKTsNCiAgICAJCQlpZiAoIGlkLmlz
TnVsbCgpICkgew0KICAgIAkJCQllcnJvcnMuYWRkRXJyb3IodmFhZGluQXBwLmdldE1zZygi
TGlicmFyeUZvcm0uSW1wb3J0Vmlldy5pbXBvcnRFcnJvci5taXNzaW5nRWxlbWVudCIsZS5n
ZXROYW1lKCksImlkIikpOw0KICAgIAkJCQljb250aW51ZTsNCiAgICAJCQl9DQogICAgCQkJ
RXNmTmFtZSBlc2ZuYW1lID0gbmV3IEVzZk5hbWUoZS5nZXRDaGlsZFRleHQoImVzZm5hbWUi
LCBucykpOw0KICAgIAkJCWlmICggISBlc2ZuYW1lLmlzVmFsaWQoKSApIHsNCiAgICAJCQkJ
ZXJyb3JzLmFkZEVycm9yKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZp
ZXcuaW1wb3J0RXJyb3IubWlzc2luZ0VsZW1lbnQiLGUuZ2V0TmFtZSgpLCJlc2ZuYW1lIikp
Ow0KICAgIAkJCQljb250aW51ZTsNCiAgICAJCQl9DQogICAgCQkJDQogICAgCQkJLy8gQ2hl
Y2sgaWYgd2Uga25vdyB0aGlzIG9iamVjdCBhbHJlYWR5DQogICAgCQkJRG9jdW1lbnRTdHls
ZSBkb2N1bWVudFN0eWxlID0gRG9jdW1lbnRTdHlsZS5NYW5hZ2VyLmdldEJ5TmFtZShsaWJy
YXJ5LCBlc2ZuYW1lKTsNCiAgICAJCQkNCgkJCQkvLyBGaW5kIHRoZSBpbXBvcnRlZCB2ZXJz
aW9uIG9iamVjdCB0aGF0IGdvZXMgd2l0aCB0aGlzIGJ5IG1hdGNoaW5nIG9uIHRoZSBlbWJl
ZGRlZCBpZHMNCgkJCQlFbGVtZW50IGV2ID0gbnVsbDsNCgkJCQlMaXN0SXRlcmF0b3I8RWxl
bWVudD4gaXRlciA9IGRvY3VtZW50U3R5bGVWZXJzaW9uRWxlbWVudHMubGlzdEl0ZXJhdG9y
KCk7DQoJCQkJd2hpbGUoIGl0ZXIuaGFzTmV4dCgpICkgew0KCQkJCQlFbGVtZW50IGNoZWNr
RXYgPSBpdGVyLm5leHQoKTsNCgkJCQkJRXNmVVVJRCBldlBhcmVudElkID0gbmV3IEVzZlVV
SUQoY2hlY2tFdi5nZXRDaGlsZFRleHQoImRvY3VtZW50U3R5bGVJZCIsIG5zKSk7DQoJCQkJ
CWlmICggZXZQYXJlbnRJZC5lcXVhbHMoaWQpICkgew0KCQkJCQkJZXYgPSBjaGVja0V2Ow0K
CQkJCQkJYnJlYWs7DQoJCQkJCX0NCgkJCQl9DQoJCQkJaWYgKCBldiA9PSBudWxsICkgew0K
CQkJCQllcnJvcnMuYWRkRXJyb3IodmFhZGluQXBwLmdldE1zZygiTGlicmFyeUZvcm0uSW1w
b3J0Vmlldy5pbXBvcnRFcnJvci5taXNzaW5nVmVyc2lvbkVsZW1lbnQiLGUuZ2V0TmFtZSgp
LGVzZm5hbWUudG9TdHJpbmcoKSkpOw0KCQkJCQljb250aW51ZTsNCgkJCQl9IA0KCQkJCQ0K
CQkJCS8vIElmIHdlIGhhdmUgdGhlIGRyb3AgZG93biBhbHJlYWR5LCBhbmQgaXQgaGFzIGEg
dGVzdCB2ZXJzaW9uIGFscmVhZHksIGJ1dCB3ZSdyZSBub3QgYWxsb3dlZCB0byBvdmVyd3Jp
dGUgaXQsIHdlJ2xsIGhhdmUgdG8gc2tpcCB0aGlzIGltcG9ydA0KCQkJCWlmICggZG9jdW1l
bnRTdHlsZSAhPSBudWxsICYmIGRvY3VtZW50U3R5bGUuaGFzVGVzdFZlcnNpb24oKSAmJiAh
IGRvT3ZlcndyaXRlVGVzdFZlcnNpb24gKSB7DQoJCQkJCWVycm9ycy5hZGRFcnJvcih2YWFk
aW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3LmltcG9ydEVycm9yLmhhc1Rl
c3RWZXJzaW9uQnV0Q2Fubm90T3ZlcndyaXRlIixlLmdldE5hbWUoKSxlc2ZuYW1lLnRvU3Ry
aW5nKCkpKTsNCgkJCQkJY29udGludWU7DQoJCQkJfQ0KCQkJCQ0KCQkJCS8vIElmIHdlIGRv
bid0IGtub3cgdGhpcyBkcm9wIGRvd24sIGxldCdzIGNyZWF0ZSBvbmUuDQoJCQkJLy8gT3Ro
ZXJ3aXNlLCBpZiB0aGUgZXhpc3Rpbmcgb25lIGhhcyBhIHRlc3QgdmVyc2lvbiwgbGV0J3Mg
ZGVsZXRlIHRoYXQgdGVzdCB2ZXJzaW9uIHNpbmNlIHdlJ2xsIGJlIHVzaW5nIG91ciBpbXBv
cnRlZCBpbnN0ZWFkLg0KCQkJCWlmICggZG9jdW1lbnRTdHlsZSA9PSBudWxsICkNCgkJCQkJ
ZG9jdW1lbnRTdHlsZSA9IERvY3VtZW50U3R5bGUuTWFuYWdlci5jcmVhdGVGcm9tSkRPTShs
aWJyYXJ5LmdldElkKCksIGUpOw0KCQkJCWVsc2UgaWYgKCBkb2N1bWVudFN0eWxlLmhhc1Rl
c3RWZXJzaW9uKCkgKSB7DQoJCQkJCURvY3VtZW50U3R5bGVWZXJzaW9uIHByZXZUZXN0VmVy
c2lvbiA9IGRvY3VtZW50U3R5bGUuZ2V0VGVzdERvY3VtZW50U3R5bGVWZXJzaW9uKCk7DQoJ
CQkJCXByZXZUZXN0VmVyc2lvbi5kZWxldGUoY29uLCBlcnJvcnMsIHZhYWRpbkFwcC5nZXRV
c2VyKCkpOw0KCQkJCX0NCgkJCQkNCgkJCQlEb2N1bWVudFN0eWxlVmVyc2lvbiBkb2N1bWVu
dFN0eWxlVmVyc2lvbiA9IERvY3VtZW50U3R5bGVWZXJzaW9uLk1hbmFnZXIuY3JlYXRlRnJv
bUpET00oZG9jdW1lbnRTdHlsZSwgZXYpOw0KCQkJCQ0KCQkJCWlmICggZG9jdW1lbnRTdHls
ZS5zYXZlKGNvbiwgdmFhZGluQXBwLmdldFVzZXIoKSkgJiYgZG9jdW1lbnRTdHlsZVZlcnNp
b24uc2F2ZShjb24sIHZhYWRpbkFwcC5nZXRVc2VyKCkpICkNCgkJCQl7DQoJCQkJCWVycm9y
cy5hZGRTdWNjZXNzKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcu
aW1wb3J0T2theS5tZXNzYWdlIixlLmdldE5hbWUoKSxlc2ZuYW1lLnRvU3RyaW5nKCkpKTsN
Cg0KCQkJCQlkb2N1bWVudFN0eWxlRWxlbWVudHMucmVtb3ZlKGUpOyAvLyBkb24ndCB3YW50
IHRvIHByb2Nlc3MgdGhpcyBvYmplY3QgYWdhaW4uDQoJCQkJCWRvY3VtZW50U3R5bGVWZXJz
aW9uRWxlbWVudHMucmVtb3ZlKGV2KTsNCgkJCQl9IA0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJ
CWVycm9ycy5hZGRFcnJvcih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRW
aWV3LmltcG9ydEVycm9yLnNhdmVGYWlsZWQiLGUuZ2V0TmFtZSgpLGVzZm5hbWUudG9TdHJp
bmcoKSkpOw0KCQkJCX0NCiAgICAJCX0NCiAgICAgICAgICAgIGNvbi5jb21taXQoKTsNCiAg
ICAgICAgfQ0KICAgICAgICBjYXRjaChTUUxFeGNlcHRpb24gZSkgDQogICAgICAgIHsNCiAg
ICAgICAgCV9sb2dnZXIuc3FsZXJyKGUsImltcG9ydERvY3VtZW50U3R5bGVzKCkiKTsNCiAg
ICAgICAgICAgIHBvb2wucm9sbGJhY2tJZ25vcmVFeGNlcHRpb24oY29uLGUpOw0KICAgICAg
ICB9DQogICAgICAgIGZpbmFsbHkNCiAgICAgICAgew0KICAgICAgICAgICAgdmFhZGluQXBw
LmdldEVzZmFwcCgpLmNsZWFudXBQb29sKHBvb2wsY29uLG51bGwpOw0KICAgICAgICB9DQoJ
fQ0KCQ0KCXZvaWQgaW1wb3J0RHJvcERvd25zKGJvb2xlYW4gZG9PdmVyd3JpdGVUZXN0VmVy
c2lvbixFcnJvcnMgZXJyb3JzKSB7DQoJCWlmICggZHJvcERvd25TZWxlY3QgPT0gbnVsbCAp
IHJldHVybjsNCgkJDQogICAgICAgIENvbm5lY3Rpb25Qb29sICAgIHBvb2wgPSB2YWFkaW5B
cHAuZ2V0RXNmYXBwKCkuZ2V0Q29ubmVjdGlvblBvb2woKTsNCiAgICAgICAgQ29ubmVjdGlv
biAgICAgICAgY29uICA9IHBvb2wuZ2V0Q29ubmVjdGlvbigpOw0KICAgICAgICB0cnkNCiAg
ICAgICAgew0KICAgICAgICAJLy8gSkRPTTogTm90ZSB0aGF0IGluIG15IGNvZGUsIHRoZSBz
ZWxlY3QgYm94IGlzIGZpbGxlZCB3aXRoIGFuIEVsZW1lbnQgYW5kIGl0cyBsYWJlbCAobmFt
ZSkgc28gd2hlbiB0aGUgdXNlciBzZWxlY3RzIGl0LCB3ZSBnZXQgYmFjayB0aGUgb3JpZ2lu
YWwgRWxlbWVudHMuDQogICAgCQlAU3VwcHJlc3NXYXJuaW5ncygidW5jaGVja2VkIikNCiAg
ICAJCVNldDxFbGVtZW50PiBlbGVtZW50U2V0ID0gKFNldDxFbGVtZW50Pilkcm9wRG93blNl
bGVjdC5nZXRWYWx1ZSgpOw0KICAgIAkJDQogICAgCQkvLyBJbXBvcnQgZWFjaCBvZiB0aGUg
c2VsZWN0ZWQgb2JqZWN0cw0KICAgIAkJZm9yKCBFbGVtZW50IGUgOiBlbGVtZW50U2V0ICkg
ew0KICAgIAkJCUVzZlVVSUQgaWQgPSBuZXcgRXNmVVVJRChlLmdldENoaWxkVGV4dCgiaWQi
LCBucykpOw0KICAgIAkJCWlmICggaWQuaXNOdWxsKCkgKSB7DQogICAgCQkJCWVycm9ycy5h
ZGRFcnJvcih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3LmltcG9y
dEVycm9yLm1pc3NpbmdFbGVtZW50IixlLmdldE5hbWUoKSwiaWQiKSk7DQogICAgCQkJCWNv
bnRpbnVlOw0KICAgIAkJCX0NCiAgICAJCQlFc2ZOYW1lIGVzZm5hbWUgPSBuZXcgRXNmTmFt
ZShlLmdldENoaWxkVGV4dCgiZXNmbmFtZSIsIG5zKSk7DQogICAgCQkJaWYgKCAhIGVzZm5h
bWUuaXNWYWxpZCgpICkgew0KICAgIAkJCQllcnJvcnMuYWRkRXJyb3IodmFhZGluQXBwLmdl
dE1zZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy5pbXBvcnRFcnJvci5taXNzaW5nRWxlbWVu
dCIsZS5nZXROYW1lKCksImVzZm5hbWUiKSk7DQogICAgCQkJCWNvbnRpbnVlOw0KICAgIAkJ
CX0NCiAgICAJCQkNCiAgICAJCQkvLyBDaGVjayBpZiB3ZSBrbm93IHRoaXMgb2JqZWN0IGFs
cmVhZHkNCiAgICAJCQlEcm9wRG93biBkcm9wRG93biA9IERyb3BEb3duLk1hbmFnZXIuZ2V0
QnlOYW1lKGxpYnJhcnkuZ2V0SWQoKSwgZXNmbmFtZSk7DQogICAgCQkJDQoJCQkJLy8gRmlu
ZCB0aGUgaW1wb3J0ZWQgdmVyc2lvbiBvYmplY3QgdGhhdCBnb2VzIHdpdGggdGhpcyBieSBt
YXRjaGluZyBvbiB0aGUgZW1iZWRkZWQgaWRzDQoJCQkJRWxlbWVudCBldiA9IG51bGw7DQoJ
CQkJTGlzdEl0ZXJhdG9yPEVsZW1lbnQ+IGl0ZXIgPSBkcm9wRG93blZlcnNpb25FbGVtZW50
cy5saXN0SXRlcmF0b3IoKTsNCgkJCQl3aGlsZSggaXRlci5oYXNOZXh0KCkgKSB7DQoJCQkJ
CUVsZW1lbnQgY2hlY2tFdiA9IGl0ZXIubmV4dCgpOw0KCSAgICAJCQkvLyBKRE9NOiBUaGlz
IGlzIHdoZXJlIHRoZSBidWcgd2FzIGZvdW5kLiBNeSAnY2hlY2tFdicgdmFyaWFibGUgd2Fz
IG51bGwsIGhlbmNlIG15IG51bGwgcG9pbnRlciBleGNlcHRpb24uDQoJCQkJCUVzZlVVSUQg
ZXZQYXJlbnRJZCA9IG5ldyBFc2ZVVUlEKGNoZWNrRXYuZ2V0Q2hpbGRUZXh0KCJkcm9wRG93
bklkIiwgbnMpKTsNCgkJCQkJaWYgKCBldlBhcmVudElkLmVxdWFscyhpZCkgKSB7DQoJCQkJ
CQlldiA9IGNoZWNrRXY7DQoJCQkJCQlicmVhazsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlpZiAo
IGV2ID09IG51bGwgKSB7DQoJCQkJCWVycm9ycy5hZGRFcnJvcih2YWFkaW5BcHAuZ2V0TXNn
KCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3LmltcG9ydEVycm9yLm1pc3NpbmdWZXJzaW9uRWxl
bWVudCIsZS5nZXROYW1lKCksZXNmbmFtZS50b1N0cmluZygpKSk7DQoJCQkJCWNvbnRpbnVl
Ow0KCQkJCX0gDQoJCQkJDQoJCQkJLy8gSWYgd2UgaGF2ZSB0aGUgZHJvcCBkb3duIGFscmVh
ZHksIGFuZCBpdCBoYXMgYSB0ZXN0IHZlcnNpb24gYWxyZWFkeSwgYnV0IHdlJ3JlIG5vdCBh
bGxvd2VkIHRvIG92ZXJ3cml0ZSBpdCwgd2UnbGwgaGF2ZSB0byBza2lwIHRoaXMgaW1wb3J0
DQoJCQkJaWYgKCBkcm9wRG93biAhPSBudWxsICYmIGRyb3BEb3duLmhhc1Rlc3RWZXJzaW9u
KCkgJiYgISBkb092ZXJ3cml0ZVRlc3RWZXJzaW9uICkgew0KCQkJCQllcnJvcnMuYWRkRXJy
b3IodmFhZGluQXBwLmdldE1zZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy5pbXBvcnRFcnJv
ci5oYXNUZXN0VmVyc2lvbkJ1dENhbm5vdE92ZXJ3cml0ZSIsZS5nZXROYW1lKCksZXNmbmFt
ZS50b1N0cmluZygpKSk7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0NCgkJCQkNCgkJCQkvLyBJ
ZiB3ZSBkb24ndCBrbm93IHRoaXMgZHJvcCBkb3duLCBsZXQncyBjcmVhdGUgb25lLg0KCQkJ
CS8vIE90aGVyd2lzZSwgaWYgdGhlIGV4aXN0aW5nIG9uZSBoYXMgYSB0ZXN0IHZlcnNpb24s
IGxldCdzIGRlbGV0ZSB0aGF0IHRlc3QgdmVyc2lvbiBzaW5jZSB3ZSdsbCBiZSB1c2luZyBv
dXIgaW1wb3J0ZWQgaW5zdGVhZC4NCgkJCQlpZiAoIGRyb3BEb3duID09IG51bGwgKQ0KCQkJ
CQlkcm9wRG93biA9IERyb3BEb3duLk1hbmFnZXIuY3JlYXRlRnJvbUpET00obGlicmFyeS5n
ZXRJZCgpLCBlKTsNCgkJCQllbHNlIGlmICggZHJvcERvd24uaGFzVGVzdFZlcnNpb24oKSAp
IHsNCgkJCQkJRHJvcERvd25WZXJzaW9uIHByZXZUZXN0VmVyc2lvbiA9IGRyb3BEb3duLmdl
dFRlc3REcm9wRG93blZlcnNpb24oKTsNCgkJCQkJcHJldlRlc3RWZXJzaW9uLmRlbGV0ZShj
b24sIGVycm9ycywgdmFhZGluQXBwLmdldFVzZXIoKSk7DQoJCQkJfQ0KCQkJCQ0KCQkJCURy
b3BEb3duVmVyc2lvbiBkcm9wRG93blZlcnNpb24gPSBEcm9wRG93blZlcnNpb24uTWFuYWdl
ci5jcmVhdGVGcm9tSkRPTShkcm9wRG93biwgZXYpOw0KCQkJCQ0KCQkJCWlmICggZHJvcERv
d24uc2F2ZShjb24sIHZhYWRpbkFwcC5nZXRVc2VyKCkpICYmIGRyb3BEb3duVmVyc2lvbi5z
YXZlKGNvbiwgdmFhZGluQXBwLmdldFVzZXIoKSkgKQ0KCQkJCXsNCgkJCQkJZXJyb3JzLmFk
ZFN1Y2Nlc3ModmFhZGluQXBwLmdldE1zZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy5pbXBv
cnRPa2F5Lm1lc3NhZ2UiLGUuZ2V0TmFtZSgpLGVzZm5hbWUudG9TdHJpbmcoKSkpOw0KDQoJ
CQkJCS8vIEpET006IEhlcmUgaXMgd2hlcmUgSSBkaXNjb3ZlcmVkIHRoYXQgdGhlIGZpcnN0
IGRyb3BEb3duRWxlbWVudHMucmVtb3ZlKGUpIGNhbGwgc3VjY2VlZGVkLCBhbmQgdGhlIGRy
b3BEb3duRWxlbWVudHMgbGlzdCB3YXMgb25lIHNtYWxsZXIgYXMgZXhwZWN0ZWQgKGkuZSA2
IHRvIDUgZWxlbWVudHMpLA0KCQkJCQkvLyBidXQgdGhlIGRyb3BEb3duVmVyc2lvbkVsZW1l
bnRzIGxpc3Qgd2FzIHN0aWxsIHRoZSBzYW1lIHNpemUgKDYpLCBidXQgdGhlIGxhc3QgZWxl
bWVudCB3YXMgbm93IG51bGwuIA0KCQkJCQkvLyBUaGUgdGhlIHNlY29uZCBkcm9wRG93blZl
cnNpb25FbGVtZW50cy5yZW1vdmUoZXYpIGNhbGwgd291bGQgYWN0dWFsbHkgZmFpbCAobm90
IGZvdW5kKSBhbmQgdGhlIHNpemUgbmV2ZXIgY2hhbmdlZC4gRXZlbnR1YWxseSwgSSBub3Rl
ZCB0aGF0IHRoZSBsaXN0DQoJCQkJCS8vIGhhZCA2IGVsZW1lbnRzLCB3aXRoIHRoZSBsYXN0
IDQgYmVpbmcgbnVsbC4NCgkJCQkJZHJvcERvd25FbGVtZW50cy5yZW1vdmUoZSk7IC8vIGRv
bid0IHdhbnQgdG8gcHJvY2VzcyB0aGlzIG9iamVjdCBhZ2Fpbi4NCgkJCQkJZHJvcERvd25W
ZXJzaW9uRWxlbWVudHMucmVtb3ZlKGV2KTsNCgkJCQl9IA0KCQkJCWVsc2UNCgkJCQl7DQoJ
CQkJCWVycm9ycy5hZGRFcnJvcih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBv
cnRWaWV3LmltcG9ydEVycm9yLnNhdmVGYWlsZWQiLGUuZ2V0TmFtZSgpLGVzZm5hbWUudG9T
dHJpbmcoKSkpOw0KCQkJCX0NCiAgICAJCX0NCiAgICAgICAgICAgIGNvbi5jb21taXQoKTsN
CiAgICAgICAgfQ0KICAgICAgICBjYXRjaChTUUxFeGNlcHRpb24gZSkgDQogICAgICAgIHsN
CiAgICAgICAgCV9sb2dnZXIuc3FsZXJyKGUsImltcG9ydERyb3BEb3ducygpIik7DQogICAg
ICAgICAgICBwb29sLnJvbGxiYWNrSWdub3JlRXhjZXB0aW9uKGNvbixlKTsNCiAgICAgICAg
fQ0KICAgICAgICBmaW5hbGx5DQogICAgICAgIHsNCiAgICAgICAgICAgIHZhYWRpbkFwcC5n
ZXRFc2ZhcHAoKS5jbGVhbnVwUG9vbChwb29sLGNvbixudWxsKTsNCiAgICAgICAgfQ0KCX0N
CgkNCgl2b2lkIGltcG9ydEVtYWlscyhib29sZWFuIGRvT3ZlcndyaXRlVGVzdFZlcnNpb24s
RXJyb3JzIGVycm9ycykgew0KCQlpZiAoIGVtYWlsU2VsZWN0ID09IG51bGwgKSByZXR1cm47
DQoJCQ0KICAgICAgICBDb25uZWN0aW9uUG9vbCAgICBwb29sID0gdmFhZGluQXBwLmdldEVz
ZmFwcCgpLmdldENvbm5lY3Rpb25Qb29sKCk7DQogICAgICAgIENvbm5lY3Rpb24gICAgICAg
IGNvbiAgPSBwb29sLmdldENvbm5lY3Rpb24oKTsNCiAgICAgICAgdHJ5DQogICAgICAgIHsN
CiAgICAJCUBTdXBwcmVzc1dhcm5pbmdzKCJ1bmNoZWNrZWQiKQ0KICAgIAkJU2V0PEVsZW1l
bnQ+IGVsZW1lbnRTZXQgPSAoU2V0PEVsZW1lbnQ+KWVtYWlsU2VsZWN0LmdldFZhbHVlKCk7
DQogICAgCQkNCiAgICAJCS8vIEltcG9ydCBlYWNoIG9mIHRoZSBzZWxlY3RlZCBvYmplY3Rz
DQogICAgCQlmb3IoIEVsZW1lbnQgZSA6IGVsZW1lbnRTZXQgKSB7DQogICAgCQkJRXNmVVVJ
RCBpZCA9IG5ldyBFc2ZVVUlEKGUuZ2V0Q2hpbGRUZXh0KCJpZCIsIG5zKSk7DQogICAgCQkJ
aWYgKCBpZC5pc051bGwoKSApIHsNCiAgICAJCQkJZXJyb3JzLmFkZEVycm9yKHZhYWRpbkFw
cC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuaW1wb3J0RXJyb3IubWlzc2luZ0Vs
ZW1lbnQiLGUuZ2V0TmFtZSgpLCJpZCIpKTsNCiAgICAJCQkJY29udGludWU7DQogICAgCQkJ
fQ0KICAgIAkJCUVzZk5hbWUgZXNmbmFtZSA9IG5ldyBFc2ZOYW1lKGUuZ2V0Q2hpbGRUZXh0
KCJlc2ZuYW1lIiwgbnMpKTsNCiAgICAJCQlpZiAoICEgZXNmbmFtZS5pc1ZhbGlkKCkgKSB7
DQogICAgCQkJCWVycm9ycy5hZGRFcnJvcih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9y
bS5JbXBvcnRWaWV3LmltcG9ydEVycm9yLm1pc3NpbmdFbGVtZW50IixlLmdldE5hbWUoKSwi
ZXNmbmFtZSIpKTsNCiAgICAJCQkJY29udGludWU7DQogICAgCQkJfQ0KICAgIAkJCQ0KICAg
IAkJCS8vIENoZWNrIGlmIHdlIGtub3cgdGhpcyBvYmplY3QgYWxyZWFkeQ0KICAgIAkJCUVt
YWlsVGVtcGxhdGUgZW1haWwgPSBFbWFpbFRlbXBsYXRlLk1hbmFnZXIuZ2V0QnlOYW1lKGxp
YnJhcnkuZ2V0SWQoKSwgZXNmbmFtZSk7DQogICAgCQkJDQoJCQkJLy8gRmluZCB0aGUgaW1w
b3J0ZWQgdmVyc2lvbiBvYmplY3QgdGhhdCBnb2VzIHdpdGggdGhpcyBieSBtYXRjaGluZyBv
biB0aGUgZW1iZWRkZWQgaWRzDQoJCQkJRWxlbWVudCBldiA9IG51bGw7DQoJCQkJTGlzdEl0
ZXJhdG9yPEVsZW1lbnQ+IGl0ZXIgPSBlbWFpbFZlcnNpb25FbGVtZW50cy5saXN0SXRlcmF0
b3IoKTsNCgkJCQl3aGlsZSggaXRlci5oYXNOZXh0KCkgKSB7DQoJCQkJCUVsZW1lbnQgY2hl
Y2tFdiA9IGl0ZXIubmV4dCgpOw0KCQkJCQlFc2ZVVUlEIGV2UGFyZW50SWQgPSBuZXcgRXNm
VVVJRChjaGVja0V2LmdldENoaWxkVGV4dCgiZW1haWxUZW1wbGF0ZUlkIiwgbnMpKTsNCgkJ
CQkJaWYgKCBldlBhcmVudElkLmVxdWFscyhpZCkgKSB7DQoJCQkJCQlldiA9IGNoZWNrRXY7
DQoJCQkJCQlicmVhazsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlpZiAoIGV2ID09IG51bGwgKSB7
DQoJCQkJCWVycm9ycy5hZGRFcnJvcih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5J
bXBvcnRWaWV3LmltcG9ydEVycm9yLm1pc3NpbmdWZXJzaW9uRWxlbWVudCIsZS5nZXROYW1l
KCksZXNmbmFtZS50b1N0cmluZygpKSk7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0gDQoJCQkJ
DQoJCQkJLy8gSWYgd2UgaGF2ZSB0aGUgZHJvcCBkb3duIGFscmVhZHksIGFuZCBpdCBoYXMg
YSB0ZXN0IHZlcnNpb24gYWxyZWFkeSwgYnV0IHdlJ3JlIG5vdCBhbGxvd2VkIHRvIG92ZXJ3
cml0ZSBpdCwgd2UnbGwgaGF2ZSB0byBza2lwIHRoaXMgaW1wb3J0DQoJCQkJaWYgKCBlbWFp
bCAhPSBudWxsICYmIGVtYWlsLmhhc1Rlc3RWZXJzaW9uKCkgJiYgISBkb092ZXJ3cml0ZVRl
c3RWZXJzaW9uICkgew0KCQkJCQllcnJvcnMuYWRkRXJyb3IodmFhZGluQXBwLmdldE1zZygi
TGlicmFyeUZvcm0uSW1wb3J0Vmlldy5pbXBvcnRFcnJvci5oYXNUZXN0VmVyc2lvbkJ1dENh
bm5vdE92ZXJ3cml0ZSIsZS5nZXROYW1lKCksZXNmbmFtZS50b1N0cmluZygpKSk7DQoJCQkJ
CWNvbnRpbnVlOw0KCQkJCX0NCgkJCQkNCgkJCQkvLyBJZiB3ZSBkb24ndCBrbm93IHRoaXMg
ZHJvcCBkb3duLCBsZXQncyBjcmVhdGUgb25lLg0KCQkJCS8vIE90aGVyd2lzZSwgaWYgdGhl
IGV4aXN0aW5nIG9uZSBoYXMgYSB0ZXN0IHZlcnNpb24sIGxldCdzIGRlbGV0ZSB0aGF0IHRl
c3QgdmVyc2lvbiBzaW5jZSB3ZSdsbCBiZSB1c2luZyBvdXIgaW1wb3J0ZWQgaW5zdGVhZC4N
CgkJCQlpZiAoIGVtYWlsID09IG51bGwgKQ0KCQkJCQllbWFpbCA9IEVtYWlsVGVtcGxhdGUu
TWFuYWdlci5jcmVhdGVGcm9tSkRPTShsaWJyYXJ5LmdldElkKCksIGUpOw0KCQkJCWVsc2Ug
aWYgKCBlbWFpbC5oYXNUZXN0VmVyc2lvbigpICkgew0KCQkJCQlFbWFpbFRlbXBsYXRlVmVy
c2lvbiBwcmV2VGVzdFZlcnNpb24gPSBlbWFpbC5nZXRUZXN0RW1haWxUZW1wbGF0ZVZlcnNp
b24oKTsNCgkJCQkJcHJldlRlc3RWZXJzaW9uLmRlbGV0ZShjb24sIGVycm9ycywgdmFhZGlu
QXBwLmdldFVzZXIoKSk7DQoJCQkJfQ0KCQkJCQ0KCQkJCUVtYWlsVGVtcGxhdGVWZXJzaW9u
IGVtYWlsVmVyc2lvbiA9IEVtYWlsVGVtcGxhdGVWZXJzaW9uLk1hbmFnZXIuY3JlYXRlRnJv
bUpET00oZW1haWwsIGV2KTsNCgkJCQkNCgkJCQlpZiAoIGVtYWlsLnNhdmUoY29uLCB2YWFk
aW5BcHAuZ2V0VXNlcigpKSAmJiBlbWFpbFZlcnNpb24uc2F2ZShjb24sIHZhYWRpbkFwcC5n
ZXRVc2VyKCkpICkNCgkJCQl7DQoJCQkJCWVycm9ycy5hZGRTdWNjZXNzKHZhYWRpbkFwcC5n
ZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuaW1wb3J0T2theS5tZXNzYWdlIixlLmdl
dE5hbWUoKSxlc2ZuYW1lLnRvU3RyaW5nKCkpKTsNCg0KCQkJCQllbWFpbEVsZW1lbnRzLnJl
bW92ZShlKTsgLy8gZG9uJ3Qgd2FudCB0byBwcm9jZXNzIHRoaXMgb2JqZWN0IGFnYWluLg0K
CQkJCQllbWFpbFZlcnNpb25FbGVtZW50cy5yZW1vdmUoZXYpOw0KCQkJCX0gDQoJCQkJZWxz
ZQ0KCQkJCXsNCgkJCQkJZXJyb3JzLmFkZEVycm9yKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJh
cnlGb3JtLkltcG9ydFZpZXcuaW1wb3J0RXJyb3Iuc2F2ZUZhaWxlZCIsZS5nZXROYW1lKCks
ZXNmbmFtZS50b1N0cmluZygpKSk7DQoJCQkJfQ0KICAgIAkJfQ0KICAgICAgICAgICAgY29u
LmNvbW1pdCgpOw0KICAgICAgICB9DQogICAgICAgIGNhdGNoKFNRTEV4Y2VwdGlvbiBlKSAN
CiAgICAgICAgew0KICAgICAgICAJX2xvZ2dlci5zcWxlcnIoZSwiaW1wb3J0RW1haWxzKCki
KTsNCiAgICAgICAgICAgIHBvb2wucm9sbGJhY2tJZ25vcmVFeGNlcHRpb24oY29uLGUpOw0K
ICAgICAgICB9DQogICAgICAgIGZpbmFsbHkNCiAgICAgICAgew0KICAgICAgICAgICAgdmFh
ZGluQXBwLmdldEVzZmFwcCgpLmNsZWFudXBQb29sKHBvb2wsY29uLG51bGwpOw0KICAgICAg
ICB9DQoJfQ0KCQ0KCXZvaWQgaW1wb3J0RmlsZXMoYm9vbGVhbiBkb092ZXJ3cml0ZVRlc3RW
ZXJzaW9uLEVycm9ycyBlcnJvcnMpIHsNCgkJaWYgKCBmaWxlU2VsZWN0ID09IG51bGwgKSBy
ZXR1cm47DQoJCQ0KICAgICAgICBDb25uZWN0aW9uUG9vbCAgICBwb29sID0gdmFhZGluQXBw
LmdldEVzZmFwcCgpLmdldENvbm5lY3Rpb25Qb29sKCk7DQogICAgICAgIENvbm5lY3Rpb24g
ICAgICAgIGNvbiAgPSBwb29sLmdldENvbm5lY3Rpb24oKTsNCiAgICAgICAgdHJ5DQogICAg
ICAgIHsNCiAgICAJCUBTdXBwcmVzc1dhcm5pbmdzKCJ1bmNoZWNrZWQiKQ0KICAgIAkJU2V0
PEVsZW1lbnQ+IGVsZW1lbnRTZXQgPSAoU2V0PEVsZW1lbnQ+KWZpbGVTZWxlY3QuZ2V0VmFs
dWUoKTsNCiAgICAJCQ0KICAgIAkJLy8gSW1wb3J0IGVhY2ggb2YgdGhlIHNlbGVjdGVkIG9i
amVjdHMNCiAgICAJCWZvciggRWxlbWVudCBlIDogZWxlbWVudFNldCApIHsNCiAgICAJCQlF
c2ZVVUlEIGlkID0gbmV3IEVzZlVVSUQoZS5nZXRDaGlsZFRleHQoImlkIiwgbnMpKTsNCiAg
ICAJCQlpZiAoIGlkLmlzTnVsbCgpICkgew0KICAgIAkJCQllcnJvcnMuYWRkRXJyb3IodmFh
ZGluQXBwLmdldE1zZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy5pbXBvcnRFcnJvci5taXNz
aW5nRWxlbWVudCIsZS5nZXROYW1lKCksImlkIikpOw0KICAgIAkJCQljb250aW51ZTsNCiAg
ICAJCQl9DQogICAgCQkJRXNmTmFtZSBlc2ZuYW1lID0gbmV3IEVzZk5hbWUoZS5nZXRDaGls
ZFRleHQoImVzZm5hbWUiLCBucykpOw0KICAgIAkJCWlmICggISBlc2ZuYW1lLmlzVmFsaWQo
KSApIHsNCiAgICAJCQkJZXJyb3JzLmFkZEVycm9yKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJh
cnlGb3JtLkltcG9ydFZpZXcuaW1wb3J0RXJyb3IubWlzc2luZ0VsZW1lbnQiLGUuZ2V0TmFt
ZSgpLCJlc2ZuYW1lIikpOw0KICAgIAkJCQljb250aW51ZTsNCiAgICAJCQl9DQogICAgCQkJ
DQogICAgCQkJLy8gQ2hlY2sgaWYgd2Uga25vdyB0aGlzIG9iamVjdCBhbHJlYWR5DQogICAg
CQkJRmlsZSBmaWxlID0gRmlsZS5NYW5hZ2VyLmdldEJ5TmFtZShsaWJyYXJ5LmdldElkKCks
IGVzZm5hbWUpOw0KICAgIAkJCQ0KCQkJCS8vIEZpbmQgdGhlIGltcG9ydGVkIHZlcnNpb24g
b2JqZWN0IHRoYXQgZ29lcyB3aXRoIHRoaXMgYnkgbWF0Y2hpbmcgb24gdGhlIGVtYmVkZGVk
IGlkcw0KCQkJCUVsZW1lbnQgZXYgPSBudWxsOw0KCQkJCUxpc3RJdGVyYXRvcjxFbGVtZW50
PiBpdGVyID0gZmlsZVZlcnNpb25FbGVtZW50cy5saXN0SXRlcmF0b3IoKTsNCgkJCQl3aGls
ZSggaXRlci5oYXNOZXh0KCkgKSB7DQoJCQkJCUVsZW1lbnQgY2hlY2tFdiA9IGl0ZXIubmV4
dCgpOw0KCQkJCQlFc2ZVVUlEIGV2UGFyZW50SWQgPSBuZXcgRXNmVVVJRChjaGVja0V2Lmdl
dENoaWxkVGV4dCgiZmlsZUlkIiwgbnMpKTsNCgkJCQkJaWYgKCBldlBhcmVudElkLmVxdWFs
cyhpZCkgKSB7DQoJCQkJCQlldiA9IGNoZWNrRXY7DQoJCQkJCQlicmVhazsNCgkJCQkJfQ0K
CQkJCX0NCgkJCQlpZiAoIGV2ID09IG51bGwgKSB7DQoJCQkJCWVycm9ycy5hZGRFcnJvcih2
YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3LmltcG9ydEVycm9yLm1p
c3NpbmdWZXJzaW9uRWxlbWVudCIsZS5nZXROYW1lKCksZXNmbmFtZS50b1N0cmluZygpKSk7
DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0gDQoJCQkJDQoJCQkJLy8gSWYgd2UgaGF2ZSB0aGUg
b2JqZWN0IGFscmVhZHksIGFuZCBpdCBoYXMgYSB0ZXN0IHZlcnNpb24gYWxyZWFkeSwgYnV0
IHdlJ3JlIG5vdCBhbGxvd2VkIHRvIG92ZXJ3cml0ZSBpdCwgd2UnbGwgaGF2ZSB0byBza2lw
IHRoaXMgaW1wb3J0DQoJCQkJaWYgKCBmaWxlICE9IG51bGwgJiYgZmlsZS5oYXNUZXN0VmVy
c2lvbigpICYmICEgZG9PdmVyd3JpdGVUZXN0VmVyc2lvbiApIHsNCgkJCQkJZXJyb3JzLmFk
ZEVycm9yKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuaW1wb3J0
RXJyb3IuaGFzVGVzdFZlcnNpb25CdXRDYW5ub3RPdmVyd3JpdGUiLGUuZ2V0TmFtZSgpLGVz
Zm5hbWUudG9TdHJpbmcoKSkpOw0KCQkJCQljb250aW51ZTsNCgkJCQl9DQoJCQkJDQoJCQkJ
Ly8gSWYgd2UgZG9uJ3Qga25vdyB0aGlzIG9iamVjdCwgbGV0J3MgY3JlYXRlIG9uZS4NCgkJ
CQkvLyBPdGhlcndpc2UsIGlmIHRoZSBleGlzdGluZyBvbmUgaGFzIGEgdGVzdCB2ZXJzaW9u
LCBsZXQncyBkZWxldGUgdGhhdCB0ZXN0IHZlcnNpb24gc2luY2Ugd2UnbGwgYmUgdXNpbmcg
b3VyIGltcG9ydGVkIGluc3RlYWQuDQoJCQkJaWYgKCBmaWxlID09IG51bGwgKQ0KCQkJCQlm
aWxlID0gRmlsZS5NYW5hZ2VyLmNyZWF0ZUZyb21KRE9NKGxpYnJhcnkuZ2V0SWQoKSwgZSk7
DQoJCQkJZWxzZSBpZiAoIGZpbGUuaGFzVGVzdFZlcnNpb24oKSApIHsNCgkJCQkJRmlsZVZl
cnNpb24gcHJldlRlc3RWZXJzaW9uID0gZmlsZS5nZXRUZXN0RmlsZVZlcnNpb24oKTsNCgkJ
CQkJcHJldlRlc3RWZXJzaW9uLmRlbGV0ZShjb24sIGVycm9ycywgdmFhZGluQXBwLmdldFVz
ZXIoKSk7DQoJCQkJfQ0KCQkJCQ0KCQkJCUZpbGVWZXJzaW9uIGZpbGVWZXJzaW9uID0gRmls
ZVZlcnNpb24uTWFuYWdlci5jcmVhdGVGcm9tSkRPTShmaWxlLCBldik7DQoJCQkJDQoJCQkJ
aWYgKCBmaWxlLnNhdmUoY29uLCB2YWFkaW5BcHAuZ2V0VXNlcigpKSAmJiBmaWxlVmVyc2lv
bi5zYXZlKGNvbiwgdmFhZGluQXBwLmdldFVzZXIoKSkgKQ0KCQkJCXsNCgkJCQkJZXJyb3Jz
LmFkZFN1Y2Nlc3ModmFhZGluQXBwLmdldE1zZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy5p
bXBvcnRPa2F5Lm1lc3NhZ2UiLGUuZ2V0TmFtZSgpLGVzZm5hbWUudG9TdHJpbmcoKSkpOw0K
DQoJCQkJCWZpbGVFbGVtZW50cy5yZW1vdmUoZSk7IC8vIGRvbid0IHdhbnQgdG8gcHJvY2Vz
cyB0aGlzIG9iamVjdCBhZ2Fpbi4NCgkJCQkJZmlsZVZlcnNpb25FbGVtZW50cy5yZW1vdmUo
ZXYpOw0KCQkJCX0gDQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJZXJyb3JzLmFkZEVycm9yKHZh
YWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuaW1wb3J0RXJyb3Iuc2F2
ZUZhaWxlZCIsZS5nZXROYW1lKCksZXNmbmFtZS50b1N0cmluZygpKSk7DQoJCQkJfQ0KICAg
IAkJfQ0KICAgICAgICAgICAgY29uLmNvbW1pdCgpOw0KICAgICAgICB9DQogICAgICAgIGNh
dGNoKFNRTEV4Y2VwdGlvbiBlKSANCiAgICAgICAgew0KICAgICAgICAJX2xvZ2dlci5zcWxl
cnIoZSwiaW1wb3J0RmlsZXMoKSIpOw0KICAgICAgICAgICAgcG9vbC5yb2xsYmFja0lnbm9y
ZUV4Y2VwdGlvbihjb24sZSk7DQogICAgICAgIH0NCiAgICAgICAgZmluYWxseQ0KICAgICAg
ICB7DQogICAgICAgICAgICB2YWFkaW5BcHAuZ2V0RXNmYXBwKCkuY2xlYW51cFBvb2wocG9v
bCxjb24sbnVsbCk7DQogICAgICAgIH0NCgl9DQoJDQoJDQoJdm9pZCBpbXBvcnRJbWFnZXMo
Ym9vbGVhbiBkb092ZXJ3cml0ZVRlc3RWZXJzaW9uLEVycm9ycyBlcnJvcnMpIHsNCgkJaWYg
KCBpbWFnZVNlbGVjdCA9PSBudWxsICkgcmV0dXJuOw0KCQkNCiAgICAgICAgQ29ubmVjdGlv
blBvb2wgICAgcG9vbCA9IHZhYWRpbkFwcC5nZXRFc2ZhcHAoKS5nZXRDb25uZWN0aW9uUG9v
bCgpOw0KICAgICAgICBDb25uZWN0aW9uICAgICAgICBjb24gID0gcG9vbC5nZXRDb25uZWN0
aW9uKCk7DQogICAgICAgIHRyeQ0KICAgICAgICB7DQogICAgCQlAU3VwcHJlc3NXYXJuaW5n
cygidW5jaGVja2VkIikNCiAgICAJCVNldDxFbGVtZW50PiBlbGVtZW50U2V0ID0gKFNldDxF
bGVtZW50PilpbWFnZVNlbGVjdC5nZXRWYWx1ZSgpOw0KICAgIAkJDQogICAgCQkvLyBJbXBv
cnQgZWFjaCBvZiB0aGUgc2VsZWN0ZWQgb2JqZWN0cw0KICAgIAkJZm9yKCBFbGVtZW50IGUg
OiBlbGVtZW50U2V0ICkgew0KICAgIAkJCUVzZlVVSUQgaWQgPSBuZXcgRXNmVVVJRChlLmdl
dENoaWxkVGV4dCgiaWQiLCBucykpOw0KICAgIAkJCWlmICggaWQuaXNOdWxsKCkgKSB7DQog
ICAgCQkJCWVycm9ycy5hZGRFcnJvcih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJyYXJ5Rm9ybS5J
bXBvcnRWaWV3LmltcG9ydEVycm9yLm1pc3NpbmdFbGVtZW50IixlLmdldE5hbWUoKSwiaWQi
KSk7DQogICAgCQkJCWNvbnRpbnVlOw0KICAgIAkJCX0NCiAgICAJCQlFc2ZOYW1lIGVzZm5h
bWUgPSBuZXcgRXNmTmFtZShlLmdldENoaWxkVGV4dCgiZXNmbmFtZSIsIG5zKSk7DQogICAg
CQkJaWYgKCAhIGVzZm5hbWUuaXNWYWxpZCgpICkgew0KICAgIAkJCQllcnJvcnMuYWRkRXJy
b3IodmFhZGluQXBwLmdldE1zZygiTGlicmFyeUZvcm0uSW1wb3J0Vmlldy5pbXBvcnRFcnJv
ci5taXNzaW5nRWxlbWVudCIsZS5nZXROYW1lKCksImVzZm5hbWUiKSk7DQogICAgCQkJCWNv
bnRpbnVlOw0KICAgIAkJCX0NCiAgICAJCQkNCiAgICAJCQkvLyBDaGVjayBpZiB3ZSBrbm93
IHRoaXMgb2JqZWN0IGFscmVhZHkNCiAgICAJCQlJbWFnZSBpbWFnZSA9IEltYWdlLk1hbmFn
ZXIuZ2V0QnlOYW1lKGxpYnJhcnkuZ2V0SWQoKSwgZXNmbmFtZSk7DQogICAgCQkJDQoJCQkJ
Ly8gRmluZCB0aGUgaW1wb3J0ZWQgdmVyc2lvbiBvYmplY3QgdGhhdCBnb2VzIHdpdGggdGhp
cyBieSBtYXRjaGluZyBvbiB0aGUgZW1iZWRkZWQgaWRzDQoJCQkJRWxlbWVudCBldiA9IG51
bGw7DQoJCQkJTGlzdEl0ZXJhdG9yPEVsZW1lbnQ+IGl0ZXIgPSBpbWFnZVZlcnNpb25FbGVt
ZW50cy5saXN0SXRlcmF0b3IoKTsNCgkJCQl3aGlsZSggaXRlci5oYXNOZXh0KCkgKSB7DQoJ
CQkJCUVsZW1lbnQgY2hlY2tFdiA9IGl0ZXIubmV4dCgpOw0KCQkJCQlFc2ZVVUlEIGV2UGFy
ZW50SWQgPSBuZXcgRXNmVVVJRChjaGVja0V2LmdldENoaWxkVGV4dCgiaW1hZ2VJZCIsIG5z
KSk7DQoJCQkJCWlmICggZXZQYXJlbnRJZC5lcXVhbHMoaWQpICkgew0KCQkJCQkJZXYgPSBj
aGVja0V2Ow0KCQkJCQkJYnJlYWs7DQoJCQkJCX0NCgkJCQl9DQoJCQkJaWYgKCBldiA9PSBu
dWxsICkgew0KCQkJCQllcnJvcnMuYWRkRXJyb3IodmFhZGluQXBwLmdldE1zZygiTGlicmFy
eUZvcm0uSW1wb3J0Vmlldy5pbXBvcnRFcnJvci5taXNzaW5nVmVyc2lvbkVsZW1lbnQiLGUu
Z2V0TmFtZSgpLGVzZm5hbWUudG9TdHJpbmcoKSkpOw0KCQkJCQljb250aW51ZTsNCgkJCQl9
IA0KCQkJCQ0KCQkJCS8vIElmIHdlIGhhdmUgdGhlIG9iamVjdCBhbHJlYWR5LCBhbmQgaXQg
aGFzIGEgdGVzdCB2ZXJzaW9uIGFscmVhZHksIGJ1dCB3ZSdyZSBub3QgYWxsb3dlZCB0byBv
dmVyd3JpdGUgaXQsIHdlJ2xsIGhhdmUgdG8gc2tpcCB0aGlzIGltcG9ydA0KCQkJCWlmICgg
aW1hZ2UgIT0gbnVsbCAmJiBpbWFnZS5oYXNUZXN0VmVyc2lvbigpICYmICEgZG9PdmVyd3Jp
dGVUZXN0VmVyc2lvbiApIHsNCgkJCQkJZXJyb3JzLmFkZEVycm9yKHZhYWRpbkFwcC5nZXRN
c2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuaW1wb3J0RXJyb3IuaGFzVGVzdFZlcnNpb25C
dXRDYW5ub3RPdmVyd3JpdGUiLGUuZ2V0TmFtZSgpLGVzZm5hbWUudG9TdHJpbmcoKSkpOw0K
CQkJCQljb250aW51ZTsNCgkJCQl9DQoJCQkJDQoJCQkJLy8gSWYgd2UgZG9uJ3Qga25vdyB0
aGlzIG9iamVjdCwgbGV0J3MgY3JlYXRlIG9uZS4NCgkJCQkvLyBPdGhlcndpc2UsIGlmIHRo
ZSBleGlzdGluZyBvbmUgaGFzIGEgdGVzdCB2ZXJzaW9uLCBsZXQncyBkZWxldGUgdGhhdCB0
ZXN0IHZlcnNpb24gc2luY2Ugd2UnbGwgYmUgdXNpbmcgb3VyIGltcG9ydGVkIGluc3RlYWQu
DQoJCQkJaWYgKCBpbWFnZSA9PSBudWxsICkNCgkJCQkJaW1hZ2UgPSBJbWFnZS5NYW5hZ2Vy
LmNyZWF0ZUZyb21KRE9NKGxpYnJhcnkuZ2V0SWQoKSwgZSk7DQoJCQkJZWxzZSBpZiAoIGlt
YWdlLmhhc1Rlc3RWZXJzaW9uKCkgKSB7DQoJCQkJCUltYWdlVmVyc2lvbiBwcmV2VGVzdFZl
cnNpb24gPSBpbWFnZS5nZXRUZXN0SW1hZ2VWZXJzaW9uKCk7DQoJCQkJCXByZXZUZXN0VmVy
c2lvbi5kZWxldGUoY29uLCBlcnJvcnMsIHZhYWRpbkFwcC5nZXRVc2VyKCkpOw0KCQkJCX0N
CgkJCQkNCgkJCQlJbWFnZVZlcnNpb24gaW1hZ2VWZXJzaW9uID0gSW1hZ2VWZXJzaW9uLk1h
bmFnZXIuY3JlYXRlRnJvbUpET00oaW1hZ2UsIGV2KTsNCgkJCQkNCgkJCQlpZiAoIGltYWdl
LnNhdmUoY29uLCB2YWFkaW5BcHAuZ2V0VXNlcigpKSAmJiBpbWFnZVZlcnNpb24uc2F2ZShj
b24sIHZhYWRpbkFwcC5nZXRVc2VyKCkpICkNCgkJCQl7DQoJCQkJCWVycm9ycy5hZGRTdWNj
ZXNzKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuaW1wb3J0T2th
eS5tZXNzYWdlIixlLmdldE5hbWUoKSxlc2ZuYW1lLnRvU3RyaW5nKCkpKTsNCg0KCQkJCQlp
bWFnZUVsZW1lbnRzLnJlbW92ZShlKTsgLy8gZG9uJ3Qgd2FudCB0byBwcm9jZXNzIHRoaXMg
b2JqZWN0IGFnYWluLg0KCQkJCQlpbWFnZVZlcnNpb25FbGVtZW50cy5yZW1vdmUoZXYpOw0K
CQkJCX0gDQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJZXJyb3JzLmFkZEVycm9yKHZhYWRpbkFw
cC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcuaW1wb3J0RXJyb3Iuc2F2ZUZhaWxl
ZCIsZS5nZXROYW1lKCksZXNmbmFtZS50b1N0cmluZygpKSk7DQoJCQkJfQ0KICAgIAkJfQ0K
ICAgICAgICAgICAgY29uLmNvbW1pdCgpOw0KICAgICAgICB9DQogICAgICAgIGNhdGNoKFNR
TEV4Y2VwdGlvbiBlKSANCiAgICAgICAgew0KICAgICAgICAJX2xvZ2dlci5zcWxlcnIoZSwi
aW1wb3J0SW1hZ2VzKCkiKTsNCiAgICAgICAgICAgIHBvb2wucm9sbGJhY2tJZ25vcmVFeGNl
cHRpb24oY29uLGUpOw0KICAgICAgICB9DQogICAgICAgIGZpbmFsbHkNCiAgICAgICAgew0K
ICAgICAgICAgICAgdmFhZGluQXBwLmdldEVzZmFwcCgpLmNsZWFudXBQb29sKHBvb2wsY29u
LG51bGwpOw0KICAgICAgICB9DQoJfQ0KCQ0KCXZvaWQgaW1wb3J0UHJvcGVydHlTZXRzKGJv
b2xlYW4gZG9PdmVyd3JpdGVUZXN0VmVyc2lvbixFcnJvcnMgZXJyb3JzKSB7DQoJCWlmICgg
cHJvcGVydHlTZXRTZWxlY3QgPT0gbnVsbCApIHJldHVybjsNCgkJDQogICAgICAgIENvbm5l
Y3Rpb25Qb29sICAgIHBvb2wgPSB2YWFkaW5BcHAuZ2V0RXNmYXBwKCkuZ2V0Q29ubmVjdGlv
blBvb2woKTsNCiAgICAgICAgQ29ubmVjdGlvbiAgICAgICAgY29uICA9IHBvb2wuZ2V0Q29u
bmVjdGlvbigpOw0KICAgICAgICB0cnkNCiAgICAgICAgew0KICAgIAkJQFN1cHByZXNzV2Fy
bmluZ3MoInVuY2hlY2tlZCIpDQogICAgCQlTZXQ8RWxlbWVudD4gZWxlbWVudFNldCA9IChT
ZXQ8RWxlbWVudD4pcHJvcGVydHlTZXRTZWxlY3QuZ2V0VmFsdWUoKTsNCiAgICAJCQ0KICAg
IAkJLy8gSW1wb3J0IGVhY2ggb2YgdGhlIHNlbGVjdGVkIG9iamVjdHMNCiAgICAJCWZvcigg
RWxlbWVudCBlIDogZWxlbWVudFNldCApIHsNCiAgICAJCQlFc2ZVVUlEIGlkID0gbmV3IEVz
ZlVVSUQoZS5nZXRDaGlsZFRleHQoImlkIiwgbnMpKTsNCiAgICAJCQlpZiAoIGlkLmlzTnVs
bCgpICkgew0KICAgIAkJCQllcnJvcnMuYWRkRXJyb3IodmFhZGluQXBwLmdldE1zZygiTGli
cmFyeUZvcm0uSW1wb3J0Vmlldy5pbXBvcnRFcnJvci5taXNzaW5nRWxlbWVudCIsZS5nZXRO
YW1lKCksImlkIikpOw0KICAgIAkJCQljb250aW51ZTsNCiAgICAJCQl9DQogICAgCQkJRXNm
TmFtZSBlc2ZuYW1lID0gbmV3IEVzZk5hbWUoZS5nZXRDaGlsZFRleHQoImVzZm5hbWUiLCBu
cykpOw0KICAgIAkJCWlmICggISBlc2ZuYW1lLmlzVmFsaWQoKSApIHsNCiAgICAJCQkJZXJy
b3JzLmFkZEVycm9yKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZpZXcu
aW1wb3J0RXJyb3IubWlzc2luZ0VsZW1lbnQiLGUuZ2V0TmFtZSgpLCJlc2ZuYW1lIikpOw0K
ICAgIAkJCQljb250aW51ZTsNCiAgICAJCQl9DQogICAgCQkJDQogICAgCQkJLy8gQ2hlY2sg
aWYgd2Uga25vdyB0aGlzIG9iamVjdCBhbHJlYWR5DQogICAgCQkJUHJvcGVydHlTZXQgcHJv
cGVydHlTZXQgPSBQcm9wZXJ0eVNldC5NYW5hZ2VyLmdldEJ5TmFtZShsaWJyYXJ5LmdldElk
KCksIGVzZm5hbWUpOw0KICAgIAkJCQ0KCQkJCS8vIEZpbmQgdGhlIGltcG9ydGVkIHZlcnNp
b24gb2JqZWN0IHRoYXQgZ29lcyB3aXRoIHRoaXMgYnkgbWF0Y2hpbmcgb24gdGhlIGVtYmVk
ZGVkIGlkcw0KCQkJCUVsZW1lbnQgZXYgPSBudWxsOw0KCQkJCUxpc3RJdGVyYXRvcjxFbGVt
ZW50PiBpdGVyID0gcHJvcGVydHlTZXRWZXJzaW9uRWxlbWVudHMubGlzdEl0ZXJhdG9yKCk7
DQoJCQkJd2hpbGUoIGl0ZXIuaGFzTmV4dCgpICkgew0KCQkJCQlFbGVtZW50IGNoZWNrRXYg
PSBpdGVyLm5leHQoKTsNCgkJCQkJRXNmVVVJRCBldlBhcmVudElkID0gbmV3IEVzZlVVSUQo
Y2hlY2tFdi5nZXRDaGlsZFRleHQoInByb3BlcnR5U2V0SWQiLCBucykpOw0KCQkJCQlpZiAo
IGV2UGFyZW50SWQuZXF1YWxzKGlkKSApIHsNCgkJCQkJCWV2ID0gY2hlY2tFdjsNCgkJCQkJ
CWJyZWFrOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWlmICggZXYgPT0gbnVsbCApIHsNCgkJCQkJ
ZXJyb3JzLmFkZEVycm9yKHZhYWRpbkFwcC5nZXRNc2coIkxpYnJhcnlGb3JtLkltcG9ydFZp
ZXcuaW1wb3J0RXJyb3IubWlzc2luZ1ZlcnNpb25FbGVtZW50IixlLmdldE5hbWUoKSxlc2Zu
YW1lLnRvU3RyaW5nKCkpKTsNCgkJCQkJY29udGludWU7DQoJCQkJfSANCgkJCQkNCgkJCQkv
LyBJZiB3ZSBoYXZlIHRoZSBkcm9wIGRvd24gYWxyZWFkeSwgYW5kIGl0IGhhcyBhIHRlc3Qg
dmVyc2lvbiBhbHJlYWR5LCBidXQgd2UncmUgbm90IGFsbG93ZWQgdG8gb3ZlcndyaXRlIGl0
LCB3ZSdsbCBoYXZlIHRvIHNraXAgdGhpcyBpbXBvcnQNCgkJCQlpZiAoIHByb3BlcnR5U2V0
ICE9IG51bGwgJiYgcHJvcGVydHlTZXQuaGFzVGVzdFZlcnNpb24oKSAmJiAhIGRvT3Zlcndy
aXRlVGVzdFZlcnNpb24gKSB7DQoJCQkJCWVycm9ycy5hZGRFcnJvcih2YWFkaW5BcHAuZ2V0
TXNnKCJMaWJyYXJ5Rm9ybS5JbXBvcnRWaWV3LmltcG9ydEVycm9yLmhhc1Rlc3RWZXJzaW9u
QnV0Q2Fubm90T3ZlcndyaXRlIixlLmdldE5hbWUoKSxlc2ZuYW1lLnRvU3RyaW5nKCkpKTsN
CgkJCQkJY29udGludWU7DQoJCQkJfQ0KCQkJCQ0KCQkJCS8vIElmIHdlIGRvbid0IGtub3cg
dGhpcyBkcm9wIGRvd24sIGxldCdzIGNyZWF0ZSBvbmUuDQoJCQkJLy8gT3RoZXJ3aXNlLCBp
ZiB0aGUgZXhpc3Rpbmcgb25lIGhhcyBhIHRlc3QgdmVyc2lvbiwgbGV0J3MgZGVsZXRlIHRo
YXQgdGVzdCB2ZXJzaW9uIHNpbmNlIHdlJ2xsIGJlIHVzaW5nIG91ciBpbXBvcnRlZCBpbnN0
ZWFkLg0KCQkJCWlmICggcHJvcGVydHlTZXQgPT0gbnVsbCApDQoJCQkJCXByb3BlcnR5U2V0
ID0gUHJvcGVydHlTZXQuTWFuYWdlci5jcmVhdGVGcm9tSkRPTShsaWJyYXJ5LmdldElkKCks
IGUpOw0KCQkJCWVsc2UgaWYgKCBwcm9wZXJ0eVNldC5oYXNUZXN0VmVyc2lvbigpICkgew0K
CQkJCQlQcm9wZXJ0eVNldFZlcnNpb24gcHJldlRlc3RWZXJzaW9uID0gcHJvcGVydHlTZXQu
Z2V0VGVzdFByb3BlcnR5U2V0VmVyc2lvbigpOw0KCQkJCQlwcmV2VGVzdFZlcnNpb24uZGVs
ZXRlKGNvbiwgZXJyb3JzLCB2YWFkaW5BcHAuZ2V0VXNlcigpKTsNCgkJCQl9DQoJCQkJDQoJ
CQkJUHJvcGVydHlTZXRWZXJzaW9uIHByb3BlcnR5U2V0VmVyc2lvbiA9IFByb3BlcnR5U2V0
VmVyc2lvbi5NYW5hZ2VyLmNyZWF0ZUZyb21KRE9NKHByb3BlcnR5U2V0LCBldik7DQoJCQkJ
DQoJCQkJaWYgKCBwcm9wZXJ0eVNldC5zYXZlKGNvbiwgdmFhZGluQXBwLmdldFVzZXIoKSkg
JiYgcHJvcGVydHlTZXRWZXJzaW9uLnNhdmUoY29uLCB2YWFkaW5BcHAuZ2V0VXNlcigpKSAp
DQoJCQkJew0KCQkJCQllcnJvcnMuYWRkU3VjY2Vzcyh2YWFkaW5BcHAuZ2V0TXNnKCJMaWJy
YXJ5Rm9ybS5JbXBvcnRWaWV3LmltcG9ydE9rYXkubWVzc2FnZSIsZS5nZXROYW1lKCksZXNm
bmFtZS50b1N0cmluZygpKSk7DQoNCgkJCQkJcHJvcGVydHlTZXRFbGVtZW50cy5yZW1vdmUo
ZSk7IC8vIGRvbid0IHdhbnQgdG8gcHJvY2VzcyB0aGlzIG9iamVjdCBhZ2Fpbi4NCgkJCQkJ
cHJvcGVydHlTZXRWZXJzaW9uRWxlbWVudHMucmVtb3ZlKGV2KTsNCgkJCQl9IA0KCQkJCWVs
c2UNCgkJCQl7DQoJCQkJCWVycm9ycy5hZGRFcnJvcih2YWFkaW5BcHAuZ2V0TXNnKCJMaWJy
YXJ5Rm9ybS5JbXBvcnRWaWV3LmltcG9ydEVycm9yLnNhdmVGYWlsZWQiLGUuZ2V0TmFtZSgp
LGVzZm5hbWUudG9TdHJpbmcoKSkpOw0KCQkJCX0NCiAgICAJCX0NCiAgICAgICAgICAgIGNv
bi5jb21taXQoKTsNCiAgICAgICAgfQ0KICAgICAgICBjYXRjaChTUUxFeGNlcHRpb24gZSkg
DQogICAgICAgIHsNCiAgICAgICAgCV9sb2dnZXIuc3FsZXJyKGUsImltcG9ydFByb3BlcnR5
U2V0cygpIik7DQogICAgICAgICAgICBwb29sLnJvbGxiYWNrSWdub3JlRXhjZXB0aW9uKGNv
bixlKTsNCiAgICAgICAgfQ0KICAgICAgICBmaW5hbGx5DQogICAgICAgIHsNCiAgICAgICAg
ICAgIHZhYWRpbkFwcC5nZXRFc2ZhcHAoKS5jbGVhbnVwUG9vbChwb29sLGNvbixudWxsKTsN
CiAgICAgICAgfQ0KCX0NCgkNCglAT3ZlcnJpZGUNCglwdWJsaWMgdm9pZCBkZXRhY2goKSB7
DQoJCXN1cGVyLmRldGFjaCgpOw0KCX0NCgkNCglAT3ZlcnJpZGUNCglwdWJsaWMgdm9pZCBh
Y3RpdmF0ZVZpZXcoRXNmVmlldy5PcGVuTW9kZSBtb2RlLCBTdHJpbmcgcGFyYW1zKSB7DQoJ
fQ0KDQoJQE92ZXJyaWRlDQoJcHVibGljIFN0cmluZyBjaGVja0RpcnR5KCkgew0KCQlyZXR1
cm4gIiI7DQoJfQ0KCQ0KCUBPdmVycmlkZQ0KCXB1YmxpYyB2b2lkIGluaXRWaWV3KEVzZlZh
YWRpbkFwcGxpY2F0aW9uIGFwcCkgew0KICAgIAl2YWFkaW5BcHAgPSBhcHA7DQogICAgCWJ1
aWxkVXBsb2FkTGF5b3V0KCk7DQoJfQ0KDQoJQE92ZXJyaWRlDQoJcHVibGljIGJvb2xlYW4g
aXNEaXJ0eSgpIHsNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCgkNCn0=
--------------080309030401080904030202
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
To control your jdom-interest membership:
http://www.jdom.org/mailman/options/jdom-interest/[email protected]
--------------080309030401080904030202--